Linux權限位(含特殊權限位s s t) 及chown\chmod命令使用


1.普通權限位

  ls –l查看文件的屬性

[root@oldboy ~]# ls -l
-rw-------. 1 root root 1073 Mar 4 22:08 anaconda-ks.cfg
-rwxrwxrwx 1 root root 256 Mar 24 21:27 get_ip.txt
-rw-r--r-- 1 root root 5 Mar 5 03:25 ifconfig
-rw-r--r--. 1 root root 22179 Mar 4 22:08 install.log
-rw-r--r--. 1 root root 5890 Mar 4 22:07 install.log.syslog

  

 

  •  chmod 可以改變文件權限

a.直接加數字

chmod 777 filename  給文件777權限 即-rwxrwxrwx

b.對應屬主(u)\屬組(g)或者其它用戶(o)加減權限

chmod g+x filename 給屬組用戶添加x權限

2.特殊權限:特殊權限有三種:--s--s--t;

如果原來有x權限,則用小寫s或者t,原來沒有x權限則用大寫S或者T

suid    s(有x) S  4  用戶對應的權限位(用戶對應的3位上)

sgid    s(有x) S  2  用戶組對應的權限位(用戶組對應的3位上)

sticky  t(有x) T  1  其他用戶對應的權限位 

  suid(set uid設置用戶ID)限定:只能在設置二進制可執行程序上面對目錄設置無效。功能:程序運行行的權限從執行者變成程序的所有者。(因為二進制命令屬於ROOT用戶和ROOT組)。

a.所有(onwer)人s權限:稱為Set UID,簡稱為SUID的特殊權限;即當執行該文件時將具有該文件所有者的權限。

當在文件上設置 suid 時,將以文件的屬主的身份而不是運行該文件的用戶身份執行操作。其中好的操作范本是 passwd 命令,它需要設置 suid 位,以便更改密碼的操作具有 root 權限。

  • 設置 suid 位的示例:chmod u+s /bin/foo_file_name

b.所在(group)組s權限:稱為Set GID,簡稱為SGID的特殊權限;限定:既可以給二進制可執行程序,也可能以對目錄設置。

功能:在設置了SGID權限目錄下建議立文件時,新建的文件的所屬組會繼承上級目錄的所屬組。

一個使用 sgid 的例子是,如果多個用戶正在同一個目錄中工作,並且目錄中創建的每個文件都需要具有相同的組權限。下面的示例創建一個名為meilian_net 的目錄,設置 sgid 位,並將組所有權更改為 webdev。

1)mkdir meilian_net

2)chmod g+s meilian_net

3)chown :webdev meilian_net

現在,在該目錄中創建的任何文件,都將具有 webdev 的組所有權,而不是創建該文件的用戶的組。

1)cd meilian_net

2)touch file-sgid

3)ls -lah file-sgid

4)-rw-r--r--. 1 root webdev 0 Jun 12 06:04 file-sgid

  • 設置Sgid方法:chmod 2755 file 或者 chmod g+s file

chown使用

-R:對目錄及該目錄下的所有文件和子目錄都進行相同的操作,即遞歸更改目錄的所有者;

1)chown root:root aaaa.txt

2)chown root: aaaa.txt

在用戶名后跟冒號【: 】運行該命令將同時設置用戶和組所有權。要僅將文件 aaaa.txt 的用戶所有權設置為 root 用戶,操作命令:

chown root aaaa.txt

要僅更改文件 aaaa.txt 的組所有權,則需要在組之前加冒號,操作命令:

chown :root aaaa.txt

[test@oldboy ~]$ touch aaaa.txt

[test@oldboy ~]$ ls -l

-rw-rw-r-- 1 test test 0 Mar 25 19:52 aaaa.txt

[test@oldboy ~]$ chown root aaaa.txt #沒有ROOT權限不能更改所屬主或者組

chown: changing ownership of `aaaa.txt': Operation not permitted

[test@oldboy ~]$ su -

[root@oldboy ~]# ls

[root@oldboy test]# ls -l

-rw-rw-r-- 1 test test 0 Mar 25 19:52 aaaa.txt   #aaaa.txt本身屬實test用戶

[root@oldboy test]# chown root aaaa.txt  #使用chown命令改變aaaa.txt所屬實用戶
[root@oldboy test]# ls -l

-rw-rw-r-- 1 root test 0 Mar 25 19:52 aaaa.txt  #所屬組test

[root@oldboy test]# chown :root aaaa.txt     #改變所屬組
[root@oldboy test]# ls -l
-rw-rw-r-- 1 root root 0 Mar 25 19:52 aaaa.txt

最后的t權限:稱為Sticky Bit,簡稱為SBIT權限,只針對目錄有效。它表示只能讓所屬主以及root可以刪除(重命名/移動)該目錄下的文件,即便是該目錄擁有w權限,但是除了root用戶,其他用戶只能對自己的文件進行刪除、移動操作。

[root@oldboyedu ~]# ll -d /tmp/ drwxrwxrwt. 8 root root 105 Jul 2 10:15 /tmp/

如果該其他用戶權限位上有執行權限,則會在其他用戶權限位的執行權限上寫個t(小寫字母); 如果該其它用戶權限位上沒有執行權限,則會在其他用戶權限位的執行權限上寫個T(大寫字母)。

授權方式:
[root@db04 ~]# chmod 1755 /opt
[root@db04 ~]# chmod o+t /opt

sticky(SI TI KI)粘滯,目前只對目錄有效,作用如下:
普通用戶對該目錄擁有w和x權限,即普通用戶可以在此目錄中擁有寫入權限,如果沒有粘滯位,那么普通用戶擁有w權限,就可以刪除此目錄下的所有文件,包括其他用戶建立的文件。但是一旦被賦予了粘滯位,除了root可以刪除所有文件,普通用戶就算有w權限也只能刪除自己建立的文件,而不能刪除其他用戶建立的文件。

 tmp相當於共內容,所有用戶可以對這個目錄操作,但是不能破壞(t的作用)

/tmp是經典的粘滯位目錄,特點:誰都有寫的權限,因此有安全隱患

[root@localhost omd]# ll -ld /tmp/    -->t表示粘滯位t表示有個x,沒有就是大T

  • 設置sticky方法:chmod 1777 file 或者 chmod o+t file

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM