我個人曾經有一次經歷:
就是在修改文件夾權限的時候,本來該執行:
#chmod 777 -R ./
結果我漏掉了那個".";執行的命令是chmod 777 -R /。 這個命令一定慎用,否則容易釀成大錯。
結果就出大問題了。系統崩潰。
解決辦法:
到正常的文件系統中獲取一下權限列表。
#getfacl -R / > /tmp/acl.bak
解釋下這條命令:getfacl就是獲取權限列表命令,-R是遍歷,/ 這個表示或者整個根目錄權限。如果你單獨某個目錄有權限問題例如bin. 那這里可以換成 getfacl -R /bin > /tmp/acl.bak. ">" 這個符號就是寫入 。后面是路徑
上面那個做好之后把acl.bak拷貝到你現在的系統上;
執行:
#setfacl --restore acl.bak
然后就大功告成了。這個可以解決各種權限問題 。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0.說明
Linux系統下經常遇到文件或者文件夾的權限問題,或者是因為文件夾所屬的用戶問題而沒有訪問的權限。根據我自己遇到的情況,對這類問題做一個小結。
在命令行使用命令“ll”或者“ls -a”,可以查看文件或者文件的權限:
-rw-r--r--. 1 root root 6 Nov 9 16:42 a.txt
其中“-rw-r--r--”表示權限,一共有十個字符。
第一個字符,如果是“-”則表示是文件,如果是“d”則表示是目錄(directory)。
后面9個字符每3個字符又作為一個組,則有3組信息(“rw-”、“r--”、“r--”),分別表示所屬用戶本身具有的權限、所屬用戶的用戶組其他成員的權限、其他用戶的權限。
每一組信息如“rw-”,每一個字符都有它自己的特定含義且先后位置是固定的,其中r是讀權限、w是寫權限、x是可執行權限、-沒有對應字符的權限。Linux里面對這些字符設置對應的數值,r是4,w是2,x是1,-是0。上面的“rw-”則是6(=4+2+0),所以最開始a.txt的權限是644,屬於root用戶組的root用戶。
1.修改權限chmod
1.1改文件的權限
我想修改文件a.txt的權限為755,則為:
[root@master my]# ll -rw-r--r--. 1 root root 6 Nov 9 16:42 a.txt #改之前權限是644 [root@master my]# chmod 755 a.txt [root@master my]# ll -rwxr-xr-x. 1 root root 6 Nov 9 16:42 a.txt #改后權限是755
1.2改文件夾的權限
改之前:
[root@master test1]# ll drw-r--r--. 2 root root 4096 Nov 9 16:42 my #改之前文件夾my的權限是644 [root@master test1]# ll my/ -rwxr-xr-x. 1 root root 6 Nov 9 16:42 a.txt #改之前文件夾my的里面的文件權限是755
1.2.1只改變文件夾本身權限,不改動子文件(夾)
執行命令修改my文件夾權限為600:
[root@master test1]# chmod 600 my/ #修改命令 [root@master test1]# ll drw-------. 2 root root 4096 Nov 9 16:42 my #改my文件夾之后權限是600 [root@master test1]# ll my/ -rwxr-xr-x. 1 root root 6 Nov 9 16:42 a.txt #改my文件夾之后里面的文件權限還是755,沒有變化
1.2.2改變文件夾及子目錄下所有文件(夾)權限
執行1.2.1步驟之后,my文件夾和里面的文件權限都是不同的。現在遞歸修改,都改為統一的權限777:
[root@master test1]# chmod -R 777 my/ #修改命令,注意中間是大寫的R,不是小寫 [root@master test1]# ll drwxrwxrwx. 2 root root 4096 Nov 9 16:42 my #修改后my文件夾權限是777 [root@master test1]# ll my/ -rwxrwxrwx. 1 root root 6 Nov 9 16:42 a.txt #修改后里面的文件變為了777
2.修改所屬用戶和用戶組chown
這個和修改文件夾的權限是基本相同的,只不過是把chmod命令換成了chown。
2.1修改文件所屬用戶和用戶組
修改a.txt文件所屬用戶(jay)和用戶組(fefjay):
chown jay:fefjay a.txt #修改文件所屬用戶為jay,所屬用戶組為fefjay
2.2修改文件夾所屬用戶和用戶組
1.2.1只改文件夾本身所屬用戶和用戶組,不改子文件(夾)
僅修改文件夾my本身所屬用戶(jay)和用戶組(fefjay):
chown jay:fefjay my #修改文件所屬用戶為jay,所屬用戶組為fefjay
2.2.2改變文件夾及所有子文件(夾)所屬用戶和用戶組
遞歸修改文件夾my及包含的所有子文件(夾)的所屬用戶(jay)和用戶組(fefjay):
chown -R jay:fefjay my #修改文件所屬用戶為jay,所屬用戶組為fefjay
3.總結
修改單個文件(夾)就用命令:
chown或chmod “權限”或“名:組” 文件(夾)名稱
修改文件夾及子文件夾所有文件就用命令: