一、chmod及文件權限
1、了解文件權限
root賬戶新建一個目錄permission,在該目錄新建一個文件file,通過ll就可以查看其權限。
root@development:~# cd permission/ root@development:~/permission# touch file root@development:~/permission# ls file root@development:~/permission# ll total 8 drwxr-xr-x 2 root root 4096 Mar 19 00:33 ./ drwx------ 25 root root 4096 Mar 19 00:33 ../ -rw-r--r-- 1 root root 0 Mar 19 00:33 file root@development:~/permission#
可見一共有十位數,其中第一個-代表的是類型,比如./的類型是d就是目錄。
從第二個開始,依次三個rw-代表的是所有者(user)擁有的權限。
再依次三個r--代表的是群組(group)擁有的權限。
最后三個r--代表的是其他人(other)擁有的權限
rwx-解釋如下:
r:表示文件可以被讀(read)
w:表示文件可以被寫(write)
x:表示文件可以被執行,目錄的話可以被搜索。
-:表示相應的權限還沒有被授予
2、數字表示rwx
r ----------4
w ----------2
x ----------1
- ----------0
原理:將rwx看成是二進制的數,有用1表示,沒有用0表示,那么rwx r-x r--就可以表示成:111 101 100,將其轉換成為一個十進制數就是:754。
3、權限操作
+ 表示添加權限
- 表示刪除權限
= 重置權限
4、常見權限
-rw------- (600) 只有所有者才有讀和寫的權限。
-rw-r--r-- (644) 只有所有者才有讀和寫的權限,群組和其他人只有讀的權限。
-rw-rw-rw- (666)每個人都有讀寫的權限
-rwx------ (700) 只有所有者才有讀,寫和執行的權限。
-rwx--x--x (711) 只有所有者才有讀,寫和執行的權限,群組和其他人只有執行的權限。
-rwxr-xr-x (755) 只有所有者才有讀,寫,執行的權限,群組和其他人只有讀和執行的權限。
-rwxrwxrwx (777) 每個人都有讀,寫和執行的權限
5、目錄相關的文件權限
如果有文件夾/a/b/c
查看權限
執行ls -l /a/b查看的並不是b的權限,而是c的權限。
- ls -l /a查看的是b文件的權限
- ls -l /a/b 查看的是c文件的權限
- ls -l /a/b/c 查看的是c文件的權限
補充內容:知道這點很重要,舉一個實際應用中的例子。
我曾在ssh登錄時日志報錯:/var/empty/sshd must be owned by root and not group or world-writable。
此時我就要看/var/empty/sshd的權限了。
用#ll /var/empty/sshd去查結果是total 0,代表里面沒有文件。
而真正應該用的命令是#ll /var/empty,去查看它的上級目錄。
然后就可以看到結果是:
total 0
drwxrwxrwx. 2 root root 6 May 13 03:41 sshd
修改權限和查看權限不同
- chmod 700 /a 修改的是a文件的權限
- chmod 700 /a/b 修改的是b文件的權限
- chmod 700 /a/b/c修改的是c文件的權限。
補充內容:知道這點修改權限和查看權限不同也很重要,還是上面的例子。
我要修改/var/empty/sshd這個目錄的權限,我需要用
#chmod 711 /var/empty/sshd去修改。
查看修改好的權限用#ll /var/empty查看。
6、修改文件權限
先舉例:
# chmod o+w file:表示給其他人授予寫file這個文件的權限
# chmod go-rw file:表示刪除群組和其他人對file這個文件的讀和寫的權限
# chmod go-w+x mydir:拒絕組成員和其他人創建或刪除mydir(go-w)中文件的權限,允許組成員和其他人搜索mydir,或在路徑名(go+x)中使用它,等價於
chmod g-w mydir chmod o-w mydir chmod g+x mydir chmod o+x mydir
解釋:
u:代表文件所有者(user)
g:代表所有者所在的群組(group)
o:代表其他人,但不是u和g(other)
a:a和一起指定ugo效果一樣
7、修改目錄權限
如果要一次修改某個目錄下所有文件的權限,包括子目錄中的文件權限。需要使用-R參數。
# chmod 700 /srv/file #僅把file目錄的權限設置為700 # chmod -R 744 /srv/file #將整個/srv/file目錄和其子目錄中所有文件權限設置為744
二、chowm和文件所有權
文件和目錄權限可通過chomd來修改,文件和目錄的所有權及所屬用戶組也可通過chown來修改。
root賬戶新建一個目錄permission,在該目錄新建一個文件file,通過ll就可以查看其權限。
[root@yl-web-test ~]# mkdir permission [root@yl-web-test ~]# cd permission/ [root@yl-web-test permission]# ls [root@yl-web-test permission]# touch file [root@yl-web-test permission]# ll total 0 -rw-r--r--. 1 root root 0 Aug 6 09:17 file
標紅的root root表示file文件的所屬用戶組為root,所有者為root。
chown語法:
chown [選項]... [所有者][:[組]] 文件...
接下來簡單介紹如何修改文件的所屬用戶組和所有者。
1、修改file文件的所有者為lxy
[root@yl-web-test permission]# chown lxy file [root@yl-web-test permission]# ll total 0 -rw-r--r--. 1 lxy root 0 Aug 6 09:17 file
2、修改file文件的用戶組為lxy
[root@yl-web-test permission]# chown root file [root@yl-web-test permission]# ll total 0 -rw-r--r--. 1 root root 0 Aug 6 09:17 file [root@yl-web-test permission]# chown :lxy file [root@yl-web-test permission]# ll total 0 -rw-r--r--. 1 root lxy 0 Aug 6 09:17 file
3、同時修改文件的所有者和用戶組
[root@yl-web-test permission]# chown :root file [root@yl-web-test permission]# ll total 0 -rw-r--r--. 1 root root 0 Aug 6 09:17 file [root@yl-web-test permission]# chown lxy:lxy file [root@yl-web-test permission]# ll total 0 -rw-r--r--. 1 lxy lxy 0 Aug 6 09:17 file
4、同時修改文件夾和其子文件的所屬用戶組和所有者,需要用-R參數。
假設file是一個目錄,里面有一個a.txt的文件。它們的所有者和用戶組如下,都是root:
[root@yl-web-test permission]# cd file/ [root@yl-web-test file]# touch a.txt [root@yl-web-test file]# ll total 0 -rw-r--r--. 1 root root 0 Aug 6 09:40 a.txt [root@yl-web-test file]# cd .. [root@yl-web-test permission]# ll total 0 drwxr-xr-x. 2 root root 18 Aug 6 09:40 file
現將file目錄和里面的a.txt文件的所有者和用戶組都改為lxy,如下
[root@yl-web-test permission]# chown -R lxy:lxy file [root@yl-web-test permission]# ll total 0 drwxr-xr-x. 2 lxy lxy 18 Aug 6 09:40 file [root@yl-web-test permission]# cd file/ [root@yl-web-test file]# ll total 0 -rw-r--r--. 1 lxy lxy 0 Aug 6 09:40 a.txt
本文作者starof,因知識本身在變化,作者也在不斷學習成長,文章內容也不定時更新,為避免誤導讀者,方便追根溯源,請諸位轉載注明出處:http://www.cnblogs.com/starof/p/4350212.html有問題歡迎與我討論,共同進步。