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