7.2文件特殊權限詳解

特殊權限:安全

    mode:
        ls -lssh

    安全上下文
        一、進程以某用戶身份運行;進程是發起此進程的用戶的代理,其用戶身份進程發起者;
        二、權限匹配模型:
            (1) 進程的屬主,是否與被訪問的文件屬主相同;
            (2) 進程的屬主所屬於的組當中,是否有一個與被訪問的文件的屬組相同;
            (3) 以other的權限進行訪問;
           
進程的屬主是發起者,屬組是發起者的基本組oop

[root@root ~]#ls -l $(which cat)
-rwxr-xr-x. 1 root root 48568 Oct 15 12:51 /bin/cat
[root@root ~]#ls -l $(which passwd)
-rwsr-xr-x. 1 root root 30768 Feb 22  2012 /usr/bin/passwd  注意屬主上的 s 權限位
  普通用戶使用passwd時,是不能接參數的,也就是說只能改本身的密碼
    稱爲suid: Set UID
        前提:此類文件爲有可執行權限的命令
        (當某用戶嘗試執行具備suid權限的命令時,不是以命令的發起者做爲進程的用戶身份,而是以
        這個文件的屬主看成進程的身份)
        任何用戶運行此命令爲一個進程時,此進程的有效身份不是發起者,而是命令文件自身的屬主;
   可以臨時的讓某些用戶以管理員的權限來執行某些命令
  
        chmod u+s FILE...  便可使文件具備suid的權限
            使用ls -l查看時,此s可能顯示爲大寫或小寫兩種形式之一;
                屬主原有執行權限時,顯示爲小寫;屬主原沒有執行權限時,顯示爲大寫;ui

    sgid: Set GID
        前提:
            經常使用方法:若是將目錄的屬組設置SGID權限以後,全部用戶在此目錄建立文件的屬組再也不是用
            戶的基本組,而是目錄的屬組3d

        chmod g+s FILE...   在開發項目中多我的對同一個目錄下的文件有寫權限
  一個用戶對文件是否有刪除權限取決於用戶對文件所屬目錄是否有寫權限
 
    有那麼一個目錄:
        指定的用戶都可以在其中建立文件,也能刪除本身的文件;但不能刪除別人的文件;代理

    sticky: 沾滯位   表現爲在其餘用戶上有 t的權限
     [root@root ~]#ls -ld /tmp/
   drwxrwxrwt. 16 root root 4096 Dec 30 20:50 /tmp/  讓用戶能建立文件可是不能刪除別人的文件token

        chmod o+t FILE...  能實現用戶能刪除文件,其餘用戶不能刪除此文件進程

    suid sgid sticky  組成了3位二進制
    000:
    001:
    010
    011
    100
    101
    110
    111hadoop

    chmod 7755 開發

    練習:
        一、讓普通用戶使用/tmp/cat能查看管理員纔有權限訪問的文件;
        二、新建目錄/project/test,讓普通用戶hadoop和openstack對此目錄都能
        建立文件,且建立的文件的屬組爲此目錄的屬組,而非用戶自身的屬組,此
        外還要求,每一個用戶不能刪除其它人的文件;


   答案:
   1.
把命令複製到tmp目錄下  
[root@root ~]#which cat
/bin/cat
[root@root ~]#cp /bin/cat /tmp/
[root@root ~]#ls -l /tmp/cat
-rwxr-xr-x. 1 root root 48568 Dec 30 21:07 /tmp/cat
[root@root ~]#ssh user10@192.168.20.120 "/tmp/cat /etc/shadow"
user10@192.168.20.120's password:
/tmp/cat: /etc/shadow: Permission denied
[root@root ~]#chmod u+s /tmp/cat  命令加入suid後,再來以普通用戶的身份查看管理員纔有權限查看的文件
[root@root ~]#ls -l /tmp/cat
-rwsr-xr-x. 1 root root 48568 Dec 30 21:07 /tmp/cat
[root@root ~]#ssh user10@192.168.20.120 "/tmp/cat /etc/shadow"
user10@192.168.20.120's password:
root:$6$0LBho94G$uPzBpRjBrDXJSoyVY6QqYXICQTDd6QHAq0OfT4lga7mYnoIjsOkd7MBQu7UOClBq2rDHIKxVU3d9mzCXZy8cu.:16425:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
。。。。。。。。。。。。。。。。

   2.    -----------------------------------------------------    [root@root ~]#mkdir -pv /project/test mkdir: created directory `/project' mkdir: created directory `/project/test' [root@root ~]#id hadoop id: hadoop: No such user [root@root ~]#useradd hadoop [root@root ~]#passwd hadoop Changing password for user hadoop. New password: BAD PASSWORD: it is too simplistic/systematic BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully. [root@root ~]#id openstack uid=520(openstack) gid=520(openstack) groups=520(openstack) [root@root ~]#passwd openstack Changing password for user openstack. New password: BAD PASSWORD: it is too simplistic/systematic BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully. [root@root ~]#id user10 uid=1007(user10) gid=300(user10) groups=300(user10) [root@root ~]#chown -R user10.user10 /project/ [root@root ~]#ls -l /project/ total 4 drwxr-xr-x. 2 user10 user10 4096 Dec 30 21:27 test [root@root ~]#usermod -a -G user10 hadoop [root@root ~]#usermod -a -G user10 openstack [root@root ~]#id -G hadoop 1042 300 [root@root ~]#id -Gn hadoop hadoop user10 [root@root ~]#id hadoop uid=1039(hadoop) gid=1042(hadoop) groups=1042(hadoop),300(user10) [root@root ~]#id openstack uid=520(openstack) gid=520(openstack) groups=520(openstack),300(user10) [root@root ~]#cd /project/test/ [root@root test]#ssh hadoop@192.168.20.120 "touch yes.hadoop yes1.hadoop" hadoop@192.168.20.120's password: [root@root test]#ls -l /project/test/ total 0 [root@root test]#ssh hadoop@192.168.20.120 "touch /project/test/{yes.hadoop,yes1.hadoop}" hadoop@192.168.20.120's password: touch: cannot touch `/project/test/yes.hadoop': Permission denied touch: cannot touch `/project/test/yes1.hadoop': Permission denied [root@root test]#ls /project/test -ld drwxr-xr-x. 2 user10 user10 4096 Dec 30 21:27 /project/test [root@root test]#chmod g+w /project/test [root@root test]#ls /project/test -ld drwxrwxr-x. 2 user10 user10 4096 Dec 30 21:27 /project/test [root@root test]#ssh hadoop@192.168.20.120 "touch /project/test/{yes.hadoop,yes1.hadoop}" hadoop@192.168.20.120's password: [root@root test]#ls /project/test/ -l total 0 -rw-r--r--. 1 hadoop hadoop 0 Dec 30 21:35 yes1.hadoop -rw-r--r--. 1 hadoop hadoop 0 Dec 30 21:35 yes.hadoop [root@root test]#chmod g+s /project/test [root@root test]#ls -ld /project/test drwxrwsr-x. 2 user10 user10 4096 Dec 30 21:35 /project/test [root@root test]#ssh hadoop@192.168.20.120 "touch /project/test/{yes.hadoop1,yes1.hadoop2}" hadoop@192.168.20.120's password: [root@root test]#ls /project/test/ yes1.hadoop  yes1.hadoop2  yes.hadoop  yes.hadoop1 [root@root test]#ls /project/test/ -l total 0 -rw-r--r--. 1 hadoop hadoop 0 Dec 30 21:35 yes1.hadoop -rw-r--r--. 1 hadoop user10 0 Dec 30 21:36 yes1.hadoop2 -rw-r--r--. 1 hadoop hadoop 0 Dec 30 21:35 yes.hadoop -rw-r--r--. 1 hadoop user10 0 Dec 30 21:36 yes.hadoop1 [root@root test]#ssh openstack@192.168.20.120 "touch /project/test/{yes.openstack1,yes1.openstack2}" openstack@192.168.20.120's password: [root@root test]#ls -l /project/test/ total 0 -rw-r--r--. 1 hadoop    hadoop 0 Dec 30 21:35 yes1.hadoop -rw-r--r--. 1 hadoop    user10 0 Dec 30 21:36 yes1.hadoop2 -rw-r--r--. 1 openstack user10 0 Dec 30 21:38 yes1.openstack2 -rw-r--r--. 1 hadoop    hadoop 0 Dec 30 21:35 yes.hadoop -rw-r--r--. 1 hadoop    user10 0 Dec 30 21:36 yes.hadoop1 -rw-r--r--. 1 openstack user10 0 Dec 30 21:38 yes.openstack1 [root@root test]#ssh openstack@192.168.20.120 "rm -f /project/test/yes1.hadoop2" openstack@192.168.20.120's password: [root@root test]#ls /project/test/ -l total 0 -rw-r--r--. 1 hadoop    hadoop 0 Dec 30 21:35 yes1.hadoop -rw-r--r--. 1 openstack user10 0 Dec 30 21:38 yes1.openstack2 -rw-r--r--. 1 hadoop    hadoop 0 Dec 30 21:35 yes.hadoop -rw-r--r--. 1 hadoop    user10 0 Dec 30 21:36 yes.hadoop1 -rw-r--r--. 1 openstack user10 0 Dec 30 21:38 yes.openstack1 [root@root test]#chmod o+t /project/test [root@root test]#ls -ld /project/test drwxrwsr-t. 2 user10 user10 4096 Dec 30 21:39 /project/test [root@root test]#ssh openstack@192.168.20.120 "rm -f /project/test/yes.hadoop1" openstack@192.168.20.120's password: rm: cannot remove `/project/test/yes.hadoop1': Operation not permitted [root@root test]#ssh openstack@192.168.20.120 "rm -f /project/test/yes.openstack1" openstack@192.168.20.120's password: [root@root test]#ll /project/test/ total 0 -rw-r--r--. 1 hadoop    hadoop 0 Dec 30 21:35 yes1.hadoop -rw-r--r--. 1 openstack user10 0 Dec 30 21:38 yes1.openstack2 -rw-r--r--. 1 hadoop    hadoop 0 Dec 30 21:35 yes.hadoop -rw-r--r--. 1 hadoop    user10 0 Dec 30 21:36 yes.hadoop1

相關文章
相關標籤/搜索