Linux中的用戶、組和權限的管理

一、Linux的安全模型

    在Linux中用戶登陸時必須提供用戶名和密碼(用戶是由root用戶創建的,最初的密碼也是root用戶設定的)。系統使用用戶和群組來控制使用者訪問文件和其他資源的權限。每一個文件都一定屬于一個用戶(一般該用戶就是文件的創造者)并與一個群組相關。每一個進程(處理程序)都會與一個用戶和群組關聯,可以通過在所有的文件和資源上設定權限來允許該文件的所有者或者某個群組的成員訪問他們。主要由系統管理員維護系統的安全。

二、基本規則

    在Linux中,一般情況下每一個用戶都有唯一的用戶名和UID,root(系統管理員)的UId為0,CentOS7以前的版本中,系統用戶的UID為1-499,這些用戶是維持運行所需服務的對應進程,Linux中任何進程都有對應的用戶,從CentOS7開始,系統用戶的UID范圍增加到1-999,其他UID為一般用戶使用。

    用戶組的GID分配方式與UID相同。創建用戶時默認創建一個與用戶名相同的主組,每個用戶必須有且僅有一個主組,但是可以添加到多個輔助組中。

    Linux用戶和組的主要配置文件:

        /etc/passwd:用戶屬性信息,中間用冒號隔開,格式:

            (用戶名:密碼:UID:GID:描述:家目錄:shell類型)

        /etc/group:用戶組屬性信息,格式:

            (組名:密碼:GID:用戶列表)

        /etc/shadow:密碼文件,格式:

            用戶名

            加密后的密碼,不設置密碼的賬戶默認為!!,代表不能登錄

            最后一次修改密碼的時間

            密碼更改的最短期限

            密碼更改的最長期限

            從系統開始警告用戶到用戶密碼正式失效的天數

            密碼沒有登陸但是賬號仍然有效的最大天數

            失效時間,當設置了這個選項,密碼失效后不能再登陸

        /etc/gshadow:組密碼及其相關屬性

三、用戶、組管理命令

    

用戶創建:用戶賬號的管理只要涉及到用戶賬號的添加、刪除和修改。添加用戶賬號就是在系統中創建一個新賬號,然后為新賬號分配UID,指定用戶組、家目錄和登陸shell等資源。

    useradd [options] LOGIN (默認值設定:/etc/default/useradd)

    -u UID 創建用戶時,指定用戶的UID

    -o 一般配合-u使用,指定UID時,不考慮UID是否唯一,

    -g GID(或組名) 指定用戶的所屬基本組

    -c "COMMENTS" 為用戶添加注釋信息

    -d HOME_DIR 為用戶創建制定的家目錄

    -s SHELL 指定用戶默認shell程序類型(所有可用shell在文件/etc/shells中)

    -G GROUP1[GROUP2…] 指定用戶的附加組,組必須提前存在

    -N 不創建私用組作為主組,讓users組作為用戶的基本組

    -r 創建系統用戶

創建用戶家目錄時,需要從/etc/skel/目錄下復制用戶文件。

批量創建用戶:

    newusers 后接一個passwd格式的文件,可以批量創建用戶,

    chpasswd 批量修改用戶口令

    (用戶創建后家目錄中沒有基本文件,需要另行拷貝)

用戶屬性修改:修改用戶賬號就是根據實際情況更改用戶的有關屬性,如UID、家目錄、用戶組等基本屬性。

    usermod [options] login

    -u UID 為用戶設置新的UID

    -g GID(或組名) 為用戶指定新的基本組

    -G GROUP1[,GROUP2…] 為用戶指定新的指定新的附加組,原來的附加組會被覆蓋,增加-a選項可以保留原來的附加組

    -s SHELL 為用戶指定新的默認shell

    -c "COMMAENT" 為用戶設置新的注釋信息

    -d HOMME_DIR 新的家目錄不會自動創建,原家目錄中的文件不會同時移動到新的家目錄中;如果想要創建新的家目錄并移動原家目錄中的數據,使用-m選項

    -l LOGIN_NAME 更換新的用戶名

    -L 鎖定用戶使其不能登錄,在/etc/shadow密碼欄中增加!

    -U 解鎖用戶,去掉密碼欄中的!

    -e YYYY-MM-DD 為用戶指定賬號過期時間

    -f INACTIVE 設置非活動期限

刪除用戶;userdel [OPTIONS]… login

    -r 刪除用戶的家目錄等文件

查看用戶相關的ID信息

    id [options]… [USER] 默認查看當前用戶的id信息

    -u 查看UID

    -g 查看主組GID

    -G 查看用戶輔助組的GID

切換用戶su [OPTIONS…] [-] [USERNAME[args…]]

    su USERNAME:非登陸式切換,即不會讀取目標用戶的配置文件,也不會改變當前工作目錄

    su -[l] USERNAME:登陸式切換,讀取用戶的配置文件并切換至用戶家目錄

    root用戶切換其他用戶式不需要密碼,非root用戶切換時需要密碼

    su [-] USERNAME -c 'COMMAND' 更換身份執行命令

設置密碼

passwd [OPTIONS] USERNAME 可以修改指定用戶的密碼,僅root用戶有此權限

    -l 鎖定指定用戶

    -u 解鎖指定用戶

    -e 強制用戶下次登陸時修改密碼

    -n MINDAYS 設置用戶密碼最短使用期限

    -x MAXDAYS 設置用戶最大使用期限

    -w WARNDAYS 設置提前開始警告的天數

    -iINTCTIVEDAYS 非活動期限

    –stain 從標準輸入接受用戶的密碼

如同用戶可以使用passwd修改自己的密碼

用戶組管理 

    添加組

    groupadd [OPTION]…GROUP_NAME

    -g GID 指明GID號

    -r 創建系統組

    

    刪除組

    groupdel GROUP

    更改組密碼

    gpasswd [OPTION] GROUP_NAME

    -a USER 將USER添加至組中

    -d USER 從指定組中一尺用戶USER

    -A USER1[,USER2…] 設置有管理權限的用戶列表

    newgrp可以臨時切換基本組,如果用戶不屬于此組,需要組密碼

    更改和查看組成員

    groupmems [OPTIONS] [ACTION]

    options:

    -g –group GROUP_NAME 更改為指定組(只有root)

    actions:

    -a –add USER_NAME 指定用戶加入組

    -d –delete USER_NAME 從組中刪除指定用戶

    -p –purge 清空組中所有成員

    -l –list 顯示組成員列表

    

    groups [OPTIOBS] [USER_NAME] 查看用戶所屬組列表

四、權限管理

文件屬性:在Linux中ls -l可以查看文件或目錄的屬性。第一個字段中的第一個字符表示文件的種類,2-4個字符表示屬主對文件或目錄的操作權限,5-7表示屬組用戶的操作權限,最后三個字符表示其他用戶的權限。后面的字段依次表示文件或目錄的引用計數、屬主、屬組、大小、時間戳、文件名稱。

修改文件的屬主和屬組

    修改文件的屬主:

    chown chown [OPTION]… [OWNER][:[GROUP]] FILE… 

    用法: 

    OWNER 

    OWNER:GROUP 

    :GROUP 命令中的冒號可用.替換; 

    -R: 遞歸修改 

    chown [OPTION]… –reference=RFILE FILE… 參考其他文件

修改文件屬組:chgrp

    chgrp [OPTION]… GROUP_FILE…

    chgrp [OPTION]… reference=RFILE FILE 參考其他目錄修改

    -R 遞歸修改

r.w.x對文件的作用

    r:可以使用文件查看類工具獲取其中內容

    w:可以修改內容

    x可以把此文件作為一個進程啟動

r.w.x對目錄的作用

    r:可以使用ls查看目錄中的文件列表

    w:可以在目錄中創建或刪除文件

    x:可以用ls -l查看目錄中的文件列表,也可以用cd進入目錄

    

用數字表示r.w.x

    —    000    0 

    –x    001    1 

    -w-    010    2 

    -wx    011    3 

    r–    100    4 

    r-x    101    5 

    rw-    110    6 

    rwx    111    7


umask


    創建新文件是根據用戶的umask值來設置文件默認權限。當用戶創建目錄是,使用用戶的umask值屏蔽最大權限的777,得出的結果就是目錄的默認權限;當用戶創建文件時,用umask值屏蔽權限值666,得出文件的默認權限。root用戶默認的umask為022,所以當root用戶創建的目錄默認權限為755,文件的默認權限是644;而一般用戶的默認umask是002,所以當一般用戶創建目錄是默認權限為775,文件默認權限是664。全局umask默認設置在目錄:/etc/bashrc中,用戶默認設置:~/.bashrc。

    umask  查看當前用戶的umask

    umask #    臨時設置用戶umask值

    umask -S    使用模式的方式顯示umask

    umask -p    輸出umask,使之可被調用


Linux文件系統上的特殊權限

    

    SUID:可執行文件搭配SUID權限,能夠獲得特權,任意存取該文件的所有者能夠使用的全部系統資源。

    權限設定:chmod u+s FILE

                      chmod u-s FILE


    SGID:設置在文件上面,效果去SUID相同,只不過文件的所有者換成用戶組,該文件就可以任意存取整個用戶組是能使用的系統權限。

    權限設定:chmod g+s FILE(或DIR)

                      chmod g-s FILE(或DIR)

    

     Sticky:當一個目錄設置了Sticky為權限時,只有文件的所有者和root用戶才能刪除該目錄下的文件。

    權限設定:chmod o+t DIR

         chmod o-t DIR

訪問控制列表:

    ACL(訪問控制列表)可以實現靈活的權限管理,除了文件的所有者,所屬組和其他人,對更多的用戶設置權限。

為多用戶或者組的文件和目錄賦予訪問權限rwx

    mount -o acl /directory

    getfacl file |directory 

    setfacl -m u:wang:rwx file|directory

    setfacl -Rm g:sales:rwX directory 

    setfacl -M file.acl file|directory 

    setfacl -m g:salesgroup:rw file| directory 

    setfacl -m d:u:wang:rx directory 

    setfacl -x u:wang file |directory

    setfacl -X file.acl directory


mask

    mask影響除所有者和other用戶之外的所有人的最大權限,范圍內的任何人的權限不能超過mask。




  

                

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

(0)
zhanghuanyuzhanghuanyu
上一篇 2016-08-07 22:05
下一篇 2016-08-07 22:05

相關推薦

  • LAMP實戰

    說明:本實驗在單主機搭建。下面的步驟只需要你復制粘貼,即可完成實驗。 1、安裝httpd mkdir /tools cd /tools #獲取軟件包 wget -c http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.16.tar.gz wget http://m…

    Linux干貨 2015-10-08
  • 計算1000以內的總質數個數

    #include <stdio.h> int main() { int micro[500]; // 質數保存素組 int number = 0; // 質數個數 micro[number++] = 2; // micro[0]=2 micro[number++] = 3; // micro[1]=3, number=2 unsigned lon…

    Linux干貨 2017-03-22
  • 8.3-ACL權限詳解(命令篇)

    前言         我們都知道Linux有三種身份(owner,group,other)搭配三種權限(r,w,x)以及三種特殊權限(SUID,SGID,SBIT), 但是某些時候這些組合不能滿足復雜的權限需求。 例如      …

    Linux干貨 2016-08-04
  • 馬哥教育網絡班20期+第6周練習博客

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@bogon ~]# cp /etc/rc.d/rc.sysinit  /tmp/rc.sysinit […

    Linux干貨 2016-07-22
  • NFS實現共享wordpress

    實驗環境 192.168.68.134 wordpress站點 nfs-server 192.168.68.144 nfs-client   實驗要求 nfs server共享/var/www/html目錄 nfs clinet掛載nfs-server共享的目錄,部署wordpress   nfs server端 先部署wordpress…

    Linux干貨 2017-10-21
  • 實現基于MYSQL驗證的vsftpd虛擬用戶

    馬哥教育面授21期 運維 vsftpd MySQL 說明:本實驗在兩臺CentOS主機上實現,一臺做為FTP服務器,一臺做數據庫服務器 一、安裝所需要包和包組: 在數據庫服務器上安裝包: yum –y install mariadb-server mariadb-devel systemctl start mariad…

    Linux干貨 2016-12-21

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-07 22:46

    文章整體架構清晰,對命令的常見選項有了很好的總結??梢约由弦恍┳约涸诰毩曔^程中的操作,這樣在以后的復習中會更直觀明了哦。

欧美性久久久久