十三週四次課(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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章