linux中普通用户用友所有权限,linux文件的特殊权限
1.SetUID的功能
只有可以執行的二進制程序才能設定SUID權限,
命令執行者必須丟該程序擁有x執行權限,
命令執行者在執行該程序時獲得該程序文件屬主的身份(在執行過程中靈魂附體為文件的屬主),
SetUID權限只在該程序執行過程中有效,也就是說身份改變只在程序執行過程中有效,
為什么要擁有這樣的一個功能呢?
在Linux系統中每個普通用戶都可以更改自己的密碼,這是合理的設置,用戶的信息保存在文件/etc/passwd中,用戶的密碼保存在文件/etc/shadow中,也就是說用戶更改自己密碼時是修改了/etc/shadow文件中的加密密碼,但是,
-rw-r--r-- 1 root root 1787 Oct 27 2009 /etc/passwd
-r-------- 1 root root 1187 Oct 27 2009 /etc/shadow
/etc/passwd文件每個用戶都有讀權限但是只有root有寫權限,/etc/shadow文件只有超級用戶root有讀寫權限,也就是說普通用戶對這兩個文件都沒有寫權限無法寫入新密碼,為什么普通用戶可以更改密碼呢?
在linux系統中,passwd命令有一個特殊的權限標記s ,存在于文件所有者的權限位上。這是一類特殊的權限SetUID。
而cat命令沒有SetUID權限,所以普通用戶不能查看/etc/shadow文件內容
2. 怎么設定SetUID
chmod 4755 文件名,4代表SUID,原權限前面加4
chmod u+s 文件名
3. 取消SetUID
chmod 755 文件名,直接把權限恢復為原來的
chmod u-s 文件名
4. 注意事項
SetUID很危險,關鍵目錄應該嚴格控制權限,比如“、”,“usr”等。
用戶的密碼設置要嚴格遵守密碼三原則
對系統中默認具有SetUID權限的文件作一列表,定時檢查有沒有這之外的文件被設置了SetUID權限。
5. SetGID針對文件的作用
只有可執行的二進制程序才能設置SGID權限
命令執行者要對該程序擁有x(執行)權限
命令在執行程序的時候,組身份升級為該程序文件的屬組
SetGID權限也同樣只在該程序執行過程中有效,也就是說組身份改變只能在程序執行過程中有效;
比如:
/usr/bin/locate是可執行二進制程序,可以賦予SGID,
執行用戶user1對/usr/bin/locate命令用友執行權限,
執行/usr/bin/locate時,組身份會升級為slocate組,而slocate組對/var/lib/mlocate/mlocate.db數據庫用友r權限,所以普通用戶可以使用locate命令查詢mlocate.db數據庫,
命令結束,user1用戶的組身份返回為user1組
6. SetGID針對目錄的作用
普通用戶必須對此目錄有r和x權限,才能進入此目錄,
普通用戶在此目錄中的有效組會變成此目錄的屬組,
若普通用戶對此目錄擁有w權限時,新建的文件的默認屬組是這個目錄的屬組。
設定:SetGID
chmod 2755 文件名 2代表SGID
chmod g+s 文件名
取消SetGID
chmod 755 文件名
chmod g-s 文件名
7. Sticky BIT粘著位
粘著位目前只針對目錄有效
普通用戶對該目錄擁有w和x權限,即普通用戶可以在此目錄擁有寫入權限;
如果沒有粘著位,因為普通用戶擁有w權限,所以可以刪除此目錄下的所有文件,包括其他用戶建立的文件。一旦賦予了粘著位,除了root可以刪除所有文件,普通用戶就算擁有w權限,也只能刪除自己建立的文件,但是不能刪除其他用戶建立的文件。
設置粘著位
chmod 1755 目錄名
chmod o+t 目錄名
取消粘著位
chmod 755 目錄名
chmmod o-t 目錄名
總結
以上是生活随笔為你收集整理的linux中普通用户用友所有权限,linux文件的特殊权限的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux服务器在线人数,servlet
- 下一篇: Linux solr 启动命令,linu