十三周四次课(6月22日)

14.4 exportfs命令

工作中,如果使用了nfs服务器,会遇到修改nfs服务器配置的情况,如果想重新让客户端加载上修改后的配置,
但是又不能重启rpcbind服务,我们需要使用export命令了

exportfs命令
常用选项

-a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录

以下操作在服务端上

vim /etc/exports //增加
/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)

*exportfs -arv //不用重启nfs服务,配置文件就会生效
nfs服务不能随便重启,重启服务会对挂载了nfs的客户端有影响,
exportfs来自nfs-utils
作用是修了配置后重载,不用重启服务。
服务器:

[root@JAMF nfsdir]# vim /etc/exports     
/home/nfsdir 172.16.22.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/tmp 172.16.22.0/24(rw,sync,no_root_squash)
[root@JAMF nfsdir]# exportfs -arv
exporting 172.16.22.0/24:/tmp
exporting 172.16.22.0/24:/home/nfsdir

客户端:

[root@zabbix ~]# showmount -e 172.16.22.247                           
Export list for 172.16.22.247:
/tmp         172.16.22.0/24
/home/nfsdir 172.16.22.0/24
[root@zabbix ~]# mkdir /mnt/tmp
[root@zabbix ~]# mount -t nfs -onolock 172.16.22.247:/tmp /mnt/tmp 
-o nolock 了,即在挂载nfs服务时,不加锁。 在客户端上执行:
[root@zabbix ~]# touch /mnt/tmp/new.txt
[root@zabbix tmp]# ll /mnt/tmp/new.txt   
-rw-r--r-- 1 root root 0 Mar 16 01:41 /mnt/tmp/new.txt

服务器:

[root@JAMF nfsdir]# ll /tmp/new.txt 
-rw-r--r-- 1 root root 0 Mar 16 01:41 /tmp/new.txt

[root@zabbix mnt]# mount -t nfs -Oremount,nfsvers=3 172.16.22.247:/tmp /mnt/tmp
mount.nfs: /mnt/tmp is busy or already mounted
[root@zabbix mnt]# umount /mnt/tmp/                                            
[root@zabbix mnt]# mount -t nfs -Oremount,nfsvers=3 172.16.22.247:/tmp /mnt/tmp

14.5 NFS客户端问题

客户端文件属主属组nobody
NFS 4版本会有该问题
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody
客户端挂载时加上 -O nfsvers=3

[root@zabbix mnt]# mount -t nfs -Oremount,nfsvers=3 172.16.22.247:/tmp /mnt/tmp
mount.nfs: /mnt/tmp is busy or already mounted
[root@zabbix mnt]# umount /mnt/tmp/                                            
[root@zabbix mnt]# mount -t nfs -Oremount,nfsvers=3 172.16.22.247:/tmp /mnt/tmp

客户端和服务端都需要

vim /etc/idmapd.conf //
把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务

服务器:

[root@JAMF nfsdir]# vim /etc/idmapd.conf 
[General]
#Verbosity = 0
# The following should be set to the local NFSv4 domain name
# The default is the host's DNS domain name.
Domain = jamf.oceanwing.com
[root@JAMF nfsdir]# systemctl restart rpcidmapd

客户端:

[root@zabbix mnt]# vim /etc/idmapd.conf 
[General]
#Verbosity = 0
# The following should be set to the local NFSv4 domain name
# The default is the host's DNS domain name.
Domain = zabbix.oceanwing.com
[root@zabbix mnt]# systemctl restart rpcidmapd

15.1 FTP介绍

FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
小公司用的多,大企业不用FTP,因为不安全

15.2/15.3 使用vsftpd搭建ftp

yum -y install vsftpd   //centos上自带vsftpd
[root@test1 ~]# groupadd virftp 添加组,可以不添加
[root@test1 ~]# useradd -s /sbin/nologin -g virftp virftp   添加用户,不让登录

[root@test1 ~]# vim /etc/vsftpd/vsftpd_login    添加用户名和密码,奇数用户名,偶数密码
aiker
aiker01
gavin
gavin02
zhao
zhao03
[root@test1 ~]# chmod 600 !$    设置权限,只能root读写
chmod 600 /etc/vsftpd/vsftpd_login
[root@test1 ~]# cat !$
cat /etc/vsftpd/vsftpd_login
aiker
aiker01
gavin
gavin02
zhao
zhao03
[root@test1 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db  转换为机器识别二进制文件
 mkdir /etc/vsftpd/vsftpd_user_conf     创建虚拟用户配置文件目录,
[root@test220 ~]# ll /etc/vsftpd/
total 36
-rw------- 1 root root   125 Aug  3  2017 ftpusers
-rw------- 1 root root   361 Aug  3  2017 user_list
-rw------- 1 root root  5030 Aug  3  2017 vsftpd.conf
-rwxr--r-- 1 root root   338 Aug  3  2017 vsftpd_conf_migrate.sh
-rw------- 1 root root    40 Mar 16 23:53 vsftpd_login
-rw-r--r-- 1 root root 12288 Mar 16 23:55 vsftpd_login.db
[root@test220 vsftpd_user_conf]# vim aiker  创建虚拟用户配置文件
local_root=/home/virftp/aiker   虚拟用户家目录
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  最大客户端数
[root@test220 vsftpd_user_conf]# mkdir /home/virftp/aiker
[root@test220 vsftpd_user_conf]# touch /home/virftp/aiker/aikertest.txt

[root@test220 vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
  • #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
[root@test220 vsftpd_user_conf]#  vim /etc/pam.d/vsftpd 

#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth
[root@test220 vsftpd_user_conf]# ll /lib64/security/pam_userdb.so
-rwxr-xr-x. 1 root root 15392 Nov  6  2016 /lib64/security/pam_userdb.so
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

或者

sed -i 's/^anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf
[root@test220 vsftpd_user_conf]# sed -i 's/^#anon_upload_enable=YES/anon_upload_enable=NO/'  /etc/vsftpd/vsftpd.conf
[root@test220 vsftpd_user_conf]# sed -i 's/^#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=NO/'  /etc/vsftpd/vsftpd.conf
[root@test220 vsftpd_user_conf]# sed -n '/enable/'p /etc/vsftpd/vsftpd.conf                           anonymous_enable=NO
local_enable=YES
# Uncomment this to enable any form of FTP write command.
write_enable=YES
# has an effect if the above global write enable is activated. Also, you will
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#deny_email_enable=YES
#chroot_list_enable=YES
#ls_recurse_enable=YES
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# This directive enables listening on IPv6 sockets. By default, listening
userlist_enable=YES
cat >> /etc/vsftpd/vsftpd.conf <<EOF
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
EOF

[root@test220 vsftpd_user_conf]# systemctl start vsftpd 
[root@test220 vsftpd_user_conf]# 

[root@test220 vsftpd_user_conf]# ps aux | grep ftp
root      4455  0.0  0.0  52720   568 ?        Ss   00:36   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@test220 vsftpd_user_conf]# firewall-cmd --permanent --zone=public --add-port=21/tcp
success
[root@test220 vsftpd_user_conf]# firewall-cmd --reload 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章