細說linux上的特殊權限位

linux上的文件的權限

linux的哲學思想之一就是一切皆文件。這樣說來,每臺安裝了linux的主機上,就會有大量的文件。而另一方面,linux在安全方面有著極為出色的表現。眾所周知,linux是一個多用戶的系統,因此為一個文件加上合適的權限為顯得非常有必要了。linux上的基本權限我就不一一介紹了,請不熟悉的同學自行百度腦補。我們來說說linux上文件和目錄的特殊權限。

這是linux上一個文件的長格式說明:

-rw-r--r--   1 root root 1187 Mar 19 16:30 /etc/passwd
-rw-------   1 root root 2.9K Mar 20 05:29 .bash_history
drwx------.  2 root root 4.0K Mar 19 16:08 .ssh

我們拿第一個文件/etc/passwd來做說明:

-rw-r--r-- 1 root root 1187 Mar 19 16:30 /etc/passwd

這里我們只說第一部分,第一個“-”說是這是一個普通文件, 后面的”rw——-“又以分為三個部分, 第一部分”rw-“是說這個文件的擁有者對這個文件有讀寫的權限, 第二部分“r–”是說這個文件的所屬組對這個文件只有讀的權限, 第三個“r–”是指系統上除了文件所有者和文件所屬組之外所有人只能夠擁有的可讀的權限了。

在linux上,每一個文件都有一種類型,它們的表示方式為:
    -:表示這是一個普通文件
    d:表示這是一個目錄
    p:表示這是一個管道符文件
    s:表示這是一個套接字文件
    b:表示這是一個塊設備
    l:表示這是一個鏈接文件
    c:表示這是一個字符設備

在linux上,我們可以看到新建一個文件和新建一個目錄后,這個文件和目錄對應的權限是不一樣的,其原因就是因為有umask的存在。 umask是指定用戶新建文件或目錄時默認權限的一個東東。我們可以在bash中輸入umask來查看系統上umask的值。

[root@localhost mageedu]# umask
0022

linux上默認的,新建一個文件時就有如rwxrw-rw-權限,而新建一個目錄則有rwxrwxrwx等權限,可以通過改變umask來改變新建文件和目錄的默認的權限。 linux上除了最基本的所有者,所屬組和其他人的讀,寫和執行權限之外,還有其他的特殊權限. 我們可以輸入lsattrchattr來為文件和目錄設置隱藏權限,其用法如下:

lsattr:顯示文件特殊屬性

用法: lsattr [選項] 文件

常用選項:

-R        遞歸顯示文件夾及其內容的的屬性
-a        顯示文件的所有屬性        
-d        只顯示目錄本身的屬性

chattr:設置文件特殊屬性

用法:chattr [選項] [模式] 文件

常用選項:

+        增加某一特殊權限
-        移除某一特殊權限                    
=        設定某一特殊權限
-R       遞歸改變目錄及其子目錄的屬性

常用模式:

a        文件只能增加,不能修改和刪除(root也不能刪除這個文件,但是可以先把這個屬性去掉,然后刪除)
c        保存文件時,自動壓縮文件,讀取時自動解壓縮
d        設置這個屬性后,打包時這個文件將不會被告打包
i        設置這個屬性后,文件內容將不會被更改
s        刪除文件時,完全刪除(刪除后不可恢復)
u        刪除文件時,數據內容還在磁盤里(刪除后還可以恢復)
A        保存文件時,文件的atime不改變

下面我們再來說下linux上的特殊權限。

針對可執行文件,可以設置suid權限。對一個文件設置suid權限后,任何用戶執行這個可執行文件時,不再以用戶自己的身份當作進程的屬主,而是以文件的屬主當作進程的屬主。拿/etc/shadow這個文件來說吧。我們可以看到這個文件的權限:

[root@localhost mageedu]# ll /etc/shadow
---------- 1 root root 878 Mar 20 11:58 /etc/shadow
可以看到,任何人都沒有修改這個文件的權限,那么有一天當一個普通用戶不想用自己現在使用的權限,想更換一個密碼的時候,那怎么辦呢。答案就在這個/etc/shadow這個文件身上。/etc/shadow這個文件就設置了suid權限,這樣一個普通用戶更改自己的密碼,輸入passwd那一刻,普通用戶臨時調用/etc/shadow這個文件的用戶所有者root的權限,然后修改自己的密碼,修改完之后,就又恢復到普通用戶自己的權限了。
對于設置了suid權限的文件來說:
    1.suid權限僅對二進制程序有效
    2.執行者對于該程序需要有執行權限
    3.本權限僅在執行該權限的過程中有效
    4.執行者將具有該程序擁有者的權限

suid表現為文件屬主執行權限位上顯示為s或S,文件原來有執行權限時為s,文件原來沒有執行權為S 為文件設置suid權限可以使用chmod u+s file命令,取消則用chmod u-s file命令。

說完了針對普通文件的特殊權限,再來說下針對目錄的特殊權限。對于具有sgid權限的目錄,用戶在此目錄下創建文件時,新建文件的屬組不再是用戶所屬的基本組,而是目錄的屬組。

對于一個設置了sgid的普通文件來說,其表現形式為:
    1.sgid對二進制程序有用
    2.程序執行者對于該程序需要有執行權限
    3.執行者在執行過程中將會獲得該程序群組的支持

對于一個設置了sgid的目錄來說,其表現形式為:
    1.用戶對此目錄有可讀寫權限時,該用戶能夠進入此目錄
    2.用戶在此目錄下的有效群組將會變成該目錄的群組
    3.用戶在此目錄下有寫權限時,建立的新文件屬組為此文件夾的屬組

為目錄設置sgid權限,可以使用chmod g+s dir這個命令,取消這個特殊權限則用chmod g-s dir這個命令。 sgid表現在文件屬組執行權限位上的s或S,對于有執行權限的目錄,其表現在權限位上為s,對于沒有執行權限的目錄,其表現在權限位上為S。

除了這兩個特殊的權限之外,linux上還有一個很特殊的權限,那就是sticky了。如下圖所示:

[root@localhost ~]# ll -d /tmp
drwxrwxrwt. 3 root root 4096 Mar 20 21:43 /tmp
其在linux上的表現為t,對于有執行權限的目錄,其表現在權限位上為t,對于沒有執行權限的目錄,其表現在權限位上為T。sticky對于目錄的作用就在于:對于公共可寫的目錄,用戶可創建文件,可以刪除自己創建的文件,但無法刪除別人的文件。
為目錄設置sticky權限可以使用chmod o+t dir這個命令,取消可以用chmod o-t dir這個命令。

注意:以上的權限設置或取消都要有管理員的權限才可以。

祝大家工作學習愉快!

原創文章,作者:renpingsheng,如若轉載,請注明出處:http://www.www58058.com/73118

(1)
renpingshengrenpingsheng
上一篇 2017-04-10
下一篇 2017-04-10

相關推薦

  • Infobright高性能數據倉庫

    1.  概述         Infobright是一款基于獨特的專利知識網格技術的列式數據庫。Infobright簡單易用,快速安裝部署,使用中無需復雜操作,能大幅度減少管理工作;在應對50TB甚至更多數據量進行多并發復雜查詢時,更能夠顯示出令人驚嘆的速度。相比于MySQL,其查詢速度提升了數倍甚…

    Linux干貨 2015-04-05
  • MongoDB

    Edit MongoDB 手冊 MongoDB 手冊 第一章 Introduction MongoDB入門學習目錄(建議) Databases Collections Documents 第二章 部署安裝 1. Import the MongoDB public key 2. Configure the package management system (…

    Linux干貨 2017-04-08
  • N25期–第十六周作業

    1源碼編譯安裝LNMP架構環境; 2、編寫一個腳本完成以下功能: (1)、一鍵搭建LNMP源碼編譯環境; (2)、可通過在腳本后面跟上一些參數來自定義安裝目錄等其他選項。” 1、源碼編譯安裝LNMP架構環境; 安裝編譯工具和庫文件 1 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libp…

    Linux干貨 2017-05-08
  • Linux下的文件管理系統

    一、文件系統的FHS標準     因為Linux的屬于開源系統,開發人員多,為了統一開發標準,Linux有一個文件系統標準,也就是FHS(Filesystem HierarchyStandard)標準。有了這個標準,那些獨立的軟件開發商、系統開發人員以及系統的使用者就能方便的在系統上操作。 二、文件系統  &…

    Linux干貨 2016-08-02
  • linux文件基本權限、默認權限、隱藏權限和ACL權限

    基本權限    文件屬性rwx     每個文件當用ls -l查看時,都會顯示文件的詳細屬性信息,其中在排在首位的共有10位字符信息     例如 -rw-r–rw-. 1 root root …….. 共有10位,第一位代表的是文件的類型,后邊9位表示的是文件的…

    Linux干貨 2016-08-04
  • Javascript 裝載和執行

    一兩個月前在淘寶內網里看到一個優化Javascript代碼的競賽,發現有不少的人對Javascript的執行和裝載的基礎并不懂,所以,從那天起我就想寫一篇文章,但一直耽擱了。自上篇《瀏覽器渲染原理簡介》,正好也可以承前啟后。 首先,我想說一下Javascript的裝載和執行。通常來說,瀏覽器對于Javascript的運行有兩大特性:1)載入后馬上執行,2)執…

    Linux干貨 2016-07-10

評論列表(1條)

  • renjin
    renjin 2017-04-12 13:29

    主要寫了linux下特殊權限位,內容寫的很詳細,排版也很好,繼續努力!

欧美性久久久久