- 論壇徽章:
- 0
|
版權(quán)聲明:原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。
http://U16.cublog.cn
大家都知道文件和目錄的權(quán)限最常見的有三個.可讀(r)..可寫(w)..可執(zhí)行(x)..它們的級別分別是4..2..1..我們有時也會發(fā)現(xiàn)有些文件所屬主的權(quán)限上帶有一個s的標志位.目錄的所屬組上也帶有s標志位.很多人不理解這是為什么....下面我們舉例來看一下...
#ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 19876 Jul 17 2006 /usr/bin/passwd
這個文件的所屬主的x標志位上變成了s,這時稱為set uid ..簡寫就是suid..其實這個文件屬性也沒有特殊的含義..當這個s標志位出現(xiàn)在一些腳本上時,它就有意義了...比方說我我們有一個腳本名為sum.sh.這個腳本的權(quán)限如下:
-rwsrwxr-x 1 root root 117 Feb 6 20:46 sum.sh
這個腳本的所屬主和所屬組為root.我們當然可以以root的用戶的身份執(zhí)行它..我們還可以看見它的所屬主的標志位上有個s..其他人有讀取和執(zhí)行的權(quán)限.假如我們現(xiàn)在有個普通用戶名為redhat..現(xiàn)在切換到redhat..執(zhí)行此腳本..表面上我們看是執(zhí)行成功了..其實我們是借助root用戶的身份來執(zhí)行它..而不是redhat..這就是suid的特性....
下滿我們來說下SGID,看了上面的SUID后很容易就知道所謂SGID就是將標志s加到gid的x標志位上..稱為set gid.簡稱sgid..在這強調(diào)一下SUID我們一般用在文件上.特別是一些腳本上...SGID用在目錄上最多...比方說我以root身份創(chuàng)建一個目錄a.給他加上sgid權(quán)限
#mkdir a
#chmod 2757 a
#ls -l
drwxr-srwx 2 root root 4096 Feb 6 21:09 a
因為我們給a目錄其他人所具有的權(quán)限是可讀,可寫,可執(zhí)行...當我們以redhat用戶的身份切換到另外一個終端..進入a目錄中,我們在此目錄中創(chuàng)建一個目錄b和一個文件c
[redhat@station18 a]$ mkdir b
[redhat@station18 a]$ touch c
[redhat@station18 a]$ ls -l
drwxrwsr-x 2 redhat root 4096 Feb 6 21:20 b
-rw-rw-r-- 1 redhat root 0 Feb 6 21:20 c
我們可以看到目錄b和文件c的所屬組都為root......當你將一個a目錄置為sgid權(quán)限時候,如果其他人有讀取,執(zhí)行和寫入的權(quán)限時,別人在此目錄中創(chuàng)建的任何文件和目錄的所屬組都為a目錄的所屬組..但所屬主還是自己...這個會經(jīng)常的用到....有一點大家得注意...就是任何人在a目錄中創(chuàng)建的東西.別人都可以刪掉...這就是我們下面要講到的SBIT....
SBIT 全稱Sticky Bit.但是它只對目錄有效,對文件卻是無效的,它的作用就是防止別人刪除對方的資料...我們舉例來說明...
1..我用root用戶登錄創(chuàng)建一個目錄名為test
[root@station18 ~]# mkdir test
[root@station18 ~]# chmod o+w test/
[root@station18 ~]# ls -l
drwxr-xrwx 2 root root 4096 Feb 6 21:30 test
2..我們切換到redhat用戶登錄一個終端,創(chuàng)建一個目錄a..
[redhat@station18 test]$ mkdir a
3.我們在切換到xiaoming用戶登錄一個終端,創(chuàng)建一個目錄b...
[xiaoming@station18 test]$ mkdir b
[xiaoming@station18 test]$ ls -l
drwxrwxr-x 2 redhat redhat 4096 Feb 6 21:32 a
drwxrwxr-x 2 xiaoming xiaoming 4096 Feb 6 21:31 b
我們可以以任何用戶的身份進入test目錄發(fā)現(xiàn)可以刪除a和b目錄...這樣就亂了套...別人的目錄你豈能隨便刪的...這時我們就需要將test目錄加上SBIT權(quán)限了...
[root@station18 ~]# chmod 1757 test/
[root@station18 ~]# ls -l
drwxr-xrwt 4 root root 4096 Feb 6 21:42 test
我們在用別的用戶登錄進入test目錄他就刪不掉別人的資料了,系統(tǒng)會提示rm: cannot remove directory `a': Operation not permitted..意思是你權(quán)限不夠....呵呵...這樣別人就沒轍了....我測試過成功的...
下面我來說一下關(guān)于SUID SGID SBIT權(quán)限的設(shè)定...
SUID為4
SGID為2
SBIT為1
我在上面設(shè)定一些文件或目錄的權(quán)限你可能看不懂,,下面我來詳細講解...
假如我們有個文件叫file.有一個目錄叫test..file它的權(quán)限是644..test的權(quán)限是755
1..如果我們想把file加上suid權(quán)限的話執(zhí)行此命令
#chmod 4755 file
2..如果我們想把test目錄加上sgid的話執(zhí)行此命令
#chmod 2755 test/
3.如果我們想把test目錄加上sbit權(quán)限的話執(zhí)行此命令
#chmod 1755 test/
4..大家可以看得出來s與t都是取代x權(quán)限的...
5..如果不想讓test具備SUID和SGID權(quán)限執(zhí)行此命令
#chmod 7666 file
#ls -l
-rwSrwSrwT 1 root root 0 Feb 6 21:49 file
這里的S和T就代表空..不具備其他人執(zhí)行的權(quán)限...7666也就是說用戶,組,以及其他的人都不具備x的權(quán)限,除了root.任何人修改不了此文件...
這兒我用數(shù)字代替給文件加一些 權(quán)限....我們也可以用別的方法.比方說..我們給file文件加上suid權(quán)限
#chmod u=rwxs,o=rx file
給test目錄加上SGID權(quán)限和other可讀取寫入執(zhí)行權(quán)限
#chmod g+s,o=wrx test/
給test目錄加上SBIT權(quán)限和other可讀取寫入執(zhí)行權(quán)限
#chmod o=rwxt test/
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/111913/showart_2182986.html |
|