Linux 中三種常用文件權(quán)限解析
歡迎來(lái)到藍(lán)隊(duì)云技術(shù)小課堂,每天分享一個(gè)技術(shù)小知識(shí)。在 Linux 系統(tǒng)運(yùn)維中,文件權(quán)限是繞不開(kāi)的核心知識(shí)點(diǎn)——它不僅是系統(tǒng)安全的“第一道防線”,更是新手運(yùn)維常踩的“坑”。比如誤刪配置文件、腳本無(wú)法運(yùn)行、數(shù)據(jù)被非法修改,很多時(shí)候根源都在權(quán)限配置上。今天我們就聚焦 Linux 中最核心的讀(r)、寫(w)、執(zhí)行(x)三種權(quán)限,從“是什么”“怎么用”“排錯(cuò)技巧”三個(gè)維度講透,幫你徹底擺脫權(quán)限困擾。
先搞懂:Linux 文件的“三類用戶”邏輯
權(quán)限配置的核心是“對(duì)人下藥”,Linux 中每個(gè)文件都綁定三類用戶,所有權(quán)限規(guī)則都圍繞它們展開(kāi):
文件所有者(u,user):創(chuàng)建文件的用戶,默認(rèn)擁有文件的最高控制權(quán),可自由修改權(quán)限和操作文件。
所屬組用戶(g,group):所有者所在用戶組的其他成員,適用于團(tuán)隊(duì)協(xié)作場(chǎng)景,比如開(kāi)發(fā)組共享腳本文件。
其他用戶(o,other):既非所有者也不在所屬組的用戶,通常是系統(tǒng)其他使用者或外部訪客,權(quán)限需嚴(yán)格限制。
1. 讀權(quán)限(r):控制“查看內(nèi)容”的權(quán)限
讀權(quán)限對(duì)應(yīng)數(shù)字權(quán)限 4,核心作用是允許用戶查看文件內(nèi)容,是最基礎(chǔ)的權(quán)限類型。
可用操作:擁有 r 權(quán)限時(shí),可通過(guò) cat、more、less、head、tail 等命令讀取文件,例如執(zhí)行 cat /etc/hosts 查看主機(jī)映射配置。
權(quán)限缺失后果:若沒(méi)有 r 權(quán)限,系統(tǒng)會(huì)直接返回“Permission denied”(權(quán)限拒絕),即便知道文件路徑也無(wú)法訪問(wèn)內(nèi)容。
實(shí)際場(chǎng)景:普通用戶嘗試查看 root 專屬的日志文件 /var/log/messages 時(shí),會(huì)因缺少 r 權(quán)限被拒絕,需通過(guò) sudo cat /var/log/messages 提權(quán)后才能查看。
2. 寫權(quán)限(w):控制“修改內(nèi)容”的權(quán)限
寫權(quán)限對(duì)應(yīng)數(shù)字權(quán)限 2,用于控制文件內(nèi)容的修改能力,包括添加、刪除、覆蓋文件內(nèi)容,但有一個(gè)關(guān)鍵約束:寫權(quán)限受文件所在目錄的權(quán)限影響。
兩大易混點(diǎn)解析:
僅配置 w 權(quán)限無(wú)實(shí)際意義:若給文件 test.txt 配置“-w-------”(僅所有者有寫權(quán)限),此時(shí)無(wú)法用 cat 查看內(nèi)容,只能通過(guò) echo "新內(nèi)容" > test.txt 覆蓋寫入,實(shí)際運(yùn)維中幾乎不會(huì)這樣配置,通常會(huì)搭配 r 權(quán)限使用。
寫權(quán)限 ≠ 刪除文件權(quán)限:刪除文件的權(quán)限由文件所在目錄決定,而非文件本身。例如 /tmp 目錄默認(rèn)給所有用戶開(kāi)放寫權(quán)限,因此普通用戶可刪除該目錄下其他用戶的文件(只要知道文件名),這也是 /tmp 目錄需要定期清理的重要原因。
實(shí)用配置案例:給團(tuán)隊(duì)共享腳本配置“所有者可寫、組用戶只讀、其他用戶無(wú)權(quán)限”,避免他人誤修改,執(zhí)行命令:chmod u=rw,g=r,o= /opt/team_script.sh。
3. 執(zhí)行權(quán)限(x):控制“運(yùn)行文件”的權(quán)限
執(zhí)行權(quán)限對(duì)應(yīng)數(shù)字權(quán)限 1,是可執(zhí)行文件的專屬權(quán)限,僅對(duì) shell 腳本(.sh)、編譯后的程序(如 gcc 生成的二進(jìn)制文件)有效,對(duì)普通文本(.txt)、配置文件(.conf)無(wú)實(shí)際作用。
高頻問(wèn)題場(chǎng)景:新手寫好 shell 腳本 test.sh 后,直接執(zhí)行 ./test.sh 報(bào)錯(cuò)“Permission denied”,90% 的原因是未給文件配置 x 權(quán)限。此時(shí)只需執(zhí)行 chmod u+x test.sh(給所有者添加執(zhí)行權(quán)限),即可正常運(yùn)行腳本。
安全配置技巧:
高效配置方式:數(shù)字權(quán)限組合是運(yùn)維常用技巧,例如 chmod 755 test.sh,其中 7=4+2+1(所有者 rwx)、5=4+1(組用戶 rx)、5=4+1(其他用戶 rx),這是腳本的標(biāo)準(zhǔn)安全配置,兼顧可用性和安全性。
總結(jié)
Linux 文件權(quán)限的核心邏輯可總結(jié)為“按用戶分類,按操作授權(quán)”:r 管查看、w 管修改、x 管運(yùn)行,三者對(duì)應(yīng)的數(shù)字(4、2、1)組合讓權(quán)限配置更高效。
權(quán)限問(wèn)題“三步走”排查法,幫你快速定位解決問(wèn)題:
查權(quán)限:執(zhí)行 ls -l 文件名 查看當(dāng)前權(quán)限,例如“-rwxr-xr--”代表:所有者 rwx、組用戶 rx、其他用戶 r。
查身份:執(zhí)行 whoami 確認(rèn)當(dāng)前登錄用戶,明確自己屬于“三類用戶”中的哪一類。
調(diào)權(quán)限:用 chmod 命令調(diào)整,優(yōu)先用數(shù)字組合(如 chmod 755),簡(jiǎn)潔且不易出錯(cuò)。
藍(lán)隊(duì)云官網(wǎng)上有更詳細(xì)的 Linux 權(quán)限管理手冊(cè),包含特殊權(quán)限(suid、sgid)、ACL 權(quán)限等進(jìn)階內(nèi)容,大家可自行查閱。更多技術(shù)問(wèn)題,可直接咨詢藍(lán)隊(duì)云技術(shù)支持;我們整理的“運(yùn)維必備工具包”中,也包含了權(quán)限批量檢查腳本,需要的朋友隨時(shí)聯(lián)系獲取。