1. 程式人生 > >Linux下的許可權簡介

Linux下的許可權簡介

抄自:https://blog.csdn.net/mydsyc/article/details/42079927
一、UNIX下關於檔案許可權的表示方法和解析

UNIX下關於檔案許可權的表示方法和解析
SUID 是 Set User ID, SGID 是 Set Group ID的意思。
UNIX下可以用ls -l 命令來看到檔案的許可權。用ls命令所得到的表示法的格式是類似這樣的:-rwxr-xr-x 。下面解析一下格式所表示的意思。這種表示方法一共有十位:
9 8 7 6 5 4 3 2 1 0

- r w x r - x r - x

第9位表示檔案型別,可以為p、d、l、s、c、b和-:

p表示命名管道檔案

d表示目錄檔案

l表示符號連線檔案

-表示普通檔案

s表示socket檔案

c表示字元裝置檔案

b表示塊裝置檔案

第8-6位、5-3位、2-0位分別表示檔案所有者的許可權,同組使用者的許可權,其他使用者的許可權,其形式為rwx:

r表示可讀,可以讀出檔案的內容

w表示可寫,可以修改檔案的內容

x表示可執行,可執行這個程式

沒有許可權的位置用-表示

其實在UNIX的實現中,檔案許可權用12個二進位制位表示,如果該位置上的值是

1,表示有相應的許可權:

11 10 9 8 7 6 5 4 3 2 1 0

S G T r w x r w x r w x

第11位為SUID位,第10位為SGID位,第9位為sticky位,第8-0位對應於上面的三組rwx位。

11 10 9 8 7 6 5 4 3 2 1 0

上面的-rwsr-xr-x的值為: 1 0 0 1 1 1 1 0 1 1 0 1

-rw-r-Sr–的值為: 0 1 0 1 1 0 1 0 0 1 0 0

給檔案加SUID和SUID的命令如下:

chmod u+s filename 設定SUID位

chmod u-s filename 去掉SUID設定

chmod g+s filename 設定SGID位

chmod g-s filename 去掉SGID設定