如果您使用Linux作為主要操作系統(tǒng)或管理Linux服務(wù)器,當(dāng)您嘗試創(chuàng)建或編輯文件并收到權(quán)限拒絕Permission deny錯(cuò)誤時(shí)。
通常,可以通過設(shè)置正確的文件權(quán)限或所有權(quán)來解決與權(quán)限不足的錯(cuò)誤。
Linux是一個(gè)多用戶系統(tǒng),并且通過文件許可權(quán),屬性和所有權(quán)來控制對(duì)文件的訪問。
這樣可以確保只有授權(quán)的用戶和進(jìn)程才能訪問文件和目錄。需要了解文件權(quán)限的更多信息,請(qǐng)閱讀Linux Umask命令。
在本教程中,我們將說明如何遞歸更改文件和目錄的權(quán)限。
Chmod 命令遞歸修改權(quán)限
chmod
命令允許您使用符號(hào)或數(shù)字模式修改文件的權(quán)限。要遞歸指定目錄所有文件,請(qǐng)使用chmod
命令的-R
/--recursive
選項(xiàng)。
遞歸修改文件權(quán)限的語法形式是chmod -R MODE DIRECTORY
,MODE
是權(quán)限的模式,DIRECTORY
是要設(shè)置權(quán)限的目錄或者文件。
例如命令chmod -R 755 /var/www/html
將/var/www/html
目錄的所有文件和子目錄的權(quán)限更改為755
。
也可以使用符號(hào)模式指定權(quán)限chmod -R u=rwx,go=rx /var/www/html
。只有root用戶或者文件所有者才能更改文件的權(quán)限。在遞歸修改文件的權(quán)限時(shí),請(qǐng)格外小心。
sudo chmod -R 755 /var/www/html
sudo chmod -R u=rwx,go=rx /var/www/html
find 命令遞歸修改權(quán)限
通常,文件和目錄不應(yīng)該具有相同的權(quán)限。大多數(shù)文件不需要執(zhí)行權(quán)限,而您必須在目錄設(shè)置可執(zhí)行權(quán)限才能切換目錄。
最常見的情況是將網(wǎng)站文件的權(quán)限遞歸更改為644
,目錄的權(quán)限更改為755
。在這種情況下,是使用find命令遞歸修改文件與目錄權(quán)限最適合用例。
我們可以使用find
命令在/var/www/html
搜索文件或目錄,并將找到的每個(gè)文件或目錄傳遞給chmod
命令以設(shè)置權(quán)限。
在這個(gè)示例中,我們組合使用find
與-exec
選項(xiàng),為找到的每個(gè)目錄與文件運(yùn)行chmod
命令。
如果你有大量的目錄或者文件,請(qǐng)使用xargs
命令,通過一次傳遞多個(gè)文件與目錄來加快修改的速度。
命令find /var/www/html -type d -exec chmod 755 {} ;
命令將會(huì)修改目錄的權(quán)限,如果需要修改文件權(quán)限,請(qǐng)將-type d
換成-type f
,f
表示文件。
find /var/www/html -type d -exec chmod 755 {} \\;
find /var/www/html -type d -exec chmod u=rwx,go=rx {} \\;
find /var/www/html -type d -print0 | xargs -0 chmod 755
結(jié)論
帶有-R
選項(xiàng)的chmod
命令允許您遞歸更改文件的權(quán)限。要基于文件的類型遞歸設(shè)置權(quán)限,請(qǐng)結(jié)合使用chmod
和find
命令。
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209323 -
文件
+關(guān)注
關(guān)注
1文章
565瀏覽量
24727 -
命令
+關(guān)注
關(guān)注
5文章
683瀏覽量
22011
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論