1. 程式人生 > >linux特殊許可權

linux特殊許可權

訪問控制列表
應用場景,我有我所屬目錄的所有許可權,我的開發組也有,但是我有一個朋友想要進我的目錄參觀,不能給所屬也不能讓他進組,需要一個後門這就是ACL訪問控制列表。
首先要在掛載後面加上acl選項
可在mount -o remount,acl 也可在/etc/fstab表中改正重啟
兩個常用命令:
Getfacl查詢和setfacl設定
Getfacl /data 查詢data的許可權
setfacl -m u:user:rwx /data
-m是修改acl資訊每個都要加 -d是設定預設的acl資訊遞迴目錄
增加了acl許可權後目錄會在第十一位有一個特殊的 + 許可權
在這裡插入圖片描述
-x是取消acl許可權
setfacl -m u:user /data 注意後面不要許可權了
加了d是有預設使用者許可權 可以在目錄中有遞迴的acl許可權
setfacl -m d:u:user:rwx /data
這個是指 有了這個許可權目錄所屬者在底下在建立一個目錄之後acl許可權的使用者依然可以繼承上一層目錄的許可權,但是沒有這個,所屬這建立一個目錄之後他不能在目錄中有acl許可權了。

Suid
SetUID(或者 s 許可權):當一個具有執行許可權的檔案設定SetUID許可權後,使用者執行這個檔案時將以檔案所有者的身份執行。passwd命令具有SetUID許可權,所有者為root(Linux中的命令預設所有者都是root),也就是說當普通使用者使用passwd更改自己密碼的時 候,那一瞬間突然 “靈魂附體” 了,實際在以passwd命令所有者root的身份在執行,命令執行完成後該身份也隨之消失。
必須具備以下幾個條件(前提):
只有可執行的二進位制程式才可以設定SetUID
所有者必須對欲設定SetUID的檔案具備 可執行(x) 許可權
命令執行過程中,其它使用者獲取所有者的身份(靈魂附體)
SetUID具有時間限制,即完成該程式執行後就消失
使用touch命令演示:
以一個普通使用者去建立檔案將是root使用者的所屬檔案
在這裡插入圖片描述


所以passwd就是root的檔案
但是普通使用者可以修改密碼就是因為加了suid
但是仔細一想如果passwd是以root使用者去執行這個命令的話
那一個普通使用者可以修改另一個普通使用者的密碼呀
結果肯定是不能的因為有了pam加密
Sgid
針對檔案:
可執行的二進位制檔案
命令執行者(即所屬組)對該檔案具備 x 許可權
執行時,執行者被所屬組靈魂附體
許可權只在執行過程中有效
針對目錄:
普通使用者對目錄具備r和x許可權,才可以進入到該目錄
普通使用者在此目錄中的有效組會變成此目錄的所屬組
如普通使用者對該目錄具備w許可權,新建檔案的所屬組為該目錄的所屬組。
例項:如果一個公司有一個公共目錄夾pub,所有的使用者都要可以進來操作,但是如果有一個使用者建立了一個目錄aaa,所屬使用者和組就全是他自己的,其他人就無法訪問了,這個時候可以在pub目錄上設定一個sgid那麼使用者建立aaa 的時候,所屬使用者是他自己,但是所屬組是這個公共目錄夾的所屬組。

貼上位
像前面的的那個公共目錄夾,如果底下的目錄全是和前面一樣的組一樣的組許可權,那麼任何人可以刪除任何一個另外的人的檔案,所以需要給一個貼上位
貼上位只能針對目錄
因為檔案的刪除是由上一級目錄的寫許可權決定的
在這裡插入圖片描述
所以哪怕是自己建立的檔案也不能刪除。
如果給一個目錄加了貼上位那麼目錄下面的檔案不能刪除
貼上位是在後面加了一個t
o+t
Usid =4 gsid=2 貼上=1
也可以用數字決定許可權。
Chmod 7777 /data

Sudo
1.使用者執行sudu時,系統尋找/etc/sudoers檔案,判斷使用者是否具備執行sudo的許可權
2.確認執行許可權後,讓使用者執行自身的密碼
3.確認密碼合法之後,開始執行後續的命令
4.Root執行sudo不需要密碼
5.自身切換自身也不需要密碼
配置檔案/etc/sudoers
root ALL=(ALL:ALL) ALL
使用者 server ip=(可切換的使用者:組) 可執行的命令
使用者前面加%是代表組/etc/lvm目錄

在這裡插入圖片描述
依次是設定主機的別名 使用者的別名 命令的別名

Umask
Umask是許可權的取反,例如ldx使用者umask為022
他建立的檔案為:644 他建立的目錄為:755
檔案的執行檔案會預設去除。

密碼策略
/etc/login.defs設定的是使用者賬號限制的檔案,但是該檔案對root無效。如果在/etc/shadown檔案中有相同的選項,後者優先。
在這裡插入圖片描述
使用者密碼有效的最長時間 使用者修改密碼的間距最短時間 密碼過期的之前密碼警告的天數,過期將密碼關閉。
在這裡插入圖片描述
使用者id的區間,還有其他的組的區間,密碼長度以及umask等。

/etc/shadow檔案
在這裡插入圖片描述
使用者:密碼:從1/1/1997開始到現在的天數:密碼需要多少天之後才能修改(0任何時間可修改):密碼多少天之後需要修改(1永遠不修改):密碼過期之前的警告天數(-1不警告):過期後要被禁用多少天(-1永遠不會禁用):使用者已禁用天數(-1啟用):保留
/etc/passwd
在這裡插入圖片描述
使用者:密碼:uid:gid:使用者別名:家目錄:使用者登入後使用的命令