詳解ftp創(chuàng)建文件權(quán)限問題
在彭州等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站 網(wǎng)站設(shè)計制作按需求定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),彭州網(wǎng)站建設(shè)費用合理。
一、問題
有一個這樣的需求,admin為一個Linux為其FTP應(yīng)用創(chuàng)建的一個有權(quán)限限制的用戶,通過admin用戶可以進行登錄FTP服務(wù),登錄FTP服務(wù)后,創(chuàng)建文件夾,該文件夾的用戶和用戶組都是admin,屬性為755,即只有admin用戶才有寫的權(quán)限,但是,F(xiàn)TP后臺是通過b用戶登錄linux系統(tǒng)執(zhí)行程序上傳文件到FTP服務(wù)器,由于FTP服務(wù)器的文件夾都是由admin用戶創(chuàng)建的,且屬性為755,b用戶根本沒有寫的權(quán)限,導致程序上傳文件失敗。
二、分析
那么解決問題的方法應(yīng)該很容易,既然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文件,設(shè)置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)其權(quán)限還是755
4、由于對FTP并不熟悉,開始并沒有想到FTP那里去,而是在搗鼓各種Linux用戶組和用戶權(quán)限的設(shè)置,嘗試都沒有用。最后靜下來慢慢思考,突然想到,用admin賬戶登錄FTP創(chuàng)建的文件屬性一直是755,這里登錄的只是FTP應(yīng)用,沒有登錄到shell,所以才會不受Linux環(huán)境變量中umask的影響,而修改umask后的admin登錄shell后創(chuàng)建的文件屬性是775,這里登錄到了shell,是根據(jù)umask的值沒有問題。既然發(fā)現(xiàn)了問題,那么想到FTP應(yīng)該也會有類似Linux umask的設(shè)置才對,于是找到了FTP的配置文件,果然發(fā)現(xiàn)了如下的參數(shù):
5、修改FTP的Umask的值為002,重啟FTP服務(wù),發(fā)現(xiàn)問題解決了。
注:這次問題雖小,也比較快解決了,告誡自己!在搗鼓一些應(yīng)用服務(wù)的前,要先充分了解和熟悉這些應(yīng)用服務(wù)的資料配置等,切莫貪快,否則,出現(xiàn)了問題,自己都不知道從何排查。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!