成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

更深入地了解Linux權限

譯文
系統 Linux
在Linux上查看文件權限時,有時你看到的不僅僅是普通的r、w、x和-這些名稱。如何更清楚地了解不常見的字符試圖告訴你什么以及這些權限如何運作?

[[266736]]

【51CTO.com快譯】在Linux上查看文件權限時,有時你看到的不僅僅是普通的r、w、x和-這些名稱。你可能看到的不是rwx,而是s或t,如下例所示:

  1. drwxrwsrwt 

進一步明確這點的一種方法是使用stat命令來查看權限。stat的輸出結果中第四行顯示了八進制和字符串格式的文件權限: 

  1. $ stat /var/mail  
  2. File: /var/mail  
  3. Size: 4096 Blocks: 8 IO Block: 4096 directory  
  4. Device: 801h/2049d Inode: 1048833 Links: 2  
  5. Access: (3777/drwxrwsrwt) Uid: ( 0/ root) Gid: ( 8/ mail)  
  6. Access: 2019-05-21 19:23:15.769746004 -0400  
  7. Modify: 2019-05-21 19:03:48.226656344 -0400  
  8. Change: 2019-05-21 19:03:48.226656344 -0400  
  9. Birth: -  

該輸出提醒我們,分配給文件權限的位數超過9個,實際上有12個。這多出來的3位為分配平常的讀取、寫入和執行之外的權限提供了一種方法;比如說,3777(二進制011111111111)表示在使用兩個額外的設置。

這個特定值中的***個1(第2位)表示SGID(設置組ID),并分配運行文件的臨時權限,或使用擁有關聯組權限的目錄。 

011111111111  

 

SGID為使用該文件充當該組成員的人員賦予了臨時權限。

第二個1(第3位)是“粘性”位。它確保只有文件的所有者才能刪除或重命名文件或目錄。 

011111111111  

 

如果權限是7777而不是3777,我們已知道SUID(設置UID)字段也已被設置。 

111111111111  

 

SUID為使用該文件充當文件所有者的用戶賦予了臨時權限。

至于我們在上面看到的/var/mail目錄,所有用戶都需要一定的訪問權限,因此需要一些特殊值來提供它。

但現在讓我們更進一步。

特殊權限位的一個常見用途是用于passwd命令之類的命令。如果你看一下/usr/bin/passwd文件,會注意到SUID位已設置,允許你更改密碼(因而更新/etc/shadow文件的內容),即使你以普通(非特權)用戶的身份來運行,對該文件沒有讀取或寫入權限。當然,passwd命令很聰明,不允許你更改其他人的密碼,除非你實際上以root的身份運行或使用sudo。 

  1. $ ls -l /usr/bin/passwd  
  2. -rwsr-xr-x 1 root root 63736 Mar 22 14:32 /usr/bin/passwd  
  3. $ ls -l /etc/shadow  
  4. -rw-r----- 1 root shadow 2195 Apr 22 10:46 /etc/shadow  

現在,不妨看一下可以用這些特殊權限做什么。

如何分配特殊文件權限 ?

與Linux命令行上的許多內容一樣,你在如何發出請求方面有一些選擇。chmod命令讓你可以以數字方式或使用字符表達式來更改權限。

想以數字方式更改文件權限,可以使用這樣的命令來設置setuid位和setgid位:

  1. $ chmod 6775 tryme 

或者可以使用這樣的命令:

  1. $ chmod ug+s tryme <== for SUID and SGID permissions 

如果添加特殊權限的文件是腳本,你可能會驚訝于它未符合你的期望。這是個很簡單的例子: 

  1. $ cat tryme  
  2. #!/bin/bash  
  3. echo I am $USER  

即使SUID位和SGID位已設置,這個文件是root擁有的文件,運行這樣的腳本也不會帶來你可能預計的“我是root”響應。為什么?因為Linux忽略腳本上的set-user-ID位和set-group-ID位。 

  1. $ ls -l tryme  
  2. -rwsrwsrwt 1 root root 29 May 26 12:22 tryme  
  3. $ ./tryme  
  4. I am jdoe  

另一方面,如果你使用編譯的程序嘗試類似的操作,就像這個簡單的C程序一樣,會看到不同的效果。在該示例程序中,我們提示用戶輸入文件并為其創建文件,并將寫入權限賦予文件。 

  1. #include  
  2. int main()  
  3.  
  4. FILE *fp; /* file pointer*/  
  5. char fName[20];  
  6. printf("Enter the name of file to be created: ");  
  7. scanf("%s",fName);  
  8. /* create the file with write permission */  
  9. fp=fopen(fName,"w");  
  10. /* check if file was created */  
  11. if(fp==NULL 
  12.  
  13. printf("File not created");  
  14. exit(0);  
  15.  
  16. printf("File created successfully\n");  
  17. return 0;  
  18.  

一旦你編譯程序,運行命令使root成為所有者并設置所需的權限后,你會看到它以預期的root權限運行,留下新創建的root擁有的文件。當然,你必須擁有sudo權限才能運行一些所需的命令。 

  1. $ cc -o mkfile mkfile.c <== compile the program  
  2. $ sudo chown root:root mkfile <== change owner and group to “root”  
  3. $ sudo chmod ug+s mkfile <== add SUID and SGID permissions  
  4. $ ./mkfile <== run the program  
  5. Enter name of file to be create: empty  
  6. File created successfully  
  7. $ ls -l empty  
  8. -rw-rw-r-- 1 root root 0 May 26 13:15 empty  

請注意,該文件由root擁有――如果程序未以root權限運行,不會發生這種情況。

權限字符串(比如rwsrwsrwt)中不常見設置的位置可以幫助提醒我們每個位的含義。至少***個“s”(SUID)位于所有者權限區域,第二個(SGID)位于組權限區域。為什么粘性位是“t”而不是“s”不在本文的探討范圍。無論如何,額外的權限設置為Linux及其他Unix系統提供了許多附加功能。

原文標題:A deeper dive into Linux permissions,作者:Sandra Henry-Stocker

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2021-09-22 17:51:55

人工智能機器人聊天機器人

2010-02-03 17:51:42

Ubuntu Linu

2010-10-12 15:30:04

MySQL權限管理

2018-05-28 09:20:10

Python迭代for循環

2010-10-14 11:25:39

2010-10-28 10:19:29

oracle權限管理

2017-10-31 11:30:22

數據庫MySQL權限管理

2009-12-23 17:50:07

Linux網絡命令

2022-12-21 10:09:57

新華三

2023-06-25 12:10:34

Linux文件權限

2017-01-19 19:24:29

Linux重定向

2009-12-25 15:49:43

Linux rescu

2019-03-29 17:30:32

人工智能機器學習深度學習

2010-01-06 17:18:54

Linux常用軟件

2019-05-07 10:03:47

Linux系統發行版

2010-01-06 16:37:02

Linux操作系統

2018-08-03 09:23:22

2023-05-17 17:32:25

2021-03-09 12:27:05

微服務 微服務架構應用程序

2011-01-21 10:10:22

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品入口麻豆www | 黄色在线免费观看 | 成人在线视频免费观看 | 91精品国产91久久久久久最新 | 国产精品区二区三区日本 | japan21xxxxhd美女 日本欧美国产在线 | 人人叉| 亚洲男人的天堂网站 | 日韩在线免费视频 | 亚洲一区网站 | 在线日韩欧美 | 亚洲电影中文字幕 | 欧美日韩视频在线 | 中文字幕在线观 | 少妇午夜一级艳片欧美精品 | 最新国产在线 | 91精品国产91久久久久久三级 | 激情亚洲 | 国产高清在线精品 | 色吊丝2288sds中文字幕 | 国产精品亚洲视频 | 人人做人人澡人人爽欧美 | 亚洲 中文 欧美 日韩 在线观看 | 国产午夜精品一区二区三区嫩草 | 三级黄视频在线观看 | 日韩av中文| 免费观看一级特黄欧美大片 | 久久综合亚洲 | 国产一区二区三区亚洲 | 日韩欧美专区 | 91操操操| 国产欧美日韩一区二区三区 | aaa综合国产 | 成人精品鲁一区一区二区 | 精品亚洲一区二区三区 | 午夜精品福利视频 | 亚洲国产成人精品女人久久久野战 | 欧美日韩精品久久久免费观看 | 三级视频在线观看电影 | 精品一区二区三区不卡 | 中文字幕丁香5月 |