linux用戶及權限管理

用戶管理相關命令
  工作中經常用到對系統上用戶及文件權限的管理,本文詳細介紹下用戶及權限管理相關的命令
  相關知識:
      對計算機而言,每個使用者都是一個用戶,每個用戶都有一個用戶ID和密碼;用戶登錄系統分爲認證(Authentication)、授權(Authorization)、審計(Audition)三步,任何一步出錯用戶都會登錄不上系統;
  在linux系統中用戶分爲管理用戶和普通用戶,普通又分爲系統用戶和登錄用戶;其中,每個用戶都有一個ID號用來惟一標識此用戶,此ID號也叫做UID;在linux系統中UID是由16bits的二進制數字組成的,範圍爲(0-65535),其中:
     管理員的UID號爲0
     普通用戶爲1-65535
      系統用戶爲1-499(CentOS5/6),1-999(CentOS7)
      登錄用戶爲500-60000(CentOS5/6),1000-60000(CentOS7)
  當用戶登錄系統時需要輸入用戶名,用戶輸入用戶名之後需要進行名稱解析,將用戶的用戶名轉換爲系統的UID來惟一標識此用戶,在此,系統根據名稱解析庫/etc/passwd進來行解析,其中,/etc/passwd中的內容由冒號分隔爲七段:
   account:password:UID:GID:GECOS:directory:shell
      account:表示用戶名
      password:表示加密的密碼,也可以是佔位符;用戶的真實密碼存放於/etc/shadow中
      UID:表示用戶ID
      GID:表示用戶所屬的主組的ID號
      GECOS:表示註釋信息
      directory:表示用戶的家目錄路徑
      shell:表示用戶的默認shell,登錄時默認的shell程序
  剛剛提到用戶的真實密碼存放於/etc/shadow文件中,其中,/etc/shadow文件的內容由冒號分隔爲九段:
      sp_namp:sp_pwdp:sp_lstchg:sp_min:sp_max:sp_warn:sp_inact:sp_expire:sp_flag
      sp_name:賬號名稱,由於密碼也需要與賬號對應。因此,這個文件的第一列就是賬號,必須要與/etc/passwd相同才行;
      sp_pwdp:表示用戶加密後的密碼
      sp_lstchg:最近一次修改密碼的時間
      sp_min:表示密碼的最短使用期限(密碼不可被改動的天數)
      sp_max:表示密碼的最長使用期限(密碼需要重新更動的天數)
      sp_warn:表示密碼最長使用期限到期後的警告時間段,在此時間段內用戶還可以正常使用密碼
      sp_inact:非活動時間(密碼過期後的賬號寬限時間),不過,如果密碼過期了,那當你登錄系統時,系統會強制要求你必須要重新設置密碼才能登錄繼續使用。                    
      sp_expire:賬號失效日期,這個日期跟第三個字段一樣,都是使用1970年以來的總日數設置。這個字段表示:這個賬號在此字段規定的日期之後,將無法再使用。
      sp_inact:保留字段
  在linux系統中組分爲管理員組和普通用戶組,普通用戶組又分爲系統組和登錄組,同用戶ID一樣,組也有ID叫做GID,GID和UID一樣也是由16bits位的二進制數組成,範圍爲(0-65535),其中:
    管理員組的ID號爲0
    普通用戶組的ID號爲1-65535
      系統登錄組的ID號爲1-499(CentOS5/6),1-999(CentOS7)
      登錄用戶組的ID號爲500-60000(CentOS5/6),1000-60000(CentOS7)
  存儲組信息的名稱庫爲/etc/group,此文件被冒號分隔爲四段:
    roup_name:passwd:GID:user_list
       group_name:表示組名
      passwd:組密碼佔位符,真實的密碼存放於/etc/gshadow中,稍後介紹。
      GID:組ID號
      user_list:用戶列表,表示的是以此組爲附加組的用戶列表。
    組密碼存放於/etc/gshadow中,此文件由冒號分隔爲四段
        group name:encrypted password:administrators:members
      group name:用戶組名,和/etc/group裏面的組名一樣
      encrypted password:密碼列
      administrators:用戶組管理員的賬號
      members:該用戶組的所屬賬號
    用戶管理的命令詳解:
      useradd命令:
        功能:創建用戶
      用法:useradd[options] LOGIN
      參數:
        -u:指定用戶UID
        -g:指定基本組ID,此組得事先存在
        -G:指定用戶所屬的附加組,多個組之間用逗號分隔;
        -c:指明註釋信息
        -d:指定用戶家目錄,通過複製/etc/skel目錄並重命名實現,指定的家目錄路徑如果事先存在,則不會爲用戶複製環境配置文件
        -s:指定用戶的默認shell,可用的所有shell列表存儲在/etc/shells文件中;
        -r:表示創建的是系統用戶
        -m:創建用戶時爲用戶創建家目錄,默認創建用戶時已經創建家目錄
        -M:表示創建用戶時不爲用戶創建家目錄
        -D:顯示創建用戶時的默認配置,用戶的默認配置文件爲/etc/login.defs;
        -e:後面接一個日期,格式爲"YYYY-MM-DD",此選項可寫入shadow第八個字段,即賬號失效日;
        -f:後面接shadow的第七個字段選項,指定密碼是否會失效;
    usermod命令:
      功能:修改用戶屬性
      用法:usermod[options] LOGIN
      參數:
        -u:修改用戶的UID
        -g:修改用戶所屬的基本組
        -G:修改用戶所屬的附加組;原來的附加組會被覆蓋,如果不想覆蓋需要添加-a選項
        -c:修改註釋信息
        -d:修改用戶的家目錄;用戶原有的文件不會被轉移至新位置,如果想轉移原有的文件,需要添加-m選項;
        -l:修改用戶名
        -s:修改用戶的默認shell
        -L:鎖定用戶賬號,即在用戶原來的密碼字符串之前添加一個“!”,解鎖即去掉歎號;
        -U:解鎖用戶鎖定
     userdel命令:
       功能:刪除用戶
       用法:userdel[options] LOGIN
       參數:
        -r:刪除用戶時一併刪除用戶家目錄,默認不刪除
      passwd命令:
        功能:(1)修改用戶自己的密碼(2)修改制定用戶的密碼,僅root有此權限
        用法:passwd/passwdUSERNAME
        參數:
         -l,-u:鎖定和解鎖用戶
         -d:清除用戶密碼
         -e:date過期期限,日期
         -i:days非活動期限
         -n:密碼的最短使用期限
         -x:密碼的最長使用期限
         -w:警告期限
         --stdin:
         echo"PASSWORD" |passwd --stdin 用戶名  修改用戶名密碼
      groupadd命令
        功能:添加用戶組
        用法:groupadd[options] groupname
        參數:
          -g GID:指定GID,默認是上一個組的GID+1;
          -r:創建系統組,id號爲1-499(CentOS6)或1-999(CentOS7)
      groupmod命令:
        功能:修改組信息
        用法:groupmod[options] groupname
        參數:
          -g GID:修改GID
          -n new_name:修改組名
      groupdel命令:
        功能:刪除組
        用法:groupdel組名
      gpasswd命令:
        功能:給組設定密碼
        用法:gpasswd[option] group
        參數:
          -a USERNAME:向組中添加用戶
          -d USERNAME:從組中移除用戶
      newgrp命令:
        功能:臨時切換用戶的基本組爲其它組,這時如果切換的組不是用戶的附加組需要輸入密碼;
        用法:newgrp[-] [group]
        參數:
         -:會模擬用戶重新登錄以實現重新初始化其工作環境;
      chage命令:
        功能:修改用戶的密碼過期信息
        用法:chage[options] [LOGIN]
        參數:
         -d:修改最近一次更改密碼的日期
         -E:修改賬號失效日
         -W:修改密碼過期警告時間
         -m:修改密碼最短保留天數
           -M:修改密碼多久需要進行更改的時間
         -l:列出該賬號的詳細密碼參數
         -I:修改密碼失效日期
      id命令:
        功能:顯示用戶的真實和有效ID
        用法:id[OPTION]... [USERNAME]
        參數:
         -u:僅顯示有效的UID;
         -g:僅顯示用戶的基本組ID;
         -G:僅顯示用戶所屬的所有組的ID
         -n:顯示名字而非ID
         -r:顯示真實ID
      su命令:switchuser
        功能:
         登錄式切換:會通過重新讀取目標用戶的配置文件來重新初始化
         非登錄式切換:不會讀取目標用戶的配置文件來進行初始化
          注意:管理員可無密碼切換至其它任何用戶;非管理員切換時必須給出目標用戶的密碼,否則,無法切換;
        參數:
         -c ‘COMMAND’僅以指定用戶的身份運行此處指定的命令;
  su - woniu -c 'whoami'  表示以woniu用戶執行whoami命令,執行完成後還是當前用戶
     chown命令:
       功能:更改文件的屬主或屬組
       用法:chown[OPTION]... [OWNER][:[GROUP]] FILE...
       chown [OPTION]... --reference=RFILE FILE...
       參數:
        -R:遞歸修改
 
權限管理知識及命令
    在命令ls -l的結果中,前一列爲文件的類型和權限說明,如下所示:
      [root@localhost/]# ls -l
    total 106
    dr-xr-xr-x.   2 root root 4096 Dec 11 09:43 bin
    其中的d表示文件爲目錄,接下來的字符中,以3個爲一組,且均爲“rwx”的3個參數的組合。其中r代表可讀、w代表可寫、x代表可執行。要注意的是,這3個權限的位置不會改變,如果沒有權限就會減號-代替。
      第一組爲文件所有者的權限,用u表示
      第二組爲文件用戶組的權限,用g表示
      第三組爲其它非本用戶組的權限,用o表示
      進程對文件的訪問權限應用模型:
        首先檢查進程的屬主於文件的屬主是否相同;如果相同,則應用屬主權限;
        否則,則檢查進程的屬主是否屬於文件的屬組;如果是,則應用屬組權限;
        否則,就只能應用other的權限;
      對文件而言:
        r:可獲取文件的數據
        w:可修改文件的數據
        x:可將此文件發起運行爲進程
      對目錄而言:
        r:可使用ls命令獲取其下的所有文件列表
        w:可修改此目錄下的文件列表;即創建或刪除文件
        x:可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息;
      權限管理命令:
        chmod命令:
           功能:修改文件或目錄的權限
           用法:chmod[OPTION]... MODE[,MODE]... FILE...
           MODE表示法:
             賦權表示法: 直接操作一類用戶的所有權限位
               u=
               g=
               o=
               a=
             授權表示法:直接操作一類用戶的一個權限位
               u+,u-
               g+,g-
               o+,o-
               a+,a-                        
          chmod [OPTION]...OCTAL-MODE FILE...
            chmod 755/etc/fstab
          chmod[OPTION]... --reference=RFILE FILE...
          chmod--reference=/var/log/message /etc/fstab 將/etc/fatab的權限修改爲和/var/log/message的權限一樣。
            參數:
             -R:表示遞歸修改        
   umask:文件的權限反向掩碼,遮罩碼,文件默認權限
    對文件而言,默認權限是666,因爲文件默認沒有執行權限:而目錄默認權限是777,而umask是從權限中“拿走”相應的位
    所以默認創建文件時的權限爲:666-umask;創建目錄時的權限爲777-umask
    對文件而言,如果減得的結果中有執行權限,則需要將其加1;而目錄不變。
       例如,如果umask值爲023,則創建出來的文件的權限爲
          666-023+1=644
  umask命令:
    umask:查看當前umask
    umask MASK:設置umask
  注意:此類設定僅對當前shell進程有效;

 


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