高階許可權 suid,sgid,sticky
suid 針對二進位制檔案(可執行檔案) 提權 讓普通使用者對檔案有超級使用者的許可權
sgid
sticky
問題1: 為什麼會失敗!
[root@fanhua ~]
# ll /root/file1.txt -rw-r--r-- 1 root root 4 7月 27 14:14 /root/file1.txt
[alice@fanhua ~]$ cat /root/file1.txt
cat: /root/file1.txt: 許可權不夠
分析: root /usr/bin/cat (root) /root/file1.txt ok
alice /usr/bin/cat (alice) /root/file1.txt no
普通使用者修改密碼: alice /usr/bin/passwd (root) /etc/shadow
1.1.高階許可權的型別
suid 4
sgid 2
sticky 1 粘滯位
1.2.設定特殊許可權
a、字元
chmod u+s file
chmod g+s dir
chmod o+t dir
b、數字chmod 4777 file
chmod 7777 file
chmod 2770 dir
chmod 3770 dir
示例1:suid 普通使用者通過suid提權 《針對檔案》
在程序檔案(二進位制,可執行)上增加suid許可權
[root@fanhua ~]
# chmod u+s /usr/bin/cat
[root@fanhua ~]
# chmod u+s /usr/bin/rm
[alice@fanhua ~]$ cat /root/file1.txt
首先建立乙個使用者組,兩個使用者進行這三個案例操作
set uid
當s這個標誌出現在檔案所有者的x許可權上時,如/usr/bin/passwd這個檔案的許可權狀態:「-rwsr-xr-x.」,此時就被稱為set uid,簡稱為suid。那麼這個特殊許可權的特殊性的作用是什麼呢?
1、suid許可權僅對二進位制程式(binary program)有效;
2、啟動為程序之後,其程序的屬主為原程式檔案的屬主;
3、執行者將具有該程式擁有者(owner)的許可權。
案例:
[root@fanhua home]
# ll /usr/bin/rm
-rwxr-xr-x. 1 root root 62864 nov 6 2016 /usr/bin/rm
[root@fanhua home]
# chmod u+s /usr/bin/rm
此時普通使用者只能刪除許可權之內的檔案
一旦給rm加上suid許可權之後,普通使用者相當於root使用者。(即提權)
set gid
把s放到檔案的所屬使用者組x位置上的話,就是sgid。
那麼sgid的功能是什麼呢?和suid一樣,只是sgid是獲得該程式所屬使用者組的許可權。
這相sgid有幾點需要我們注意:
*:sgid主要用在目錄上
如果使用者在此目錄下具有w許可權的話,若使用者在此目錄下建立新檔案,則新檔案的群組與此目錄的群組相同。
案例:
[root@localhost ~]
# mkdir /opt/dir1
[root@localhost ~]
# groupadd hr
[root@localhost ~]
# chmod 775 /opt/dir1/
[root@localhost ~]
# ll -d /opt/dir1/
drwxrwxr-x. 2 root root 6 jul 19 15:20 /opt/dir1/
[root@localhost ~]
# chown .hr /opt/dir1/
[root@localhost ~]
# chmod g+s /opt/dir1/
[root@localhost ~]
# ll -d /opt/dir1/
drwxrwsr-x. 2 root hr 6 jul 19 15:20 /opt/dir1/
[root@localhost ~]
# touch /opt/dir1/a.txt
-rw-rw-r--. 1 root hr 0 jul 19 15:23 /opt/dir1/a.txt
注:sgid 只能把資料夾下新建檔案的屬組與資料夾的屬組相同 不複製屬組許可權
sticky bit
這個就是針對others來設定的了,和上面兩個一樣,只是功能不同而已。
sbit(sticky bit)目前只針對目錄有效,對於目錄的作用是:當使用者在該目錄下建立檔案或目錄時,僅有自己與 root才有權力刪除。
[root@fanhua home]
# cd /home/
[root@fanhua home]
# mkdir dir2
[root@fanhua home]
# chmod 777 dir2/ //確保其他人能操作目錄
[root@fanhua home]
# chmod o+t dir2/ //給予dir1目錄sticky
[root@fanhua home]
# ll -d dir2/
drwxrwxrwt 2 root root 4096 jul 13 16:09 dir1/
[alice@fanhua dir2]$ touch alice.txt //使用者alice在/home/dir2建立乙個檔案
[jack@fanhua dir2]$ touch jack.txt //使用者jack在/home/dir2建立乙個檔案
測試alice刪除jack建立的檔案,無法刪除
1.3.普通使用者可以修改密碼:
alice /usr/bin/passwd /etc/shadow
[alice@fanhua ~]$ ll /etc/shadow
---------- 1 root root 1487 6月 4 13:43 /etc/shadow
[alice@fanhua ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月 17 2012 /usr/bin/passwd
[alice@fanhua ~]$ passwd
更改使用者 alice 的密碼 。
為 alice 更改 stress 密碼。
(當前)unix 密碼:
[root@fanhua ~]# ps aux |grep passwd root 3674 0.0 0.0 165764 1884 pts/1 s+ 14:34 0:00 passwd
1.4.目前兩種給普通使用者提權手段:
sudo: 了解,有針對性,例如針對某個使用者以能夠以root的身份執行某些命令。
vim /etc/sudoers
92 行
suid: 基本針對所有使用者,任何使用者在執行有suid許可權的程式時(例如/usr/bin/rm),都是以root身份在執行。
小知識:注意以下目錄的正確許可權,否則會導致程式不能正常執行
[root@wangcy ~]# ll -d /tmp /var/tmp/
drwxrwxrwt 14 root root 4096 07-26 10:15 /tmp
drwxrwxrwt 2 root root 4096 07-24 19:02 /var/tmp/html>
許可權管理 高階許可權
一.高階許可權管理acl 使用setfacl命令可以對每乙個檔案或者目錄設定更精確的檔案許可權,比如 讓某乙個使用者對某一檔案具有某種許可權.這種獨立於u,g,o的rwx許可權之外的具體許可權設定叫acl,它可以對單一使用者,單一檔案或者目錄進行r,w,x的許可權控制.1.getfacl opt a...
9 變數高階
引用的概念 在python中 注意 如果變數已經被定義,當各乙個變數賦值的時候,本質上是修改了資料的引用 in 1 a 1 in 2 id a out 2 140525001340832 in 3 b a in 4 id b out 4 140525001340832 in 5 a 2 in 6 i...
oracle高階 許可權
在oracle中建立的新使用者是沒有任何許可權的,甚至連登入到資料庫的許可權都沒有,需要dba為其賦予相應的許可權。許可權是指執行特定型別sql命令或是訪問其它方案物件的權利,包括系統許可權和物件許可權兩種。系統許可權是指執行特定型別sql命令的權利 使用者對資料庫的相關許可權 它用於控制使用者可以...