Linux 修改文件權限
前面小節介紹了用戶權限相關的知識,從這一小節開始我們將要開始學習文件權限相關的知識,如何給文件修改權限,之前小節介紹過 ls
命令展示出來的一些文件相關的信息,這里面就有和文件權限相關的信息。
在 Linux 系統中,有時候某些文件內容不能修改,只能擁有只讀權限,某些文件需要讀寫權限,即可以讀,又可以寫,某些文件需要可執行權限,這個時候若文件的相關權限不正確,就可能報錯業務出錯,因此需要對文件權限進行修改。
1. Linux 文件權限值
在上述權限中的文件讀、寫、執行權限信息中,對應著二進制數值,對應關系如下表:
權限展示值 | 二進制值 | 八進制值 | 描述 |
---|---|---|---|
--- |
000 | 0 | 表示沒有讀、寫、執行權限 |
--x |
001 | 1 | 表示有執行權限,沒有讀、寫權限 |
-w- |
010 | 2 | 表示有寫,沒有讀、執行權限 |
-wx |
011 | 3 | 表示有寫、執行權限,沒有讀權限 |
r-- |
100 | 4 | 表示有讀權限,沒有寫、執行權限 |
r-x |
101 | 5 | 表示有讀、執行權限,沒有寫權限 |
rw- |
110 | 6 | 表示有讀、寫權限,沒有執行權限 |
rwx |
111 | 7 | 表示有讀、寫、執行權限 |
2. umask 命令
在 Linux 系統中創建一個新的文件或者目錄的時候,它們都會有默認的訪問權限,umask 命令則可以修改這些文件默認的訪問權限。例如用戶創建一個文件的默認訪問權限為 rw-rw-rw-(八進制值666)
,創建目錄的默認權限 rwxrwxrwx(八進制值777)
,而 umask 值則表明了需要從默認權限中去掉哪些權限來成為最終的默認權限值。
2.1 umask 命令查看默認權限去除值
使用 umask
命令可以查看一個默認的權限信息,命令如下:
umask
執行結果如下圖:
如上圖所示,當前文件或目錄權限相關的是默認去除值是 0022
,其中第一位 0
表示的是一項特殊安全權限,暫且不討論。
后面三位 022
則和普通權限 rwx
有關,其中后三位中的第一位 0
表示創建者/所有者相關的權限,表示從用戶權限去掉 0
對應的權限 ---(不變)
,后三位中的第二位 2
表示用戶組相關的權限,表示從用戶組權限去掉 2
對應的權限-w-(寫權限)
,后三位中的第三位 2
表示和其他用戶的權限有關,表示其他用戶的權限去掉 2
對應的權限 -w-(寫權限)
。
所以創建 文件
的默認八進制值 666(rw-rw-rw-)
去掉 022(----w--w-)
對應的相關權限之后為 644(rw-r--r--)
,創建 目錄
的默認八進制值 777(rwxrwxrwx)
去掉 022(----w--w-)
對應的相關權限之后為 755(rwxr-xr-x)
,下面通過示例來驗證一下:
umask
touch testfile
ls -l testfile
mkdir testdir
ls -l
執行結果如下圖:
Tips:
umask
命令展示出來表示從原來的默認值去除的權限值,新建文件默認的權限值是666
,新建目錄的權限值是777
,umask
命令展示的值是在這個基礎之上去除的。
2.2 umask 命令修改默認去除權限
若想要新建的文件有指定的初始默認權限,可以使用 umask
命令,命令如下:
umask 226
umask
執行結果如下圖:
新建文件默認的權限值是 666
,新建目錄的權限值是 777
,226
表示在這個基礎上去除
-w--w-rw-
之后的權限。
3. chmod 命令
3.1 修改文件權限
新建一個文件 newfile
,然后使用 chmod
命令修改文件權限,新建和修改文件權限命令如下:
touch newfile
ls -l newfile
chmod 777 newfile
ls -l newfile
執行結果如下圖:
3.2 修改目錄權限
使用 chmod
命令修改目錄的權限,修改目錄權限命令如下:
ls -l
chmod -R 755 study
ls -l
執行結果如下圖:
3.3 chmod 命令限定權限
chmod
命令可以修改已經存在的文件或目錄的權限,可以分別修改它們用戶的權限、用戶組的權限、其他用戶的權限,也可以修改上述全部的權限,下圖表示 chmod
權限相關的操作:
下面以新增文件其他用戶寫權限為例,命令如下:
ls -l testfile
chmod o+w testfile
ls -l testfile
執行結果如下圖:
3.4 chmod 權限作用對象
u
表示用戶;g
表示用戶組;o
表示其他用戶;a
表示全部。
3.5 權限操作相關符號
+
表示在現有權限基礎上增加權限;-
表示在現有權限基礎上移除權限;=
表示在現有權限基礎上設置成等號后的權限。
3.6 權限設置值
r
表示讀權限;w
表示寫權限;x
表示執行權限。
4. 小結
本小節介紹了文件或目錄權限相關的命令,新建的文件權限默認是 rw-rw-rw-
,新建目錄權限默認是 rwxrwxrwx
,使用 umask
命令可以對新建的文件或目錄的權限去除某些特定的權限。還介紹了 chmod
命令直接配合八進制權限值修改文件或目錄的權限,也可以使用限定符在原來權限基礎上增加、移除、設定某些權限。