一:exportfs命令

常用选项为[-aruv] -a :全部挂载或者卸载 -r :重新挂载 -u :卸载某一个目录 -v :显示共享的目录 使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用这个exportfs 即可。接下来我们做一个实验,先改一下服务端的配置文件: #vim /etc/exports 增加一行: /tmp/ 192.168.0.0/24(rw,sync,no_root_squash) #no_root_squash 表示不限定root用户 然后服务端上执行命令: #exportfs -arv exporting 192.168.0.0/24:/tmp exporting 192.168.0.0/24:/home

二:NFS客户端问题

客户端在挂载NFS 之前,我们需要先看一看服务端都共享了哪些目录,这需要使用 showmount命令,但是这个命令是 nfs-utils这个包所带的,所以同样需要安装 nfs-utils: #yum install -y nfs-utils 现在可以看看服务器端都共享了哪些目录了: #showmount -e 192.168.0.10
Export list for 192.168.0.10: /home 192.168.0.0/24 说明:其中192.168.0.10为NFS 服务端ip。 可以看到刚才我们在服务端配置的 nfs共享信息。showmount -e 加 IP 就可以查看 NFS 的共享情况,上例中,就可以看到 192.168.0.10的共享目录为/home,信任主机为 192.168.0.0/24这个网段。 下面的命令是在客户端上挂载NFS: #mount -t nfs -o nfsvers=3 192.168.137.10:/home/ /mnt/

说明:-o后面跟挂载选项,如果不加 -onfsvers=3 则在挂载目录下的文件属主和组都是 nobody,如果指定nfsvers=3则显示501,所以尽量加上这个选项,避免权限混乱。 #df -h 文件系统 容量 已用 可用 已用%% 挂载点 /dev/sda3 14G 6.4G 6.7G 50% / tmpfs 160M 0 160M 0% /dev/shm /dev/sda1 97M 27M 66M 29% /boot /dev/sdb5 989M 19M 920M 3% /home 192.168.0.10:/home/ 989M 19M 920M 3% /mnt 用 df -h 命令可以看到多出来一个/mnt分区,它就是NFS 共享的目录了。 在之前的命令中用到了 mount命令来挂载nfs,其实mount这个 nfs服务还是有些说法 的。首先是用-t nfs 来指定挂载的类型为 nfs。另外在使用 nfs时,常用一个选项就是-o nolock 了,即在挂载nfs服务时,不加锁。 在客户端上执行: #mkdir /test #mount -t nfs -o nolock 192.168.0.10:/tmp/ /test/ 我们还可以把要挂载的 nfs目录写到client上的/etc/fstab文件中,挂载时只需要执行 mount -a 即可。在 /etc/fstab 里加一行: 192.168.0.10:/tmp/ /test nfs nolock 0 0 因为刚刚挂载过,所以先卸载: #umount /test/ 然后执行: #mount -a 这样也可以挂载上,而且以后开机会自动挂载上。

三:使用vsftpd搭建ftp

(1)安装vsftpd #yum install -y vsftpd db4-utils 这里安装两个软件包,同时会把依赖的包安装上。其中 db4-utils用来生成密码库文件。
(2)建立账号 vsftpd默认是可以支持使用系统账号体系登录的,但那样不×××全,所以我建议你参考 下面的方法使用虚拟账号体系。 建立虚拟账号相关联的系统账号 #useradd virftp -s /sbin/nologin
建立虚拟账户相关的文件
#vim /etc/vsftpd/vsftpd_login //内容如下: test1 123456 test2 abcdef 更改该文件的权限,提升安全级别 #chmod 600 /etc/vsftpd/vsftpd_login vsfptd使用的密码文件肯定不是明文的,需要生成对应的库文件 #db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db 建立虚拟账号相关的目录以及配置文件 #mkdir /etc/vsftpd/vsftpd_user_conf #cd /etc/vsftpd/vsftpd_user_conf
(3)创建和用户对应的配置文件 #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 max_per_ip=5 local_max_rate=50000 说明:
local_root为该账号的家目录,anonymous_enable 用来限制是否允许匿名账号登陆,若 为NO表示不允许匿名账号登陆,write_enable=YES 表示可写,local_umask指定 umask值, anon_upload_enable是否允许匿名账号上传文件,anon_mkdir_write_enable 是否允许匿名账 号可写。以上为关键配置参数,其他暂时不用关心。创建 test2账号的步骤和test1一样。 #mkdir /home/virftp/test1 #chown -R virftp:virftp /home/virftp #vim /etc/pam.d/vsftpd //在最开头添加两行 auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 说明:我的Linux 为32位系统,所以库文件路径为/lib/security/pam_userdb.so,若你的 系统为64,那你的库文件是在/lib64/security/pam_userdb.so。 (4)修改全局配置文件/etc/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 最后启动vsftpd服务 #/etc/init.d/vsftpd start
如果服务启动不了,很有可能是前面的pure-ftpd 服务还没有关闭。测试过程和前面 pure-ftpd的一样。另外,如果用户登录不了,请查看一下/var/log/secure日志。

vsftp部署的500,530排障经验 [root@yon ~]# lftp test1@127.0.0.1 口令: lftp test1@127.0.0.1:~> ls
ls: 登录失败: 500 OOPS: cannot change directory:/home/virftp/test 造成这种故障的原因是我在test用户的配置文件里写的 local_root=/home/virftp/test 而我建立的家目录是test1 [root@yon vsftpd_user_conf]# ls /home/virftp/ test1

500 OOPS: cannot change directory:/home/xxxxLogin failed. 在安装完vsftp服务后登陆时可能遇到cannot change directory,后面是登陆者的目录的错误,这是因为SE设置的关闭了ftp的原因。 使用命令

getsebool ftpd_disable_trans

可以查看当前的状态如果不是on

那么是输入命令

setsebool ftpd_disable_trans 1

当然也可以加入-P参数 以便不需要每次开机都输入这个命令

setsebool -P ftpd_disable_trans 1

service vsftpd restart

同理 如果smb服务也遇到相同的问题 ,也可以这么做。

setsebool -P samba_enable_home_dirs=1 selinux的问题也可以使用 管理工具中的 selinux management 来调整相关设置 也可以选择直接关闭selinux setenforce 0 ——这是临时关闭 永久关闭修改/etc/selinux/config SELINUX=disable

登录失败: 500 oops: bad bool value in config file for: anonymous_enablev 登录时候提示这种500故障是用户配置文件里的anonymous_enablev那行后面有空格,去掉即可; 而启动时候出去的这种500故障是全局配置文件里的anonymous_enablev那行后面有空格,去掉即可。

530 login incorrect 操作系统与/etc/pam.d/vsftpd配置文件里的库文件不匹配。64位系统,选择/lib64/security/pam_userdb.so 32位选择/lib/security/pam_userdb.so 还有就是注意你的iptables是否有拦截。