linux是乙個支援多使用者的系統,為了區分管理不同使用者的檔案,linux設定了不同的訪問許可權區別不同的使用者。對乙個檔案而言,將訪問它的使用者分為三類:檔案擁有者,擁有者同組的成員,其他組的成員。
cd ~
ls -l
# 輸出如下:
總用量 64
drwxrwxr-x 2 ruo ruo 4096 1月 6 19:50 bin
drwxrwxr-x 4 ruo ruo 4096 1月 4 17:46 codes
drwxr-xr-x 3 ruo ruo 4096 1月 9 16:32 desktop
drwxr-xr-x 2 ruo ruo 4096 12月 9 11:09 documents
drwxr-xr-x 4 ruo ruo 4096 12月 21 23:14 downloads
-rw-rw-r-- 1 ruo ruo 151 12月 27 09:29 fault.c
drwxr-xr-x 2 ruo ruo 4096 12月 9 11:09 music
drwxr-xr-x 2 ruo ruo 4096 12月 9 11:09 pictures
-rw-rw-r-- 1 ruo ruo 9223 1月 4 18:07 ps.txt
drwxr-xr-x 2 ruo ruo 4096 12月 9 11:09 public
drwxr-xr-x 3 ruo ruo 4096 12月 22 21:58 snap
drwxr-xr-x 2 ruo ruo 4096 12月 9 11:09 templates
drwxrwxr-x 2 ruo ruo 4096 1月 6 19:59 test
drwxr-xr-x 2 ruo ruo 4096 12月 9 11:09 videos
如上所示,之前介紹過長格式中第乙個字元表示檔案的型別:d表示資料夾、-表示檔案、l表示鏈結檔案等。那麼後面9個字母即是針對上述三大類使用者的訪問許可權,訪問許可權分為:可讀、可寫、可執行或可搜尋(對目錄而言)(分別用字母r、w、x表示,-表示)。9個字母,每三個一組,分別為讀、寫、執行的許可權設定。
我們來新建乙個檔案演示具體許可權。
cd ~
touch test.txt
ls -l test.txt
# 輸出如下:
-rw-rw-r-- 1 ruo ruo 0 1月 10 19:10 test.txt
可以看出其為普通檔案,檔案持有者擁有讀寫許可權,檔案持有者同組成員也具有讀寫許可權,其他組的成員僅具有讀寫許可權(注:root使用者對所有檔案都具備許可權)。
chmod是coreutils中的乙個修改檔案模式位設定的程式,可以幫助我們設定檔案的許可權。檔案模式位可以採取符號表示或者八進位制數字表示,下面分別介紹它的用法。
格式:chmod [ugoa] [+-=] [rwx] filename
其中ugoa表示不同類別的使用者,u代表檔案持有者,g代表持有者同組的使用者,o代表其他使用者,a代表所有使用者。(這些使用者類別可以組合使用,若不給出指定使用者類別則預設為a,但是這會受到掩碼設定的影響)
+-= 表示對檔案進行何種方式的設定,+表示新增許可權,-表示減少許可權,=表示設定許可權為給定的值。
rwx表示具體許可權設定。r表示讀取許可權,w表示寫入許可權,x表示執行或搜尋的許可權。
# 示例,修改之前建立test.txt檔案的許可權
chmod a= test.txt
ls -l test.txt
# 輸出如下:可以看出所有使用者的許可權所有許可權都被取消了(管理員除外)
---------- 1 ruo ruo 0 1月 10 19:10 test.txt
# 若此時試圖檢視檔案,會得到許可權不夠的提示
cat test.txt
cat: test.txt: 許可權不夠
chmod u=rwx test.txt
ls -l test.txt
# 輸出如下:
-rwx------ 1 ruo ruo 0 1月 10 19:10 test.txt
chmod ugo=rwx test.txt
ls -l test.txt
# 輸出如下:
-rwxrwxrwx 1 ruo ruo 0 1月 10 19:10 test.txt
另一種表示許可權的方式是八進位制數字0~7,其中4表示讀許可權,2表示寫許可權,1表示執行或搜尋許可權(不同許可權值可以相加組合)。0表示無許可權,1表示執行或搜尋許可權,2表示寫許可權,3(1+2)表示寫許可權和執行或搜尋許可權,4表示讀許可權,5(4+1)表示執行或搜尋許可權和讀許可權,6表示讀寫許可權,7表示所有許可權。這樣,就可以用三個八進位制數字對檔案進行許可權管理,不需要再使用ugoa。
chmod =000 test.txt
ls -l test.txt
# 輸出如下:可以看出所有使用者的許可權所有許可權都被取消了(管理員除外)
---------- 1 ruo ruo 0 1月 10 19:10 test.txt
chmod 222 test.txt
ls -l test.xt
# 輸出如下:
--w--w--w- 1 ruo ruo 0 1月 10 19:10 test.txt
chmod +111 test.txt
ls -l test.txt
# 輸出如下:
--wx-wx-wx 1 ruo ruo 0 1月 10 19:10 test.txt
bash 許可權不夠
sudo ls test bash test 許可權不夠 其實需要重定向的不僅僅只有echo命令 眾所周知,使用 echo 並配合命令重定向是實現向檔案中寫入資訊的快捷方式。本文介紹如何將 echo 命令與 sudo 命令配合使用,實現向那些只有系統管理員才有許可權操作的檔案中寫入資訊。比如要向 t...
python 許可權管理 python程式設計 許可權管理
from django.db import models create your models here.class user models.model username models.charfield max length 32 pasword models.charfield max leng...
bash程式設計
sticky許可權 每個使用者只能刪除自己的檔案 sgid 其他使用者在該目錄創立檔案仍然是該目錄的屬組 suid 執行的程式是該程式使用者執行 suid s 沒x許可權 s 有x許可權 t other有x許可權 t 沒x bin bash if lt 1 then echo exit 1 fiif...