exportfs命令
参数说明如下。
- -a:全部挂载(或卸载)/etc/exports文件内的设定。
- -r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。
- -u:卸载某一目录。
- -v:在export时将共享的目录显示在屏幕上。
NFS共享的常用参数:
- ro 只读访问
- rw 读写访问
- sync 所有数据在请求时写入共享
- async NFS在写入数据前可以相应请求
- secure NFS通过1024以下的安全TCP/IP端口发送
- insecure NFS通过1024以上的端口发送
- wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
- no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
- hide 在NFS共享目录中不共享其子目录
- no_hide 共享NFS目录的子目录
- subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
- no_subtree_check 和上面相对,不检查父目录权限
- all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
- no_all_squash 保留共享文件的UID和GID(默认)
- root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
- no_root_squash root用户具有根目录的完全管理访问权限
- anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
- anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
NFS客户端问题
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、数组为nobody。
在客户端进行挂载时加上选项-o nfsvers=3
monunt -t nfs -o nfsvers=3 192.168.1.2:/tmp/ /mnt/
如果目录已经挂载,而又不想卸载,执行如下命令:
monunt -t nfs -o remount,nfsvers=3 192.168.1.2:/tmp/ /mnt/
客户端和服务端都需要
[root@adailinux ~]# vim /etc/idmapd.conf
把该配置文件中的“Domain = local.domain.com”改为“Domain = xxx.com”(此处xxx.com自定义),然后重启rpcidmapd服务(在centos7中直接重启rpcbind服务)。
FTP介绍
ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输。 FTP 协议允许数据在不同文件系统的主机之间传输。尽管这个协议在传输数据上提供了高适应性,但是它并没有尝试去保留一个特定文件系统上的文件属性(例如一个文件的保护模式或者修改次数)。而且 FTP 协议很少对一个文件系统的整体结构作假定,也不提供这样的功能,比如递归的拷贝子目录。在使用 ftp 命令时,需要注意 FTP 协议的这些特性。当需要保留文件属性或者需要递归的拷贝子目录时,可以使用 rcp/scp 等命令。
使用vsftpd搭建ftp
安装vsftpd包
yum install -y vsftpd db4-utils
##db4-utils是用来生成密码库文件
建立系统账号
useradd -s /sbin/nologin virftp
创建虚拟账户登录文件
##创建虚拟账户登录信息文件
vim /etc/vsftpd/vsftpd_login
#写入以下内容
test1
123456
test2
123456
#修改文件权限
chmod 600 /etc/vsftpd/vsftpd_login
#生成密码库文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
##奇数行为用户名,偶数行为密码。主要行尾空格
##应为vsftpd使用的密码文件不是明文的,需要生成对应库文件
创建配置文件存放目录
mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
#创建用户配置文件
vim test1
#写入以下内容
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
#test2配置文件与test1大致一样,修改local_root即可
local_root指定虚拟用户家目录
anonymous_enable是否允许匿名用户登录
write_enable是否允许创建
local_umask创建后的文件umask
anon_upload_enable是否允许匿名用户上传
anon_mkdir_write_enable匿名用户是否可写
idle_session_timeout链接超时时间
data_connection_timeout文件传输超时时间
max_clients最大链接数
配置文件的名称应该与密码文件中的用户名一致
###创建认证文件
vim /etc/pam.d/vsftpd
#在最前面加上
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
修改全局配置文件/etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
#将anonymous_enable=YES 改为 anonymous_enable=NO
#将#anon_upload_enable=YES 改为 anon_upload_enable=NO
#将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
#再增加如下内容
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
修改后启动vsftpd服务:systemctl start vsftpd
###创建测试文件
mkdir /home/virftp/testuser1
touch /home/virftp/testuser1/test.txt
chown -R virftp:virftp /home/virftp
```