linux UID,GID,EUID,EGID,SUID,SGID
SUID, SGID, sticky位可以參考:
http://onlyzq.blog.51cto.com/1228/527247/
?
SUID屬性只能運用在可執行文件上,當用戶執行該執行文件時,會臨時擁有該執行文件所有者的權限。
如果可執行文件所有者權限的第三位是一個小寫的“s”就表明該執行文件擁有SUID屬性。
[root@srv ~]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 22960 Jul 17??2006 /usr/bin/passwd
如果在瀏覽文件時,發現所有者權限的第三位是一個大寫的“S”則表明該文件的SUID屬性無效,比如將SUID屬性給一個沒有執行權限的文件。
?
Sticky屬性
Sticky屬性只能應用在目錄,當目錄擁有Sticky屬性所有在該目錄中的文件或子目錄無論是什么權限只有文件或子目錄所有者和root用戶能刪除。
?
配置SUID/SGID/Sticky屬性
配置普通權限時可以使用字符或數字,SUID、SGID、Sticky也是一樣。使用字符時s表示SUID和SGID、t表示Sticky;4表示SUID、2表示SGID、1表示Sticky。在配置這些屬性時還是使用chmod命令。
?
當前目錄目前情況。 [root@srv tmp]# ll total 52 drwxr-xr-x 2 root root 4096 Feb 15 22:47 test2 drwxr-xr-x 2 root root 4096 Feb 15 22:47 test3 drwxr-xr-x 2 root root 4096 Feb 15 22:46 test4 drwxr-xr-x 2 root root 4096 Feb 15 22:46 test5 -r-xr-xr-x 1 root root 5120 Feb 15 22:46 test6 -r-xr-xr-x 1 root root 3072 Feb 15 22:50 test7 drwxr-xr-x 2 root root 4096 Feb 15 22:56 test1 -r-xr-xr-x 1 root root 6144 Feb 15 22:48 test8 -r-xr-xr-x 1 root root 9216 Feb 15 22:51 test9 為文件test6增加SUID屬性。 [root@srv tmp]# chmod u+s test6 l 為文件test8增加SUID屬性。在使用數字表示時,原來的三位不變,只是增加了一個千位專門用于SUID、SGID、Sticky屬性。下面的4就是SUID屬性。 [root@srv tmp]# chmod 4555 test8 l 為目錄test2增加SGID屬性。 [root@srv tmp]# chmod g+s test2/ l 為目錄test3增加SGID屬性。 [root@srv tmp]# chmod 2755 test3/ l #為文件test7增加SUID和SGID屬性,6=4(SUID)+2(SGID)。 [root@srv tmp]# chmod 6555 test7 l 為目錄test4增加Sticky屬性。 [root@srv tmp]# chmod o+t test4/ l 為目錄test5增加Sticky屬性。 [root@srv tmp]# chmod 1755 test5/ l 為目錄test1增加SGID和Sticky屬性,3=2(SGID)+1(Sticky)。 [root@srv tmp]# chmod 3755 test1/ l 執行上述更改命令后當前目錄的情況。[root@srv tmp]# ll total 52 drwxr-sr-x 2 root root 4096 Feb 15 22:47 test2 drwxr-sr-x 2 root root 4096 Feb 15 22:47 test3 drwxr-xr-t 2 root root 4096 Feb 15 22:46 test4 drwxr-xr-t 2 root root 4096 Feb 15 22:46 test5 -r-sr-xr-x 1 root root 5120 Feb 15 22:46 test6 -r-sr-sr-x 1 root root 3072 Feb 15 22:50 test7 drwxr-sr-t 2 root root 4096 Feb 15 22:56 test1 -r-sr-xr-x 1 root root 6144 Feb 15 22:48 test8 -r-xr-xr-x 1 root root 9216 Feb 15 22:51 test9 l 取消目錄test1的SGID屬性。 [root@srv tmp]# chmod g-s test1/ 在使用umask命令顯示當前的權限掩碼時,千位的“0”就是表示SUID、SGID、Sticky屬性。 提示:在有些資料上SUID、SGID被翻譯為“強制位”,Sticky被翻譯為“冒險位”。 View Code?
?
關于EUID,可以看:
http://www.cnblogs.com/limingluzhu/p/5702486.html
?
下面分別用RUID, EUID,SUID來表示實際用戶ID,有效用戶ID,設置用戶ID。另外用戶ID是個整型數,為了說明方便真接使用了用戶名來代表不同的UID。先解釋一下這幾個ID的作用:
RUID, 用于在系統中標識一個用戶是誰,當用戶使用用戶名和密碼成功登錄后一個UNIX系統后就唯一確定了他的RUID.
EUID, 用于系統決定用戶對系統資源的訪問權限,通常情況下等于RUID。
SUID,用于對外權限的開放。跟RUID及EUID是用一個用戶綁定不同,它是跟文件而不是跟用戶綁定。
從上可以看出/etc/shadow文件是一個屬于root用戶及root組的文件,并且只有EUID為root的用戶具有讀的權限,其它所有EUID都沒有任何權限。當你在steve用戶(EUID此時也為steve)的shell下試圖用vim打開這個文件時會提示權限不允許。至于連root用戶也只有讀的權限我猜是為了不鼓勵root用戶使用vim類的編輯器去直接修改它,而要采用passwd命令來修改這個文件。如果你非要直接修改它,那么你可以使用chmod命令修改為屬性為root可寫,然后就可以修改了。用過UNIX系統的人都知道,任何一個用戶都可以使用passwd這個命令來得新設定自己的密碼。但從上面已經知道,非root用記是無法讀這個文件的,那么普通用戶是如何做到修改這個文件的呢?我們知道passwd這個命令實際執行的程序是/usr/bin/passwd, 查看這個文件屬性如下:-r-s–x–x 1 root root 21944 Feb 12 2006 /usr/bin/passwd;?
?
總結
以上是生活随笔為你收集整理的linux UID,GID,EUID,EGID,SUID,SGID的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux日常管理3
- 下一篇: phpcms如何给已有的模块添加新功能?