天天看點

linux的chmod/chown/chgrp/ll

指令名稱 : chmod

使用權限 : 所有使用者

使用方式 :

chmod [-cfvR] [--help] [--version] mode file...

說明 : Linux/Unix 的檔案存取權限分為三級 : 檔案擁有者、群組、其他。利用 chmod 可以控制檔案如何被他人所存取。

mode : 權限設定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],

其中u 表示該檔案的擁有者,

g 表示與該檔案的擁有者屬于同一個群體(group)者,

o 表示其他以外的人,a 表示這三者皆是。

+ 表示增權重限、- 表示取消權限、= 表示唯一設定權限。

r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示隻有當該檔案是個子目錄或者該檔案已經被設定過為可執行。

-c : 若該檔案權限确實已經更改,才顯示其更改動作

-f : 若該檔案權限無法被更改也不要顯示錯誤訊息

-v : 顯示權限變更的詳細資料

-R : 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更)

--help : 顯示輔助說明

--version : 顯示版本

範例 :将檔案 file1.txt 設為所有人皆可讀取 :

chmod ugo+r file1.txt

将檔案 file1.txt 設為所有人皆可讀取 :

chmod a+r file1.txt

将檔案 file1.txt 與 file2.txt 設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的

人則不可寫入 :

chmod ug+w,o-w file1.txt file2.txt

将 ex1.py 設定為隻有該檔案擁有者可以執行 :

chmod u+x ex1.py

将目前目錄下的所有檔案與子目錄皆設為任何人可讀取 :

chmod -R a+r *

此外chmod也可以用數字來表示權限如 chmod 777 file

文法為:chmod abc file

其中a,b,c各為一個數字,分别表示User、Group、及Other的權限。

r=4,w=2,x=1

若要rwx屬性則4+2+1=7;

若要rw-屬性則4+2=6;

若要r-x屬性則4+1=7。

範例:

chmod a=rwx file

chmod 777 file

效果相同

chmod ug=rwx,o=x file

chmod 771 file

效果相同

若用chmod 4755 filename可使此程式具有root的權限

指令名稱 : chown

使用權限 : root

使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file...

說明 : Linux/Unix 是多人多工作業系統,所有的檔案皆有擁有者。利用 chown 可以将檔案的擁

有者加以改變。一般來說,這個指令隻有是由系統管理者(root)所使用,一般使用者沒有權限可以

改變别人的檔案擁有者,也沒有權限可以自己的檔案擁有者改設為别人。隻有系統管理者(root)才

有這樣的權限。

user : 新的檔案擁有者的使用者

IDgroup : 新的檔案擁有者的使用者群體(group)

-c : 若該檔案擁有者确實已經更改,才顯示其更改動作

-f : 若該檔案擁有者無法被更改也不要顯示錯誤訊息

-h : 隻對于連結(link)進行變更,而非該 link 真正指向的檔案

-v : 顯示擁有者變更的詳細資料-R : 對目前目錄下的所有檔案與子目錄進行相同的擁有者變更(即以遞回的方式逐個變更)

--help : 顯示輔助說明

--version : 顯示版本

範例 :

将檔案 file1.txt 的擁有者設為 users 群體的使用者 jessie :

chown jessie:users file1.txt

将目前目錄下的所有檔案與子目錄的擁有者皆設為 users 群體的使用者 lamport :

chown -R lamport:users *

-rw------- (600) -- 隻有屬主有讀寫權限。

-rw-r--r-- (644) -- 隻有屬主有讀寫權限;而屬組使用者和其他使用者隻有讀權限。

-rwx------ (700) -- 隻有屬主有讀、寫、執行權限。

-rwxr-xr-x (755) -- 屬主有讀、寫、執行權限;而屬組使用者和其他使用者隻有讀、執行權限。

-rwx--x--x (711) -- 屬主有讀、寫、執行權限;而屬組使用者和其他使用者隻有執行權限。

-rw-rw-rw- (666) -- 所有使用者都有檔案讀、寫權限。這種做法不可取。

-rwxrwxrwx (777) -- 所有使用者都有讀、寫、執行權限。更不可取的做法。

以下是對目錄的兩個普通設定:

drwx------ (700) - 隻有屬主可在目錄中讀、寫。

drwxr-xr-x (755) - 所有使用者可讀該目錄,但隻有屬主才能改變目錄中的内容

suid的代表數字是4,比如4755的結果是-rwsr-xr-x

sgid的代表數字是2,比如6755的結果是-rwsr-sr-x

sticky位代表數字是1,比如7755的結果是-rwsr-sr-t

(當然7755這個chmod設定沒多大意義,這裡隻是示範一下)

安全性

通路控制:此程式應該作為“可信計算基”中的正常使用者程式安裝。

退出狀态

該指令傳回以下出口值:

指令執行成功并已執行所有請求的更改。

>0

發生錯誤。

示例

  • 要更改檔案 program.c 的所有者:

    chown jim program.c

    program.c的使用者通路權限現在應用到 jim。作為所有者,jim 可以使用

    ​​​chmod​​ 指令允許或拒絕其他使用者通路 program.c。

  • 要将目錄 /tmp/src 中所有檔案的所有者群組更改為使用者 john 群組 build:

    chown -R john:build /tmp/src

    檔案

    /usr/bin/chown

    chown指令

    /etc/group

    包含組辨別的檔案

    /etc/passwd

    包含使用者辨別的檔案

chgrp指令

  功能:改變檔案或目錄所屬的組。

  文法:chgrp [選項] group filename?

  該指令改變指定指定檔案所屬的使用者組。其中group可以是使用者組ID,也可以是/etc/group檔案中使用者組的組名。檔案名是以空格分開的要改變屬組的檔案清單,支援通配符。如果使用者不是該檔案的屬主或超級使用者,則不能改變該檔案的組。

  該指令的各選項含義為:

  - R 遞歸式地改變指定目錄及其下的所有子目錄和檔案的屬組。

       -c, --changes

              like verbose but report only when a change is made

       --dereference

              affect the referent of each symbolic link (this is the default), rather than the sym-

              bolic link itself

       -h, --no-dereference

              affect each symbolic link instead of any referenced file (useful only on systems that

              can change the ownership of a symlink)

       --no-preserve-root

              do not treat `/' specially (the default)

       --preserve-root

              fail to operate recursively on `/'

       -f, --silent, --quiet

              suppress most error messages

       --reference=RFILE

              use RFILE's group rather than specifying a GROUP value

       -R, --recursive

              operate on files and directories recursively

       -v, --verbose

              output a diagnostic for every file processed

       The following options modify how a hierarchy is traversed when the -R option is also  speci-

       fied.  If more than one is specified, only the final one takes effect.

       -H     if a command line argument is a symbolic link to a directory, traverse it

       -L     traverse every symbolic link to a directory encountered

       -P     do not traverse any symbolic links (default)

       --help display this help and exit

       --version

              output version information and exit

EXAMPLES

       chgrp staff /u

              Change the group of /u to "staff".

       chgrp -hR staff /u

              Change the group of /u and subfiles to "staff".  

檢視現在aa檔案所屬組為clip:
[root@clip clip]# ls -l aa
total 32040
-rwxrwxr-x  1 clip clip     1260 Apr 26 14:05 aa
想更改為delijia
[root@clip clip]#chgrp delijia aa
[root@clip clip]# ls -l aa
-rwxrwxr-x  1 clip delijia     1260 Apr 26 14:05 aa
現在已經更改成功了      

ls 隻列出檔案名或目錄名 就象windows裡的  清單

ll -t 是降序,  ll -t | tac 是升序

ll不是指令,是ls -l的别名

ls 指令可以說是linux下最常用的指令之一。

-a 列出目錄下的所有檔案,包括以 . 開頭的隐含檔案。

-b 把檔案名中不可輸出的字元用反斜杠加字元編号(就象在C語言裡一樣)的形式列出。

-c 輸出檔案的 i 節點的修改時間,并以此排序。

-d 将目錄象檔案一樣顯示,而不是顯示其下的檔案。

-e 輸出時間的全部資訊,而不是輸出簡略資訊。

-f -U 對輸出的檔案不排序。

-g 無用。

-i 輸出檔案的 i 節點的索引資訊。

-k 以 k 位元組的形式表示檔案的大小。

-l 列出檔案的詳細資訊。

-m 橫向輸出檔案名,并以“,”作分格符。

-n 用數字的 UID,GID 代替名稱。

-o 顯示檔案的除組資訊外的詳細資訊。

-p -F 在每個檔案名後附上一個字元以說明該檔案的類型,“*”表示可執行的普通

檔案;“/”表示目錄;“@”表示符号連結;“|”表示FIFOs;“=”表示套

接字(sockets)。

-q 用?代替不可輸出的字元。

-r 對目錄反向排序。

-s 在每個檔案名後輸出該檔案的大小。

-t 以時間排序。

-u 以檔案上次被通路的時間排序。

-x 按列輸出,橫向排序。

-A 顯示除 “.”和“..”外的所有檔案。

-B 不輸出以 “~”結尾的備份檔案。

-C 按列輸出,縱向排序。

-G 輸出檔案的組的資訊。

-L 列對外連結接檔案名而不是連結到的檔案。

-N 不限制檔案長度。

-Q 把輸出的檔案名用雙引号括起來。

-R 列出所有子目錄下的檔案。

-S 以檔案大小排序。

-X 以檔案的擴充名(最後一個 . 後的字元)排序。

-1 一行隻輸出一個檔案。

--color=no 不顯示彩色檔案名

--help 在标準輸出上顯示幫助資訊。

--version 在标準輸出上輸出版本資訊并退出。

隻列出子目錄

1. ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)

2. ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solari

解釋:

yee@Loong:~$ ls -al down.tar.gz

-rwxr-xr-x 1 yee yee 1179270691 08-06 13:20 down.tar.gz

3              4               5               6                  7

是否目錄|屬主|屬組|other權限   所屬群組  檔案容量  最後修改時間   檔名

檔案屬性)

第一個屬性代表這個檔案是『目錄、檔案或連結檔案等等』:

當為[ d ]則是目錄;

當為[ - ]則是檔案;

若是[ l ]則表示為連結檔(link file);

若是[ b ]則表示為裝置檔案裡面的可供儲存的接口裝置;

若是[ c ]則表示為裝置檔案裡面的串行端口裝置,例如鍵盤、滑鼠。

下來,三個為一組,且均為『rwx』 的三個參數的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(excute)

r:4

w:2