記錄學習 Linux 過程中的點滴,在 Linux 面前,我只是個小白

一、文件的基本屬性
- 在 Linux 中使用 ls –l 命令來顯示一個文件的屬性以及文件所屬的用戶和組,如:
$ ls -l
total 16
-rwxrwxr-x 1 helei helei 8600 Dec 4 17:56 a.out
-rwxr-xr-- 1 helei helei 77 Dec 4 17:55 hello.c
可以看到列出了當前目錄下的所有文件,包括權(quán)限信息,所屬用戶,日期和文件名,其它很好理解但是看到 -rwxrwxr-x 這一串字符的時候完全是懵逼狀態(tài)的,我是誰?我在哪?我要干什么???先來對里面的字符一步步拆分吧。
首先第一個字符用來標識是文件還是目錄,這里只列出兩個有代表性的:
- 當為[ - ]則代表文件
- 當為[ d ]則是目錄
然后在接下來的剩余字符中,以三個為一組,且均為『rwx』 的三個參數(shù)的組合。其中,[ r ] 代表可讀 (read)、[ w ] 代表可寫 (write)、[ x ] 代表可執(zhí)行 (execute)。我們知道,在 Linux 中,文件的基本權(quán)限就有九個,分別是
owner/group/others 三種身份各有自己的 read/write/execute 權(quán)限。那我們就明白了,并且可以得出結(jié)論:
- 第一組 rwx 表示 owner 身份用戶對該文件有著讀、寫和執(zhí)行的全部權(quán)利
- 第二組 rwx 表示 group 身份用戶對該文件有著讀、寫和執(zhí)行的全部權(quán)利
- 第三組 r-x 表示 others 身份用戶對該文件有著讀和執(zhí)行的權(quán)利,但是沒有寫的權(quán)利

二、更改文件權(quán)限設置
我們?nèi)绻胍榭磫蝹€文件的默認權(quán)限可以使用命令:ls -al 文件名
$ ls -al hello.c
-rwxr-xr-- 1 helei helei 77 Dec 4 17:55 hello.c
可以看到文件 hello.c 的默認權(quán)限為 -rwxr-xr--,要改變它的權(quán)限為 rwxrwxr-x,我們可以使用 chmod 命令,有兩種方法設置方法:
1、符號類型改變文件權(quán)限:chmod u=rwx,g=rwx,o=rx 文件名
$ chmod u=rwx,g=rwx,o=rx hello.c
$ ls -al hello.c
-rwxrwxr-x 1 helei helei 77 Dec 4 17:55 hello.c
從上示例中可以看到 hello.c 的權(quán)限已經(jīng)變成 rwxrwxr-x。
2、數(shù)字類型改變文件權(quán)限,各權(quán)限的分數(shù)對照表如下:
- r:4
- w:2
- x:1
每種身份(owner/group/others)各自的三個權(quán)限(r/w/x)分數(shù)是需要累加的,例如當權(quán)限為: [-rwxrwx---] 分數(shù)則是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= --- = 0+0+0 = 0
變更權(quán)限的指令 chmod 的語法是這樣的:
chmod [-R] xyz 文件或目錄
選項與參數(shù):
- xyz : 就是剛剛提到的數(shù)字類型的權(quán)限屬性,為 rwx 屬性數(shù)值的相加。
- -R : 進行遞歸 (recursive) 的持續(xù)變更,亦即連同次目錄下的所有文件都會變更
如果要將 hello.c 的所有權(quán)限都啟用,那么可以這樣:
$ ls -al hello.c
-rwxrwxr-x 1 helei helei 77 Dec 4 17:55 hello.c
$ chmod 777 hello.c
$ ls -al hello.c
-rwxrwxrwx 1 helei helei 77 Dec 4 17:55 hello.c
一頓操作猛如虎,hello.c 的文件權(quán)限變更為 rwxrwxrwx,??美滋滋。

剛接觸 Linux,如果有寫得不對的地方,希望能指出,一起交流,一起學習??。