詳解ftp創(chuàng)建文件權限問題
詳解ftp創(chuàng)建文件權限問題
一、問題
有一個這樣的需求,admin為一個Linux為其FTP應用創(chuàng)建的一個有權限限制的用戶,通過admin用戶可以進行登錄FTP服務,登錄FTP服務后,創(chuàng)建文件夾,該文件夾的用戶和用戶組都是admin,屬性為755,即只有admin用戶才有寫的權限,但是,F(xiàn)TP后臺是通過b用戶登錄linux系統(tǒng)執(zhí)行程序上傳文件到FTP服務器,由于FTP服務器的文件夾都是由admin用戶創(chuàng)建的,且屬性為755,b用戶根本沒有寫的權限,導致程序上傳文件失敗。
二、分析
那么解決問題的方法應該很容易,既然admin用戶創(chuàng)建的目錄默認屬性為755,那么只要將默認屬性改為775,并將b用戶添加到admin所屬用戶組里面去,問題就解決了。
三、解決
1、因為系統(tǒng)默認的登錄用戶是b,為了方便測試,需要登錄到admin用戶,然后創(chuàng)建文件夾看看默認屬性是否改變。通過b用戶su到admin用戶的時候報出了 This account is currently not available. 錯誤。才想到,當時創(chuàng)建admin用戶的時候是用戶的shell是禁止登錄的,這里為了方便測試,通過如下命令開啟shell登錄:
$ sudo usermod -s /bin/bash admin
2、然后修改系統(tǒng)環(huán)境變量/etc/profile文件,設置umask為002 (目錄默認屬性 777-002=775,文件默認屬性 666-002= 664),source 文件生效后,切換到admin用戶創(chuàng)建文件夾試試:發(fā)現(xiàn)目錄的默認屬性成功改了,變?yōu)?55了
drwxrwxr-x 2 admin admin 4.0K Dec 6 22:54 a
3、然后用admin登錄FTP,新建一個文件夾看看,發(fā)現(xiàn)其權限還是755
4、由于對FTP并不熟悉,開始并沒有想到FTP那里去,而是在搗鼓各種Linux用戶組和用戶權限的設置,嘗試都沒有用。最后靜下來慢慢思考,突然想到,用admin賬戶登錄FTP創(chuàng)建的文件屬性一直是755,這里登錄的只是FTP應用,沒有登錄到shell,所以才會不受Linux環(huán)境變量中umask的影響,而修改umask后的admin登錄shell后創(chuàng)建的文件屬性是775,這里登錄到了shell,是根據(jù)umask的值沒有問題。既然發(fā)現(xiàn)了問題,那么想到FTP應該也會有類似Linux umask的設置才對,于是找到了FTP的配置文件,果然發(fā)現(xiàn)了如下的參數(shù):
5、修改FTP的Umask的值為002,重啟FTP服務,發(fā)現(xiàn)問題解決了。
注:這次問題雖小,也比較快解決了,告誡自己!在搗鼓一些應用服務的前,要先充分了解和熟悉這些應用服務的資料配置等,切莫貪快,否則,出現(xiàn)了問題,自己都不知道從何排查。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章:
