Linux 文件基本屬性: chown修改所屬組 和 chmod修改文件屬性命令
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
-rwxrwxr-x 4 root root 4096 Apr 19 2012 main.c
- 當為[ d ]則是目錄
- 當為[ - ]則是文件;
- 若是[ l ]則表示為鏈接文檔(link file);
- 若是[ b ]則表示為裝置文件裏面的可供儲存的接口設備(可隨機存取裝置);
- 若是[ c ]則表示為裝置文件裏面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。
第0位確定文件類型,
第1-3位確定屬主(該文件的所有者)擁有該文件的權限。
第4-6位確定屬組(所有者的同組用戶)擁有該文件的權限,
第7-9位確定其他用戶擁有該文件的權限。
第1、4、7位表示讀權限
第2、5、8位表示寫權限
第3、6、9位表示可執行權限
在Linux系統中,用戶是按組分類的,一個用戶屬於一個或多個組。
[root@www /]# ls -l
total 64
d rwx r-x r-x 2 root root 4096 Feb 15 14:46 cron
d rwx r-x r-x 3 mysql mysql 4096 Apr 21 2014 mysql
就是說root用戶組 其他用戶組的不可以修改
在以上實例中,mysql 文件是一個目錄文件,屬主和屬組都為 mysql,
屬主有可讀、可寫、可執行的權限;
與屬主同組的其他用戶有可讀和可執行的權限;其他用戶也有可讀和可執行的權限。
對於 root 用戶來說,一般情況下,文件的權限對其不起作用。
更改文件屬性
1、chgrp:更改文件屬組
語法:
chgrp [-R] 屬組名文件名
參數選項
- -R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數,那麽該目錄下的所有文件的屬組都會更改。
如:
chgrp -R daokr test 更改 test的 目錄屬於組daokr 但是daokr用戶無法修改該目錄文件
2、chown:更改文件屬主,也可以同時更改文件屬組
語法:
chown [–R] 屬主名 文件名 chown [-R] 屬主名:屬組名 文件名
daokr@daokr-sys:/home$ chown -R daokr:daokr test chown: 正在更改‘test/tt/m.c‘ 的所有者: 不允許的操作 chown: 正在更改‘test/tt‘ 的所有者: 不允許的操作 chown: 正在更改‘test‘ 的所有者: 不允許的操
必須用root用戶操作修改權限組和屬性主
root@daokr-sys:/home# ls -l 總用量 12 drwxr-xr-x 20 daokr daokr 4096 3月 27 14:41 daokr -rw-r--r-- 1 root root 19 3月 27 14:23 maintest.c drwxr-xr-x 3 daokr daokr 4096 3月 27 14:35 test
3、chmod:更改文件9個屬性 更改文件 只讀 只寫 可執行的屬性
Linux文件屬性有兩種設置方法,一種是數字,一種是符號。
Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限。讀寫執行權限
先復習一下剛剛上面提到的數據:文件的權限字符為:『-rwxrwxrwx』, 這九個權限是三個三個一組的!其中,我們可以使用數字來代表各個權限,各權限的分數對照表如下:
第一種案例:數字更改
數字來代表各個權限,各權限的分數對照表如下:
- r:4
- w:2
- x:1
每種身份(owner/group/others)各自的三個權限(r/w/x)分數是需要累加的,例如當權限為: [-rwxrwx---] 分數則是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= --- = 0+0+0 = 0
所以等一下我們設定權限的變更時,該文件的權限數字就是770啦!變更權限的指令chmod的語法是這樣的:
chmod [-R] xyz 文件或目錄
選項與參數:
- xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。
- -R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有文件都會變更
舉例來說,如果要將.bashrc這個文件所有的權限都設定啟用,那麽命令如下:
改下m.c 文件的屬性 為 rwx rwx --- 意思是 主用戶權限是 rwx=7 root用戶是 rwx=7 其他用戶 無權限
daokr@daokr-sys:/home/test/tt$ ls -l 總用量 4 -rw-r--r-- 1 daokr daokr 26 3月 27 14:45 m.c daokr@daokr-sys:/home/test/tt$ chmod 770 m.c daokr@daokr-sys:/home/test/tt$ ls -l 總用量 4 -rwxrwx--- 1 daokr daokr 26 3月 27 14:45 m.c
daokr@daokr-sys:/home/test/tt$ sudo chown daokr:root m.c [sudo] daokr 的密碼: daokr@daokr-sys:/home/test/tt$ ls -l 總用量 4 -r--rwx--- 1 daokr root 26 3月 27 14:45 m.c daokr@daokr-sys:/home/test/tt$ vim m.c daokr@daokr-sys:/home/test/tt$ chmod 440 m.c
上面的 把 m.c 修改了權限組root 和 文件屬性 440;說明 daokr用戶和root用戶都無法修改該文件;因為是只讀文件
第二種案例:通過字符更改
基本上就九個權限分別是(1)user (2)group (3)others三種身份啦!
那麽我們就可以藉由u, g, o來代表三種身份的權限!
此外, a 則代表 all 亦即全部的身份!那麽讀寫的權限就可以寫成r, w, x!也就是可以使用底下的方式來看:
chmod | u g o a |
+(加入) -(除去) =(設定) |
r w x |
文件或目錄 |
如果我們需要將文件權限設置為 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 來設定:
daokr@daokr-sys:/home/test/tt$ chmod u=rwx,g=rwx,o=- m.c daokr@daokr-sys:/home/test/tt$ ls -l 總用量 4 -rwxrwx--- 1 daokr root 26 3月 27 14:45 m.c daokr@daokr-sys:/home/test/tt$ chmod u=r-x,g=-wx,o=- m.c daokr@daokr-sys:/home/test/tt$ ls -l 總用量 4 -r-------- 1 daokr root 32 3月 27 15:35 m.c daokr@daokr-sys:/home/test/tt$ chmod u=r-x,g=r,o=- m.c daokr@daokr-sys:/home/test/tt$ ls -l 總用量 4 -r--r----- 1 daokr root 32 3月 27 15:35 m.c daokr@daokr-sys:/home/test/tt$ chmod u=r-x,g=rw,o=- m.c daokr@daokr-sys:/home/test/tt$ ls -l 總用量 4 -r--rw---- 1 daokr root 32 3月 27 15:35 m.c
而如果是要將權限去掉而不改變其他已存在的權限呢?例如要拿掉全部人的可執行權限,則:
# chmod a-x test1 # ls -al test1 -rw-r--r-- 1 root root 0 Nov 15 10:32 test1
然後
daokr@daokr-sys:/home/test/tt$ chmod a-x m.c
daokr@daokr-sys:/home/test/tt$ ls -l
總用量 4
-r--rw---- 1 daokr root 32 3月 27 15:35 m.c
daokr@daokr-sys:/home/test/tt$ chmod u=rwx,g=rwx,o=r m.c
daokr@daokr-sys:/home/test/tt$ ls -l
總用量 4
-rwxrwxr-- 1 daokr root 32 3月 27 15:35 m.c
Linux 文件基本屬性: chown修改所屬組 和 chmod修改文件屬性命令