在Linux系統(tǒng)中,文件的權(quán)限控制著文件的所有操作,比如一個文件的讀寫權(quán)限、執(zhí)行權(quán)限、是否為目錄等等。
以下操作全部在終端中執(zhí)行, 快捷鍵Ctrl+Alt+T
輸入ls -l
命令來列出當(dāng)前文件夾下所有文件和子文件夾的權(quán)限詳情。
user1@wzjing-win10:/mnt/c/Users/user1$ ls -l
total 458391864
drwxrwxrwx 0 root root 512 May 13 00:51 AppData
drwxrwxrwx 0 root root 512 Apr 25 00:10 CLionProjects
drwxrwxrwx 0 root root 512 May 22 09:32 compile
drwxrwxrwx 0 root root 512 May 28 14:08 Desktop
-rwxrwxrwx 0 root root 512 May 28 14:08 test.apk
每一行的含義分別如下:
權(quán)限 | incode | 所屬用戶 | 所屬用戶組 | 文件大小 | 修改時間 | 文件或文件名 |
---|---|---|---|---|---|---|
drwxrwxrwx | 0 | root | root | 512 | May 13 00:51 | AppData |
每一行的第一個字段,如drwxrwxrwx
代表了這個文件的權(quán)限詳情,共分為10位,由 d r w x - 五種標(biāo)識符組成,
- d 是否為目錄
- r 代表用戶是否有讀取權(quán)限
- w 代表用戶是否有寫入權(quán)限
- x 代表用戶是否有執(zhí)行權(quán)限
- - 代表此項(xiàng)為空,也就是沒有此項(xiàng)權(quán)限的意思
位置 | 屬性 | 含義 |
---|---|---|
第1位 | d | 代表是否為文件夾 |
第2-4位 | rwx | 代表所屬用戶的讀 寫 執(zhí)行權(quán)限 |
第5-7位 | rwx | 代表所屬用戶組的讀 寫 執(zhí)行權(quán)限 |
第8-10位 | rwx | 代表其他用戶的讀 寫 執(zhí)行權(quán)限 |
如第一位是d
代表是文件夾, 第一位如果是-
代表不是文件夾(那不就是文件嘍)
rwx
代表有讀取、寫入、執(zhí)行權(quán)限,如果為-wd
代表無讀取、有寫入、有執(zhí)行權(quán)限
好吧,現(xiàn)在來理解這一行
drwxrwxrwx 0 root root 512 May 13 00:51 AppData
-
第1位
d
是文件夾 -
2-4位
rwx
所屬用戶root
有 讀取、寫入、執(zhí)行 三項(xiàng)權(quán)限 -
5-7位
rwx
所屬用戶組root
有 讀取、寫入、執(zhí)行 三項(xiàng)權(quán)限 -
8-10位
rwx
其他用戶user1
有 讀取、寫入、執(zhí)行 三項(xiàng)權(quán)限
使用chmod
命令更改文件權(quán)限
語法chmod [權(quán)限操作] [文件名]
你不能把一個文件改成文件夾或者把文件夾改成文件,所以你只能改后9位
使用 u g o a 代表要更改的權(quán)限群組,
- u [代表所屬用戶]
- g [代表所屬用戶組]
- o [代表其他用戶]
- a [代表以上所有三個]
- - [代表刪除權(quán)限]
- + [代表增加權(quán)限]
- = [代表將權(quán)限設(shè)置為]
示例(如果提示你沒權(quán)限修改的話,就在命令前邊增加sudo)
chmod u+x test.apk
代表增加所屬用戶對test.apk的可執(zhí)行權(quán)限
chmod a-w AppData
代表刪除所有人對AppData這個文件夾的寫入權(quán)限
chmod -w AppData
a可以省略,此條命令和上邊這條完全相同
也可以一次設(shè)置多個權(quán)限
chmod g+rwx AppData
代表添加所屬用戶組可讀取、可寫入、可執(zhí)行權(quán)限
chmod g=rwx AppData
代表把所屬用戶組的權(quán)限設(shè)置為可讀取、可寫入、可執(zhí)行
**Tip: **其實(shí)+
和=
的區(qū)別不是很大
有一種更為簡便的寫法:
Linux系統(tǒng)內(nèi)部設(shè)定: r=4 w=2 x=1 -=0
r w x任意一種組合的三個值相加的結(jié)果都不同
如:
rwx=7
-wx=3
r-x=5
rw-=6
所以可以這么寫命令:
chmod 777 test.apk
設(shè)置權(quán)限為 -rwxrwxrwx
chmod 755 test.apk
設(shè)置權(quán)限為 -rwxr-xr-x
chmod 666 test.apk
設(shè)置權(quán)限為 -rw-rw-rw-