exportfs命令、NFS用戶端問題、使用vsftpd搭建ftp

來源:互聯網
上載者:User

標籤:art   disable   體系   time   卸載   config   哪些   提升   原因   

一: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排障經驗
[[email protected] ~]# lftp [email protected]
口令:
lftp [email protected]:~> ls
ls: 登入失敗: 500 OOPS: cannot change directory:/home/virftp/test
造成這種故障的原因是我在test使用者的設定檔裡寫的 local_root=/home/virftp/test
而我建立的家目錄是test1
[[email protected] 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是否有攔截。

exportfs命令、NFS用戶端問題、使用vsftpd搭建ftp

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.