Linux中文件權限、用戶和用戶組管理

一、文件權限node

2.png


二、文件和目錄rwx權限說明
linux

  • 文件rwx權限:shell

r  :  可讀,具備讀取文件內容的權限(),若是沒有r,vi/vim編輯器提示沒法編輯(可強制編輯),echo能夠追加或重定向。vim

w :  可寫,具備修改文件內容的權限安全

x  :  可執行,具備執行文件的權限。bash

       需知足:文件自己具備可執行權限;普通用戶還需具備r權限;root用戶只要x權限就可執行。linux中可執行文件:*.sh     *.py     *.perl等等。編輯器

  • 目錄rwx權限:ide

r  :  可讀,查看目錄下面文件及子目錄的權限,即 ls dir
性能

若是沒有x,不能進入到目錄裏,即沒法cd dir ;若是沒有x,ls能夠看到全部文件名,但會提示無權訪問目錄下的文件。spa

w :  可寫,具備修改、增長、刪除目錄內文件名的權限(須要x權限配合)

x  :  可執行,具備進入目錄的權限。例如cd dir;可是沒有r沒法列表文件或目錄,沒有w沒法修改、增長、刪除


三、刪除文件(或者修改文件名)受父目錄權限控制,和文件自己權限無關,刪除文件(或者修改文件名)是在操做文件的上級目錄的block中與文件名和inode相關聯的數據,所以和上級目錄權限有關。


四、讀取/data/test的過程


五、經常使用命令


改變文件或目錄用戶權限:    chmod   [數字權限或字符權限]     [文件名或目錄名]   。

加  -R (遞歸) 表示把目錄中的文件或子目錄權限改變。

數字權限:r :4   w:2    x:1    -:0

字符權限 :  u:所屬主   g:所屬組      o:其餘人    a:至關於ugo       +:添加權限    -:取消權限     =:取消其餘權限只添加給定權限


改變文件或目錄所屬主:     chown   [選項]  [屬主]  [文件名或目錄名]

選項:    -R     表示把指定目錄中的文件或子目錄的所屬主改變。


改變文件或目錄所屬組:chown :[屬組]  [文件名或目錄名]   

改變文件或目錄的所屬主和所屬組:chown 用戶.用戶組  [文件名或目錄名]   

改變文件或目錄所屬組:      chgrp    [選項]   [屬組]  [文件名或目錄名]

選項:   -R     表示把指定目錄中的文件或子目錄的所屬組改變。



六、默認權限分配命令:umask

每一個linux系統終端都擁有一個umask,能夠用來肯定新建立文件或目錄的默認權限。因爲在系統中建立一個文件默認權限666,建立一個目錄默認權限777,權限對外開放比較大,因此設置了umask權限掩碼以後,默認的文件目錄權限減去umask值纔是實際的文件目錄權限。

umask 一共4位數字,第一位用於定義特殊權限,後三位表示權限掩碼。


對於 超級用戶,umask默認值是0022,超級用戶(用戶root及用戶組root)建立目錄默認權限 :777-022=755,建立文件默認權限:666-022= 644,是相對安全的權限。

對於普通用戶, umask默認值是0002,普通用戶建立目錄默認權限:777-002=775,建立文件默認權限:666-002=664.


umask設定值若是有奇數位,777 ( 666 )-umask,對應的奇數位再加1,纔是建立目錄或文件的默認權限

umask設定值若是全爲偶數,777(666)-umask,就是建立目錄或文件的的默認權限。


查看umask值  :  umask

改變umask值  :   umask   -S   [設定值]    (臨時設置,重啓無效)

若是須要永久生效,則修改/etc/profile或者/etc/bashrc文件,在文件末尾加上 umask     [設定值]   。/etc/profile  和 /etc/bashrc  均可以用於用戶登陸時自動執行某些操做,區別是/etc/profile只是在用戶第一次登陸時被執行,而/etc/bashrc在用戶每次登陸加載bash shell 時都會被執行。所以,修改/etc/profile只能對新建立的用戶生效,/etc/bashrc 對全部登陸用戶都生效。


七、特殊權限


  • Linux文件的特殊權限是用於彌補通常權限不能實現的功能,是針對於文件設置的一種特殊的功能。

  • Linux文件的特殊權限:

SUID:讓執行者臨時擁有屬主的權限(僅對擁有執行權限x的二進制程序有效)。s(有x時)      ,  S( 無x時 )。

SGID:讓執行者臨時擁有屬組的權限(對擁有執行權限x的二進制程序設置)。 s(有x時),S(無x時)。

主要用在目錄中,當某個目錄設置了sgid,在該目錄中新建立的文件具備該目錄的所屬組權限,使得在多個用戶之間共享目錄變得簡單。

SBIT(Sticky Bit):只可管理本身的數據而不能刪除他人文件(僅對目錄有效)。        t( 有x時 )    ,T(無x時)。

  • Linux文件的特殊權限的設置:

SUID:4      SGID:2      SBIT:1

設置SUID:  chmod   4755     [文件名或目錄名]   或者     chmod   u+s   [文件名或目錄名]  

設置SGID:  chmod   2755     [文件名或目錄名]   或者     chmod   g+s   [文件名或目錄名]

設置SBIT(粘滯位):   chmod   1755     [目錄名]                


八、用戶和用戶組管理

  • 用戶管理:


useradd  :建立用戶,常會涉及到更改/etc/passwd   /etc/shadow       /etc/group       /etc/gshadow 文件。

userdel :刪除用戶,常會涉及到更改/etc/passwd   /etc/shadow       /etc/group       /etc/gshadow 文件,企業環境中慎用userdel  -r!!!

usermod :修改用戶信息,常會涉及到更改/etc/passwd   /etc/shadow       /etc/group       /etc/gshadow 文件。

passwd  :設置或修改密碼,更改/etc/shadow文件。

chage:修改密碼有效期,更改/etc/shadow文件。


id   :查看用戶的UID,GID及所屬的用戶組。

w:查看登陸用戶並顯示在作什麼

who:查看登陸用戶

last  或 lastb:查看登陸用戶歷史

lastlog:查看全部用戶最近登陸狀況


su:切換用戶

sudo:後接命令,表示不須要root密碼就能夠執行只有root才能夠執行的權限。這個權限能夠經過visudo命令(推薦用法)或者直接編輯/etc/sudoers(配置完後要用 visudo  -c  檢查語法)來實現。

visudo:編輯sudo配置文件,配置完後執行 visudo  -c  檢查。

在/etc/sudoers中:別名和具體受權配置的關係,通常應用於多個系統用戶,須要分類、分層次管理,需注意如下:

(1)命令別名下的成員必須是文件或目錄的絕對路徑;

(2)別名名稱包含大寫字母、數字、下劃線;

(3)一個別名下的成員之間要用半角狀態下「,」分隔開,成員必須是有效存在的;

(4)別名成員要與別名一一對應;

(5)別名規則是以每行爲單位,如要換行要用 \來續行;

(6)指定切換的用戶要用()括起來,如無()默認root用戶,(ALL)表明切換到全部用戶;

(7)無需密碼直接運行的命令,應加上 NOPASSWD:參數;

(8)禁止某類命令或程序運行,要在前面加!,放在容許執行的命令的後面;

(9)用戶組前面要加%;


  • 用戶組管理:


groupadd:建立用戶組,常會涉及到更改/etc/group       /etc/gshadow 文件。

groupdel :刪除用戶組,常會涉及到更改/etc/group       /etc/gshadow 文件。

groupmod:更改用戶組信息,常會涉及到更改/etc/group       /etc/gshadow 文件。


  • 用戶和組的關係:一對一,一對多,多對一,多對多。

  • 用戶分類:

超級用戶:UID=0,root

虛擬用戶:UID=1-499,知足文件或者服務啓動的須要,通常不能登陸系統。

普通用戶:UID=>=500,由超級用戶或者具備超級用戶權限的用戶建立。


  • 與用戶相關的文件:/etc/passwd(須要熟悉內容)     /etc/shadow       /etc/group       /etc/gshadow

/etc/skel:用來存放新用戶配置文件的目錄,當添加用戶時,就會把新用戶的配置文件複製到新添加用戶家目錄中,默認狀況下該目錄下全部文件爲隱藏文件,經過修改,添加,刪除/etc/skel下的文件:爲新用戶統一提供初始化用戶環境;添加用戶登陸信息通知。

如:終端提示符顯示的是-bash-4.1

緣由是:用戶家目錄下配置文件丟失。root在/root下面的幾個配置文件丟失,丟失文件以下:

   一、.bash_profile  

   二、.bashrc 這兩個文件都是用戶必備的文件。

修復要把這兩個文件從新拷貝到/root下:

   cp /etc/skel/.bashrc /root/

   cp /etc/skel/.bash_profile  /root/

  註銷root,從新登陸就能夠恢復正常。  

/etc/login.defs:用來定義建立用戶時須要的一些用戶配置信息,如:建立用戶的家目錄,UID和GID的範圍,用戶密碼的有效期。(通常不須要修改)
/etc/default/useradd:添加用戶時默認的配置信息。


企業環境:

(1)密碼需8位以上字母數字特殊字符複雜組合;大企業用戶密碼採用LDAP(至關於活動目錄,openldap )對linux用戶統一認證,批量管理;動態密碼,動態口令。

(2)企業環境下刪除用戶,若是不肯定有無重要數據不要刪除用戶家目錄(慎用userdel -r),通常經過 vi  /etc/passwd  註釋掉要刪除的用戶,觀察一個月,無異常再刪除;或者把登陸shell改爲/sbin/nologin;或openldap管理的,在ldap庫裏刪掉用戶便可。

九、chattr、lsattr


  • chattr:   命令用於改變文件或目錄屬性,經過chattr命令修改屬性可以提升系統的安全性,可是它並不適合全部的目錄。chattr命令不能保護/、/dev、/tmp、/var目錄。

       這兩個命令是用來查看和改變文件、目錄屬性的,與chmod這個命令相比,chmod只是改變文件的讀寫、執行權限,更底層的屬性控制是由chattr來改變的。

        如:    chattr +i    /etc/resolv.conf      #用chattr命令防止系統中某個關鍵文件被修改:

參數:

  -R                    :遞歸處理,將指定目錄下的全部文件及子目錄一併處理。

  -v<版本編號> :設置文件或目錄版本。

  -V                   :顯示指令執行過程。

  +<屬性>          : 開啓文件或目錄的該項屬性。

  -<屬性>           :關閉文件或目錄的該項屬性。

  =<屬性>          : 指定文件或目錄的該項屬性。

屬性:

  1. a:讓文件或目錄只能追加內容。

  2. b:不更新文件或目錄的最後存取時間。

  3. c:將文件或目錄壓縮後存放。

  4. d:將文件或目錄排除在傾倒操做以外。

  5. i:不得任意更動文件或目錄。

  6. s:保密性刪除文件或目錄。

  7. S:即時更新文件或目錄。

  8. u:預防意外刪除。


  • lsattr   :  顯示chattr命令設置的文件屬性。

lsattr [-adlRvV][文件或目錄...]

參數:


  • -a  顯示全部文件和目錄,包括以"."爲名稱開頭字符的額外內建,現行目錄"."與上層目錄".."。

  • -d  顯示,目錄名稱,而非其內容。

  • -l  此參數目前沒有任何做用。

  • -R  遞歸處理,將指定目錄下的全部文件及子目錄一併處理。

  • -v  顯示文件或目錄版本。

  • -V  顯示版本信息。

相關文章
相關標籤/搜索