国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux上文件的特殊權限SUID,SGID,SBIT詳解

2024-08-28 00:00:14
字體:
來源:轉載
供稿:網友

文件的特殊權限SGID, SUID..SBIT

        大家都知道文件和目錄的權限最常見的有三個.可讀(r)..可寫(w)..可執行(x)..它們的級別分別是4..2..1..我們有時也會發現有些文件所屬主的權限上帶有一個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標志位出現在一些腳本上時,它就有意義了...比方說我我們有一個腳本名為sum.sh.這個腳本的權限如下:
        -rwsrwxr-x 1 root root   117 Feb  6 20:46 sum.sh
         這個腳本的所屬主和所屬組為root.我們當然可以以root的用戶的身份執行它..我們還可以看見它的所屬主的標志位上有個s..其他人有讀取和執行的權限.假如我們現在有個普通用戶名為redhat..現在切換到redhat..執行此腳本..表面上我們看是執行成功了..其實我們是借助root用戶的身份來執行它..而不是redhat..這就是suid的特性....
        下滿我們來說下SGID,看了上面的SUID后很容易就知道所謂SGID就是將標志s加到gid的x標志位上..稱為set gid.簡稱sgid..在這強調一下SUID我們一般用在文件上.特別是一些腳本上...SGID用在目錄上最多...比方說我以root身份創建一個目錄a.給他加上sgid權限
        #mkdir a
        #chmod   2757  a
        #ls  -l
          drwxr-srwx 2 root root  4096 Feb  6 21:09  a
        因為我們給a目錄其他人所具有的權限是可讀,可寫,可執行...當我們以redhat用戶的身份切換到另外一個終端..進入a目錄中,我們在此目錄中創建一個目錄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權限時候,如果其他人有讀取,執行和寫入的權限時,別人在此目錄中創建的任何文件和目錄的所屬組都為a目錄的所屬組..但所屬主還是自己...這個會經常的用到....有一點大家得注意...就是任何人在a目錄中創建的東西.別人都可以刪掉...這就是我們下面要講到的SBIT....
        SBIT 全稱Sticky Bit.但是它只對目錄有效,對文件卻是無效的,它的作用就是防止別人刪除對方的資料...我們舉例來說明...
      1..我用root用戶登錄創建一個目錄名為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用戶登錄一個終端,創建一個目錄a..
       [redhat@station18 test]$ mkdir a
      3.我們在切換到xiaoming用戶登錄一個終端,創建一個目錄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目錄發現可以刪除a和b目錄...這樣就亂了套...別人的目錄你豈能隨便刪的...這時我們就需要將test目錄加上SBIT權限了...
       [root@station18 ~]# chmod  1757  test/
       [root@station18 ~]# ls -l
       drwxr-xrwt 4 root root  4096 Feb  6 21:42 test
       我們在用別的用戶登錄進入test目錄他就刪不掉別人的資料了,系統會提示rm: cannot remove directory `a': Operation not permitted..意思是你權限不夠....呵呵...這樣別人就沒轍了....我測試過成功的...
       下面我來說一下關于SUID SGID  SBIT權限的設定...
        SUID為4
        SGID為2
        SBIT為1
        我在上面設定一些文件或目錄的權限你可能看不懂,,下面我來詳細講解...
        假如我們有個文件叫file.有一個目錄叫test..file它的權限是644..test的權限是755
        1..如果我們想把file加上suid權限的話執行此命令
        #chmod  4755  file
        2..如果我們想把test目錄加上sgid的話執行此命令
        #chmod  2755   test/
        3.如果我們想把test目錄加上sbit權限的話執行此命令
        #chmod  1755   test/
        4..大家可以看得出來s與t都是取代x權限的...
        5..如果不想讓test具備SUID和SGID權限執行此命令
        #chmod   7666  file
        #ls  -l
         -rwSrwSrwT 1 root root     0 Feb  6 21:49 file
        這里的S和T就代表空..不具備其他人執行的權限...7666也就是說用戶,組,以及其他的人都不具備x的權限,除了root.任何人修改不了此文件...
        這兒我用數字代替給文件加一些 權限....我們也可以用別的方法.比方說..我們給file文件加上suid權限
        #chmod  u=rwxs,o=rx   file
        給test目錄加上SGID權限和other可讀取寫入執行權限
        #chmod  g+s,o=wrx    test/
        給test目錄加上SBIT權限和other可讀取寫入執行權限
        #chmod   o=rwxt   test/
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙门县| 石首市| 海林市| 鄂托克前旗| 莫力| 宝山区| 云霄县| 封开县| 喀喇沁旗| 区。| 和田县| 密山市| 诸城市| 临桂县| 营山县| 剑阁县| 合江县| 遂溪县| 遂平县| 额尔古纳市| 阿鲁科尔沁旗| 新巴尔虎右旗| 文山县| 闵行区| 黑龙江省| 阜平县| 怀宁县| 阳原县| 桐庐县| 沽源县| 浪卡子县| 外汇| 阿克| 阿勒泰市| 青河县| 获嘉县| 深水埗区| 杨浦区| 五台县| 赣榆县| 新闻|