10月4日-Linux学习第十三天-《Linux就该这么学》
< 返回列表时间: 2019-10-04来源:OSCHINA
今天学习了四种文件共享的方法,分别是vsftp,tftp,samba和nfs。
一、vsftp服务
三大不安全协议:telnet,ftp,http,所有内容均以明文传输。
FTP的工作模式分为两种:
(1)主动模式: FTP服务器主动向客户端发起FTP连接请求。一般用在防火墙限制了FTP流入流量情况下。
(2)被动模式: FTP服务器等待客户端发起连接请求,也是FTP的默认工作模式。
vsftp:very secure ftp daemon,非常安全的FTP守护进行。
Linux系统默认新建文件权限为644,则umask为133;新建目录权限为755,则umask为022。
名称 描述
vsftpd 服务名/软件包名,yum install vsftpd
/etc/vsftpd/vsftpd.conf 主配置文件
匿名用户权限配置
默认FTP路径:
/var/ftp
/var/ftp/pub目录,可读写 anonymous_enable=YES 是否开启匿名用户访问
anon_umask=022 匿名用户创建/上传文件权限
anon_upload_enable=YES 是否允许匿名用户上传文件
anon_mkdir_write_enable=YES 是否允许匿名用户创建文件
anon_other_write_enable=YES 是否允许匿名用户删除、重命名、剪切、修改文件
本地用户权限配置
默认FTP路径:
对应用户的家目录
/home/用户名 虚拟用户权限配置
默认FTP路径:
对应映射用户的家目录
local_enable=YES 是否开启本地用户访问
write_enable=YES 是否允许本地用户上传写入文件
local_umask=022 本地用户上传/创建文件权限 guest_enable=YES 是否开启虚拟用户访问
guest_username=vftp 虚拟用户映射本地用户
allow_writeable_chroot=YES 允许对禁锢的FTP根目录执行写入操作,而不拒绝用户登录
user_config_dir=/etc/vsftpd/vusers_dir 指定虚拟用户权限配置文件目录路径

1、匿名用户配置
第一步:修改vsftpd服务主配置文件,允许匿名用户访问等权限后,重启服务,并将服务加入到开机进程中。
第二步:修改匿名用户默认可读写FTP/pub目录权限。可修改权限为757或修改目录所有者所属组为ftp。
第三步:使用getsebool命令查看与FTP相关的SELinux域策略,并使用setsebool -P命令开启ftpd_full_access=on,-P参数永久立即生效。
第四步:使用匿名用户名anonymous和空密码登录FTP。FTP命令参数:mkdir新建目录;rename重命名文件;rmdir删除目录。
2、本地用户配置
无需配置,注意ftpusers和user_list两个文件中是否存在需要登录FTP的用户,如有需要删除。
ftpusers文件中的用户名一直生效,禁止文件中的用户登录FTP。
user_list文件中的用户名既可以是黑名单也可以是白名单,需要配合userlist_deny=YES | NO参数使用。
3、虚拟用户配置
第一步:新建虚拟用户清单文件,如vuser.list。单数行为账户名,偶数行为密码。
第二步:使用db_load命令加密虚拟用户清单文件。如:db_load -T -t hash -f vuser.list vuser.db,-T:加密;-t:加密类型;-f:需要加密的文件和新生成的文件。
第三步:创建虚拟用户用来映射的本地用户vuser,如:useradd -d /var/vuserftp -s /sbin/nologin vuser,-d:vuser家目录路径也就是虚拟用户FTP路径;-s:禁止虚拟用户登录系统。
第四步:新建支持虚拟用户的PAM文件。
[root @ root Desktop]# cat /etc/pam.d/vftp
auth required pam_userdb.so db=/etc/vsftpd/vuser---加密后的虚拟用户清单文件
account required pam_userdb.so db=/etc/vsftpd/vuser---加密后的虚拟用户清单文件
第五步:修改vsftpd服务主配置文件,并修改pam模块调用的文件为新建PAM文件。如:pam_service_name=vftp
第六步:由于没有专门的虚拟用户FTP权限设置,所以需要使用匿名用户FTP权限进行设置。新建虚拟用户权限配置文件目录,并分别新建各个FTP虚拟用户。若只分配查看权限,则只需要新建对应用户名文件即可。若要读写等权限,需要在以用户名新建的文件中使用匿名用户权限配置命令,配置此虚拟用户权限。最后修改主配置文件,指定虚拟用户权限使用此权限文件目录。如下:
[root @ root Desktop]# ls -lh /etc/vsftpd/vusers_dir/
total 4.0K
-rw-r--r--. 1 root root 0 Oct 1 16:55 dd
-rw-r--r--. 1 root root 79 Oct 1 16:55 ww
[root @ root Desktop]#
[root @ root Desktop]# cat /etc/vsftpd/vusers_dir/ww
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root @ root Desktop]#
[root @ root Desktop]# cat /etc/vsftpd/vusers_dir/dd
[root @ root Desktop]#
注:若使用虚拟用户配置,则主配置文件中不能存在匿名用户权限配置,否则虚拟用户权限配置会失效。
二、tftp服务
tftp(Trivial File Transfer Protocol),基于UDP 69号端口的简单文件传输协议。明文、无认证。
名称 描述
tftp-server 服务端软件名,yum install tftp-server
tftp 客户端软件名,yum install tftp
xinetd 服务名,systemcrl restart xinetd
/etc/xinetd.d/tftp 配置文件
disable = yes 将配置文件中的disable改为no即可
server_args = -s /var/lib/tftpboot -c tftp文件目录,若要支持上传put操作,需增加-c参数,并修改/var/lib/tftpboot目录权限为757
get操作 put操作
通过tftp下载/var/lib/tftpboot中的文件到执行命令的当前目录 通过tftp上传执行命令的当前目录中的文件到/var/lib/tftpboot目录

三、samba文件共享服务——主要用于Linux和Windows等其他系统之间文件共享
第一步:安装samba服务。yum install samba。
第二步:配置samba服务主配置文件。vim /etc/samba/smb.conf
[global] --全局配置
workgroup = MYGROUP --确认工作组名,考试题
server string = Samba Server Version %v --显示samba版本
log file = /var/log/samba/log.%m --记录日志文件
max log size = 50 --日志文件大小50KB
security = user --验证方式,默认用户user
passdb backend = tdbsam --用户后台验证类型,默认通过数据库文件验证
load printers = yes --是否共享打印机设备
cups options = raw --打印机配置选项
[Derek-SMB_Share] --SMB共享标识,挂载时需用到
comment = Derek SMB_Share --SMB描述信息
path = /smb --SMB共享目录
public = yes --是否“所有人可见”
writable = yes --是否允许写入操作
第三步:将系统本地已存在用户设置为SMB账号,密码不共享。pdbedit -a -u derek,-a:新建smb账号,-u:指定本地账户,回车后创建smb密码。
第四步:创建smb本地共享目录,修改共享目录所有者所属组为smb账号,并配置本地共享目录SELinux上下文安全策略。 mkdir /home/database --创建smb共享目录 chown -Rf linuxprobe:linuxprobe /home/database --修改smb共享目录所有者所属组为smb账号 emanage fcontext -a -t samba_share_t /home/database --修改smb共享目录SELinux上下文策略为 samba_share_t角色 restorecon -Rv /home/database --重置smb共享目录selinux策略
第五步:设置SELinux安全域策略,允许samba服务访问普通用户家目录。 setsebool -P samba_enable_home_dirs on
第六步:重启smb服务,并将smb服务加入到开机进程中。
第七步:清空并保存iptables防火墙配置。iptables -F;service iptables save
第八步:windows系统即可通过//10.10.78.20访问linux系统共享的smb资源。
第九步:Linux系统需安装cifs-utils服务,并配置smb用户名和密码后即可挂载smb共享目录。
yum install cifs-utils --安装cifs-untils服务
vim auth.smb --新建linux客户端访问SMB的用户名和密码文件
username=derek --用户名
password=derek --密码
domain=MYGROUP --smb共享组
chmod 600 auth.smb --修改用户密码文件权限为600
//10.10.78.20/smb /sbm cifs credentials=/root/auth.smb 0 0 --编辑/etc/fstab文件,指定路径和用户名密码文件,挂载远程smb共享目录。
四、NFS网络文件系统——主要用于Linux和Linux之间文件共享
第一步:安装NFS网络文件系统nfs-utils,yum install nfs-utils
第二步:清空并保存iptables防火墙配置。iptables -F;service iptables save
第三步:创建nfs文件共享目录,并修改权限为777。
第四步:编辑修改nfs配置文件/etc/exports [root@linuxprobe ~]# vim /etc/exports /nfsfile 192.168.10.*(rw,sync,root_squash) nfs文件共享目录 允许访问的用户IP 读写权限

第五步:使用exports -a命令,同步nfs配置。
第六步:重启rpcbind和nfs-server服务,并将其加入到开机进程中。
第七步:使用showmount -e命令查看远程nfs文件共享配置信息。
第八步:在nfs客户端机器上挂载远程nfs共享目录。 mount -t nfs 192.168.10.10:/nfsfile /nfsfile -t参数指明挂载远程nfs文件系统的格式为nfs 192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0 --编辑/etc/fstab文件















热门排行