第一种方法:使用vsftpd服务
ftp配置文件主要内容:
[root@master vsftpd]# cat vsftpd.conf|grep -v ^#|grep -v ^$
anonymous_enable=YES #匿名登陆
local_enable=YES #允许使用本地用户来登陆ftp
local_root=/var/ftp/pub #
write_enable=YES #开放本地用户写的权限
local_umask=022 #FTP上本地的文件权限,默认是077
anon_upload_enable=YES #开放上传权限
anon_mkdir_write_enable=YES #可创建目录的同时可以在此目录中上传文件
dirmessage_enable=YES #切换目录时,显示目录下.message的内容
xferlog_enable=YES #激活上传和下传的日志
connect_from_port_20=YES #
xferlog_std_format=YES #使用标准的日志格式
listen=YES #
pam_service_name=vsftpd #独立的VSFTPD服务器
tcp_wrappers=YES
简单的ftp文件共享服务搭建
1.使用yum安装vsftpd yum -y install vsftpd
2.创建共享目录mkdir -r /var/ftp/pub并附加权限
3.直接复制上面配置内容到vsftpd.conf配置文件中,然后启动vsftpd服务
可以实现的功能有:匿名和本地用户可以登录并上传文件到服务器中,且上传者可以删除自己创建的文件。
在配置完vsftpd.conf后,使用命令重新启动ftp服务
启动时报错:
为 vsftpd 启动 vsftpd:500 OOPS: bad bool value in config file for: anon_other_write_enable
根据该报错信息,检查anon_other_write_enable该项有问题,可能是有多余的空格导致。删掉后报错就可以了。
另外查询末尾有无空格的命令:
cat vsftpd.conf|grep -v ^#|grep -v ^$
cat vsftpd.conf|grep -v ^#|grep -v ^$|grep " $"
第二种方法:使用lrzsz服务
使用系统内置的功能,需要在终端上面使用常用的XShell、putty、SecureCRT都可以
如果不是在终端中使用这些命令,则会出现上面的报错信息。
1.安装yum -y insatll lrzsz
从客户端上传文件到服务端:rz 【在弹出的框中选择文件,默认当前路径下面】
从服务端发送文件到客户端:sz test.tar.gz
2.如果上传的文件出现乱码,无法转义的问题在,上传时使用rz -e test.tar.gz,使用-e参数即可
使用命令rz后,弹出窗选择文件即可。
第三种方法,使用samba服务
科普:
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
安装samba相关软件包
[root@server30 ~]# yum -y install samba
启动samba服务
[root@server30 samba]# systemctl restart smb nmb
[root@server30 samba]# systemctl enable smb nmb
修改samba主配置文件
vim /etc/samba/smb.conf
查看主配置文件中的信息(对文件进行修改)
1.SELinux对文件或目录进行修改(修改标签为samba_share_t)
修改安全上下文
科普:在SELINUX中,所有操作系统访问控制都是以关联客体和主体的某种访问控制属性为基础。
访问控制属性又名安全上下文。
一个安全上下文由三部分组成:用户、角色和类型标识符。
注:修改的内容为主配置文件中的介绍内容
[root@server30 ~]# ll -ldZ /common/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /common/
[root@server30 ~]# chcon -t samba_share_t /common/
[root@server30 ~]# ll -ldZ /common/
drwxr-xr-x. root root unconfined_u:object_r:samba_share_t:s0 /common/
[root@server30 ~]#
安全级别
security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。?
- share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。?
- user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。?
- server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。?
- domain:域安全级别,使用主域控制器(PDC)来完成认证。
我们只需要user级别的安全验证就可以了。
passdb backend = tdbsam
注:是否将认证密码加密。
修改bool值
查看与samba有关的dir文件
[root@server30 ~]# getsebool -a |grep samba|grep dir
samba_create_home_dirs --> off
samba_enable_home_dirs --> off
use_samba_home_dirs --> off
开启bool值
[root@server30 ~]# setsebool -P samba_enable_home_dirs 1
[root@server30 ~]# getsebool -a |grep samba|grep dir
samba_create_home_dirs --> off
samba_enable_home_dirs --> on
use_samba_home_dirs --> off
修改防火墙
[root@server30 ~]# firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=172.16.30.0/24 service name=samba accept‘ --permanent
success
[root@server30 ~]# firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=172.16.30.0/24 service name=samba-client accept‘ --permanent
success
[root@server30 ~]# firewall-cmd --reload
success
主配置文件介绍
配置关键内容解释:(配置文件中蓝色字体有详细解释)
workgroup = STAFF
注:指明共享所在的工作组
server string = Samba Server Version %v
注:客户端看到服务器的版本信息
netbios name = MYSERVER
注:设置Samba Server的NetBIOS名称,netbios name和workgroup名字不要设置成一样
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
注:设置Samba Server监听哪些网卡(网卡名和网卡的IP地址)
hosts allow = 127. 192.168.12. 192.168.13.
注:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。
共享参数解释:
comment = Public Stuff
注:对共享的描述
path = /home/samba
注:指定共享目录的真实路径
browseable = yes
注:指定该共享是否可以浏览
writable = no
注:指定该共享路径是否可写
添加一个新的共享目录文件
vim /etc/samba/smb.conf
[common]
path = /common/
browseable = yes
valid users = natasha
第二个共享目录
创建目录storage并修改
[root@server30 ~]# mkdir /storage
[root@server30 ~]# ll -ldZ /storage/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /storage/
[root@server30 ~]# chcon -t samba_share_t /storage/
创建用户
[root@server30 ~]# useradd sarah
[root@server30 ~]# useradd kitty
修改用户acl权限
[root@server30 ~]# setfacl -m u:sarah:r-x /storage/
[root@server30 ~]# setfacl -m u:kitty:rwx /storage/
修改samba用户的密码
root@server30 samba]# smbpasswd -a sarah
New SMB password:
Retype new SMB password:
Added user sarah
root@server30 samba]# smbpasswd -a kitty
添加一个新的共享目录文件
vim /etc/samba/smb.conf
[share]
path = /storage
browseable = yes
valid users = sarah, kitty
writable = no
write list = kitty
重启服务
[root@server30 samba]# systemctl restart smb nmb
客户端配置
[root@desktop30 ~]# rpm -qa cifs
cifs-utils-6.2-6.el7.x86_64
[root@desktop30 ~]# yum -y install cifs-utils
[root@desktop30 ~]# mount -t cifs -o multiuser,username=sarah,password=redhat,sec=ntlmssp //172.16.30.130/share /mnt/dev