Linux中修改文件權限chmod命令詳解
作用:修改文件權限
參數(shù):
- u 表示文件擁有者
- g 表示文件所屬的用戶組
- o 表示其他用戶
- a a = u+g+o
+
增加權限-
減少權限=
設置權限- r 可讀取
- w 可寫入
- x 可執(zhí)行
- -R 遞歸修改
一、常用操作
chmod u+r a.txt # 所屬用戶增加可讀權限 chmod u-r a.txt # 所屬用戶減少可讀權限 chmod u=r a.txt # 所屬用戶設置可讀權限 chmod a+r a.txt # 給所有人增加可讀權限 chmod u+x,g+w a.txt # 同時修改多個權限 chmod ug+x a.txt # 同時修改多個權限 chmod 777 a.txt # 給所有人增加讀、寫、執(zhí)行權限 chmod -R 777 目錄 # 修改目錄及目錄下所有文件的權限
1. 字母形式
1)給文件的所屬用戶增加執(zhí)行權限
chmod u+x a.txt
2)給文件的所屬用戶減少執(zhí)行權限
chmod u-x a.txt
3)給文件的所屬用戶設置讀寫權限
chmod u=rw a.txt
4)給文件的所屬組增加執(zhí)行權限
chmod g+x a.txt
5)給文件的其他用戶增加執(zhí)行權限
chmod o+x a.txt
6)同時修改多個權限,用逗號間隔
chmod u+x,g+w a.txt
7)給所屬用戶和所屬組同時增加可執(zhí)行權限
chmod ug+x a.txt
8)同時給多個文件修改權限
chmod u+x a.txt b.txt
9)給所有人都增加可執(zhí)行權限
chmod a+x a.txt
2. 數(shù)字形式
1)給所有人都增加讀、寫、執(zhí)行權限
chmod 777 a.txt
3. 遞歸設置
修改目錄的權限后,目錄中的文件權限并不會改變。
想要把目錄和目錄下的所有文件都修改權限,可以加上 -R
參數(shù)
chmod -R 777 目錄
二、文件權限解讀
我們用 ls -l
命令查看文件信息時,會顯示下面這些字段,其中最左邊的那一串字母,就表示這個文件的權限
drwxr-xr-x 2 root root 4096 Dec 16 13:56 a
- 第一位:表示文件類型(d表示目錄,-表示文件)
- 第2~4位:表示文件所有者的權限
- 第5~7位:表示用戶組的權限
- 第8~10位:表示其他用戶的權限
權限使用 r
、 w
、 x
、 -
四種符號表示
- r:read,表示讀權限,文件可以被查看
- w:write,表示寫權限,文件可以被修改
- x:execute,表示執(zhí)行權限,文件可以被執(zhí)行
- -:表示沒有權限
三、數(shù)字權限
chmod命令可以用八進制數(shù)來制定權限,數(shù)字和字母權限的對應關系如下:
數(shù)字形式 | 權限權限 | 字母形式 |
---|---|---|
7 | 讀 + 寫 + 執(zhí)行 | rwx |
6 | 讀 + 寫 | rw- |
5 | 讀 + 執(zhí)行 | r-x |
4 | 只讀 | r– |
3 | 寫 + 執(zhí)行 | -wx |
2 | 只寫 | -w- |
1 | 只執(zhí)行 | –x |
0 | 無 | — |
四、特殊的root權限
雖然我們經常管 root 叫超級管理員用戶,但 root 的權限卻不受到 chmod 命令的約束。
比如 /etc/shadow
的權限是全空,正常來說,所有用戶都不能查看這個文件,但 root 用戶卻可以查看它的內容。
這就意味著,root 的權限凌駕于Linux的權限管理機制之上。
五、SUID詳解
SUID是Linux系統(tǒng)的一個特殊權限,可以讓其他用戶臨時獲取文件的執(zhí)行權限。
如果程序擁有SUID,程序運行為進程時,進程的所屬用戶就會變成程序的擁有者,而不是程序的調用者。
就相當于用戶使用程序擁有者的身份來運行這個程序。
1. 設置SUID
設置SUID的前提是,文件具有可執(zhí)行權限,也就是 rwx
權限,在這個基礎上,再給它增加 s
權限:
chmod u+s a.txt
設置完SUID后可以看到,文件的權限由 rwx
變成 res
如果給一個沒有執(zhí)行權限的文件設置SUID,就會變成一個大寫的 S
,就是無效的意思。
2. 取消SUID
減去 s 權限,就能取消SUID權限
chmod u-s a.txt
3. SUID提權
擁有SUID權限的文件,在執(zhí)行過程中,調用者會暫時獲得文件所有者的權限。
如果文件的所有者是 root,低權限用戶就可以利用這一點,進行提權。
以下命令可以尋找,系統(tǒng)上正在運行的擁有SUID的文件。
find / -user root -perm -4000 -print 2>/dev/null find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -exec ls -ldb {} ;
Nmap和 Msfconsole等工具都有相應的SUID提權模塊。
以上就是Linux修改文件權限chmod命令詳解的詳細內容,更多關于Linux chmod命令的資料請關注腳本之家其它相關文章!
相關文章
shell腳本正則匹配文件中的Email并寫入到文件中代碼分享
有時我們會處理日志文件,或其他文本文件,并將里面含有的Email讀取出來,可以利用shell處理文件的方法來讀取2014-04-04Shell兩種for循環(huán)對應實現(xiàn)方法解析
這篇文章主要介紹了Shell兩種for循環(huán)對應實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08linux shell實現(xiàn)判斷輸入的數(shù)字是否為合理的浮點數(shù)
這篇文章主要介紹了linux shell實現(xiàn)判斷輸入的數(shù)字是否為合理的浮點數(shù),需要的朋友可以參考下2016-08-08Shell特殊變量(Shell $#、$*、$@、$?、$$)的使用
這篇文章主要介紹了Shell特殊變量(Shell $#、$*、$@、$?、$$)的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03