1. 程式人生 > 實用技巧 >linux檔案許可權及特殊許可權

linux檔案許可權及特殊許可權

使用五種方法檢視檔案許可權

# 使用五種方法,檢視檔案的許可權,數字形式
[root@wzh ~]# stat 123|awk -F '[(0/]' 'NR==4{print $3}'
755
[root@wzh ~]# stat 123|sed -nr '4s#.*\(0(.*)/d.*#\1#gp'
755
[root@wzh ~]# ll 123 -d|tr 'rwx-' '4210'| awk  -F '' '{print $2+$3+$4$5+$6+$7$8+$9+$10}' 
755
[root@wzh ~]# stat 123|head -4|tail -1|cut -d '0' -f2|cut -d '/' -f1
755
[root@wzh ~]# stat 123|grep -w 'Gid'|grep -o '[0-9*]'|xargs -l4|grep -w '5'|cut -d '0' -f2,4,6
 7 5 5
[root@wzh ~]# stat 123|grep -o '755'
755
[root@wzh ~]# name="$(stat 123|head -4|tail -1)"&& echo ${name:10:3}
755

rwx對檔案的影響

r:檢視檔案內容,不能寫,不能執行
w:不能讀,不能執行,寫入使用echo >>,可以追加,寫入使用vim,不能追加,只能覆蓋
x:什麼也幹不了,因為無法讀取檔案內容,所以不知道執行什麼內容
rw:讀寫不能執行
rx:讀和執行,不能寫
wx:和單個w一樣
rwx:可讀 可寫 可執行

rwx對目錄的影響

r:可以檢視目錄下的檔名,但是無法檢視屬性
w:啥也幹不了
x:啥也幹不了
rx:檢視檔案屬性,可以進入,可以cp,不能rm 不能mv
rw:可以檢視,可以寫入,但是不能cp,不能rm,不能mv
rwx:可以檢視,可以寫入,可以cp 可以rm 可以mv
wx:可以建立,可以刪除,不能檢視

授權命令

# chown
chown 屬主.屬組 檔案或目錄
-R:遞迴更改屬組和屬主


# chmod
chmod 777 檔案或目錄
chmod u=rwx
chmod u+x

u:user 屬主
g:group 屬組
o:other 其他用使用者
a:all 所有許可權位

-R:遞迴授權

linux 特殊許可權介紹

[root@www ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

[root@www ~]# ll /usr/bin/write
-rwxr-sr-x. 1 root tty 19624 4月  11 2018 /usr/bin/write

[root@www ~]# ll /tmp/ -d
drwxrwxrwt. 9 root root 4096 4月   3 09:49 /tmp/

SUID
全拼:set uid

在屬主許可權位上,本來應該是x執行許可權出現了一個s

一般是針對可執行檔案

如果一個可執行檔案,在屬主許可權位的x位上有s許可權,那麼證明該檔案有set uid特殊許可權。
set uid:任何使用者(除了root外)執行具有suid許可權的檔案時,會以該檔案屬主的身份去執行

![](https://img2020.cnblogs.com/blog/2082997/202007/2082997-20200712193743563-668141468.png)

## SUID授權
# chmod ugo方式
[root@www ~]# chmod u+s 檔案或目錄

# chmod number方式 4000
[root@www ~]# chmod 4755 aaaa
[root@www ~]# chmod 4000 aaaa

注意:當授權檔案,原本屬主位上有x許可權時,是s,原本屬主位上沒有x許可權時,是S

SGID
全拼:set gid許可權

在屬組許可權位上,本來應該是x執行許可權出現了一個s

一般是針對目錄,也有可執行檔案(大部分針對目錄)

[root@www ~]# ll /usr/bin/write
-rwxr-sr-x. 1 root tty 19624 4月  11 2018 /usr/bin/write

1.針對使用者組許可權位修改,使用者建立的目錄或檔案所屬組和該目錄的所屬組一致。
2.當某個目錄設定了sgid後,在該目錄中新建的檔案不在是建立該檔案的預設所屬組
3.使用sgid可以使得多個使用者之間共享一個目錄的所有檔案變得簡單。

主要目的:共享目錄

## SGID授權方式
# chmod ugo方式
[root@www ~]# chmod g+s /tmp/test/

# chmod number方式  2000
[root@www ~]# chmod 2000 3

注意:當授權檔案,原本屬組位上有x許可權時,是s,原本屬組位上沒有x許可權時,是S

SBIT(粘滯位)
sticky(SI TI KI)粘滯

在其他使用者許可權位上,本來應該是x執行許可權出現了一個t

普通使用者對該目錄擁有w和x許可權,即普通使用者可以在此目錄中擁有寫入許可權,如果沒有粘滯位,那麼普通使用者擁有w許可權,就可以刪除此目錄下的所有檔案,包括其他使用者簡歷的檔案。但是一旦被賦予了粘滯位,除了root可以刪除所有檔案,普通使用者就算有w許可權也只能刪除自己建立的檔案,而不能刪除其他使用者簡歷的檔案。

系統中存在的/tmp目錄是經典的粘滯位目錄,誰都有寫許可權,因此安全成問題,常常是木馬第一手跳板。

## SB授權方式
# chmod ugo 方式
[root@www ~]# chmod o+t SB

# chmod number方式
[root@www ~]# chmod 1755 IT

注意:當授權目錄,原本其他使用者許可權位上有x許可權時,是t,原本其他使用者許可權位上沒有x許可權時,是T

命令中的"慈禧"

# 當建立一個使用者使用者的時候:
1.建立使用者   資訊記錄到 > /etc/passwd
1.1 使用者相關的密碼  記錄到 > /etc/shadow
2.建立使用者組  資訊記錄到 > /etc/group
2.1 使用者組相關的密碼 記錄到 > /etc/gshadow

chattr 枷鎖(root都無法操作被chattr命令加鎖的檔案)
i:上鎖,什麼都不能做,只能看
a:只能看和追加內容(不能覆蓋)

lsattr 檢視額外的許可權

linux系統程序掩碼UMASK

[root@www ~]# umask
0022

mkdir dir
0777
0022
----
0755

touch file
0666
0022
----
0644


[root@www ~]# umask 0033
[root@www ~]# umask
0033

dir:744
file:644

[root@www ~]# umask 0011
dir:766
file:666

0777
0011
----
0766

0666
0011
----
0655
0666

[root@www ~]# umask 0044
dir:733
file:622

umask計算,當umask中出現奇數時:目錄計算方式不變,但是奇數位的結果要+1
0777
0033
----
0744

0666
0033
----
0633
0644



[root@www ~]# umask 0045
dir:732
0777
0045
----
0732

file:622

0666
0045
----
0622