用戶與用戶組權限管理詳解

用戶及用戶組權限管理

   Linux是一個多任務多用戶的系統,多用戶可以同時登陸同一臺主機。爲了考慮到每個人的隱私權和工作空間,這時候文件所有者(owner)就是即用戶的角色就變得尤爲重要了,同時爲了用戶與用戶之間方便合作,共享一些公共資源,這時,爲了實現資源的快速分配,我們把多個用戶放在一個公共的空間,分別賦予他們不同的讀寫執行等操作的權限,這些用戶共同組成的一個整體,就是所謂的用戶組(group)。

第一部分 Linux權限管理

用命令ls -l可以列出用戶的權限。

  #ls -l

wKiom1bjzdiiJEDCAAAVHUdfkho671.png

這裏我們以test文件爲例,來詳細說明。

第一類drwxr-xr-x

d:文件類型,常見的類型有d(目錄)、-(一般文件)、c(字符設備)、b(塊設備)、l(鏈接文件)、s(套接字文件)等,其餘的九位數字即爲文件權限。

linux權限採用UGO機制,U(user)表示所屬主,G(group)表示所屬組,O(other)表示除所屬主和所屬組之外的其他用戶。其中r(readable)代表可讀的,用數值4來表示;w(writable)代表可寫的,用數字2來表示;x(excutable)代表可執行的,用數字1來表示。

權限的組合機制--以二進制的方式組合。

        ---     0000

        --x0011

        -w-0102

        -wx0113

        r--1004

        r-x1015

        rw-1106

        rwx 1117

本例中前三位rwx爲所屬主的權限:rwx對應的數值爲7,中三位表示所屬組的權限:r-x對應的數值爲5,後三位表示其他人的權限:r-x對應的數值爲5,則它們組合起來爲755。

在系統創建目錄與文件時會自動給它們添加一些屬性,這就是umsk默認權限屬性。我們可以通過umask來查看。

  #umask

wKioL1bj1QTTtz8jAAANcwsTj7w319.png

對於文件的默認權限是644,對於目錄的默認權限是755。

權限的管理命令--chmod。

chomod:修改命令的權限位。

用法:  chmod [OPTION]... MODE[,MODE]... FILE...

常用的用法

1.賦權表示法:直接操作一類用戶的所有權限位rwx。

wKiom1bj2WehV-7yAAAXfLYwGgs806.png

對於兩類用戶權限相同合併到一起ug=, go=來表示。

2.授權表示法:操作一類用戶一位或多位權限。

wKiom1bj2objuUAMAAAY-JQSNcE385.png

對於兩類用戶權限機制相同:ug+, ug-, ...合併在一起。

3.數值表示法:用二進制數值來表示每一類用戶的多位權限位

wKioL1bj29nTPyy_AAAYYxUYI9s893.png

第二部分 用戶和用戶組

     學習用戶和用戶組管理之前我們先學習他們的配置文件。

保存用戶信息的文件:/etc/passwd。

#tail /etc/passwd

wKiom1bj3YOz8y0CAAAjAIQyi9k994.png

它們由“:”隔開的7個字段組成。

用戶名:加密的用戶密碼:UID:GID:註釋信息:用戶的家目錄:登陸的shell

保存用戶組的信息:/etc/group。

#tail -1 /etc/group

wKioL1bj3_KxTyRGAAATp9IVxNc835.png

它們由“:”隔開的4個字段組成。

用戶組名:加密的組密碼:GID:組內用戶。

#tail -1 /etc/shadow

wKioL1bj4MOxdWAYAAAcQJIg160857.png

它們是由““:”分開的九個字段。

登錄名:密碼:最近一次的修改時間:密碼的最短使用期限:密碼最長使用期限:提前警告的天數:非活動期限:賬號的禁用日期:保留字段

用戶的分類

用戶可以分爲管理用戶和普通用戶。普通用戶可以分爲系統用戶和登陸用戶。用戶用UID來標識,管理用戶的ID=0,普通用戶的ID爲1-60000,其中系統用戶爲1-499(centOS7爲1-999),登陸用戶爲500-60000(centOS7爲1000-60000)。用戶通過/etc/passwd庫的密碼解析來驗證用戶的密碼,並通過後授權登錄。


用戶管理命令

useradd命令:添加用戶

 useradd  [選項]  登錄名

常用選項:

        -c, --comment COMMENT:註釋信息,一般爲Full Name;

        #useradd -c "www.Fedora.com " fefora

       -d, --home  /PATH/TO/HOME_DIR:家目錄路徑;目標路徑不能事先存在,否則會有警告,不會得利skel相關的文件給用戶

        #useradd -d /tmp/test test

      -g, --gid GROUP:用戶的基本組組名或GID;

         #useradd -g 1003 rex

       -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用戶所屬的附加組列表,彼此間用逗號隔開,中間沒有空格;

        #useradd -G fedora,gentoo centos

       -m, --create-home:強制創建家目錄; 

       -M:不創建用戶主目錄,即使系統在 /etc/login.defs 中的設置 (CREATE_HOME) 爲 yes;

       -r, --system:創建一個系統賬戶

        #useradd -r apache

      -s, --shell SHELL:用戶的登錄 shell 名,默認爲留空,讓系統根據 /etc/default/useradd 中的SHELL 變量選擇默認的登錄shell;

        #useraddr -s /bin/sh rex

       -u, --uid UID:用戶 ID 的數字值。此值必須爲唯一的,除非使用了 -o 選項。此值必須非負,默認使用大於等於UID_MIN,且大於任何其他用戶 ID 最小值。

       #useradd -u 2000 slackware

       useradd -D  選項:設置某默認選項;-e,-f等默認選項。

 usermod命令:修改賬號信息

   usermod [選項] 用戶名

     -c, --comment  COMMENT用戶密碼文件中註釋字段的新值。通常使用 chfn(1) 工具對其進行修改。

     -d, --home  HOME_DIR:修改家目錄爲新的位置,但一般應該同時使用-m選項以保證原家目錄中的文件會移動到新目錄中;

       #usermod -m -d /tem/test rex

     -g, --gid GROUP:用戶的新初始登錄組的組名或數字代號。此組必須存在。

      #usermod -g gentoo centos

     -G, --groups  GROUP1[,GROUP2,...[,GROUPN]]]:修改時會覆蓋原有的附加組;一同使用-a選項,表示爲用戶添加新的附加組。

     -l, --login  NEW_LOGIN:修改當前用戶的用戶名。

     -L, --lock:鎖定用戶的密碼。這會在用戶加密的密碼之前放置一個“!”。  

     -U, --unlock 解鎖用戶的密碼。這將移除加密的密碼之前的“!”。

userdel命令:刪除用戶賬號

  userdel [選項]  登錄名

    -r, --remove:用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一起刪除。

用戶組管理命令

  groupadd命令:添加用戶組

  groupadd [選項] GROUP

         -g  GID:指明GID。

   #groupadd -g 1011 suse

         -r, --system:系統組。

   #groupadd -r httpd

  groupmod命令:修改組信息

  groupmod [選項] GROUP

            -g  GID 

            -n NEW_NAME:修改組名。

  groupdel命令:刪除組

   groupdel [選項] GROUP

  











       



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章