首頁 > 軟體

Linux使用者及許可權管理

2020-06-16 17:09:58

【檔案管理、管道、使用者及組管理、使用者及許可權管理】使用者及組管理

使用者與組管理

  Linux系統是一個多使用者多工的分時作業系統,任何一個要使用系統資源的使用者,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。使用者的賬號一方面可以幫助系統管理員對使用系統的使用者進行跟蹤,並控制他們對系統資源的存取;另一方面也可以幫助使用者組織檔案,並為使用者提供安全性保護。每個使用者賬號都擁有一個惟一的使用者名稱和各自的口令。使用者在登入時鍵入正確的使用者名稱和口令後,就能夠進入系統和自己的主目錄。實現使用者賬號的管理,要完成的工作主要有如下幾個方面:

  1.使用者賬號的新增、刪除與修改。

  2.使用者口令的管理。

  3.使用者組的管理。

  Linux使用者分為兩種,分別是管理員(UID:0)和普通使用者(UID:1-65535),普通使用者又分為系統使用者與登入使用者。

  :一個程式可以存取哪些內容取決於這個程式的發行者是哪一個的。

  linux組可分為管理員組(GID:0)與普通使用者組(1-60000)

  CentOS6版本與centos7版本的UID與GID略有不同。

  此外,使用者組還可以劃分為基本組(使用者在建立時預設建立一個與其名字相同的基本組)與附加組(除了已有的基本組以外,還可以新增其他組,其他組就是此使用者附加組)

  所以組名通使用者名稱,且只包含一個使用者就叫做私有組,而組內包含多個使用者叫做公有組

Linux使用者和組相關的組態檔

  使用者和使用者組相關的資訊都存放在/etc/passwd,/etc/shadow,/etc/group以及/etc/gshadow檔案下。下面分別介紹這些檔案的具體內容。

  1./etc/passwd

  此檔案下儲存了使用者及其屬性資訊。其中每條資訊從左到右被冒號分割成了7個部分,username(使用者名稱):x(密碼預留位置,真正的密碼自然不能放在這裡了,太不安全了):UID(使用者ID):GID(使用者組ID):存放使用者的注釋資訊:使用者家目錄:使用者預設使用的shell。

  2./etc/shadow

  此檔案儲存了使用者密碼及其相關屬性資訊,其中每條資訊從左到右被冒號分割成9個部分,使用者名稱:密碼(被加密過的,密碼中有“!”或者“*”使用者已被禁用):最近一次修改密碼的日期,自linux元年開始的天數(1970年1月1日開始):密碼最短使用時間:密碼最長使用時間:密碼告警時間(在密碼過期前n天進行告警,需要修改密碼了):不活動時間(超出警告時間後m天仍可登入):失效時間(到達此時間,使用者無法使用):保留位暫不使用。

  3./etc/group

  此檔案儲存了使用者組及其屬性資訊,每一行被冒號從左至右分割成了4個部分,組名(建立一個使用者就會建立一個同名的組):x組密碼預留位置(與使用者密碼一樣也是存放在其他位置):GID:以逗號分隔的使用者列表,以此組為附加組的使用者的使用者列表。

  4./etc/gshadow

  此檔案儲存了組密碼及其相關屬性資訊,每一行被冒號從左至右分割成了4個部分,組名(建立一個使用者就會建立一個同名的組):密文密碼(為空時只有該組成員可獲得許可權,“!”與“*”則不需要密碼可直接加入):使用者組管理員(是逗號分隔的使用者列表,使用者組管理員可以修改密碼和組成員,也很組裡其他成員擁有相同的許可權):成員(以此組為附加組的使用者的使用者列表,應該要和/etc/group下的使用者列表一樣)

 使用者與組相關管理常用命令

   一、使用者建立:useradd

  使用方法:useradd [options] login

  常用選項:

  -u:--uid UID:指定UID,定義在/etc/login.defs

  -g:--gid GROUP:指明使用者基本組,可為組名也可以是GID

  -G: GROUP1[,GROUP2,...[,GROUPN]]]:指定使用者所屬的附加組,組事先存在

  -c:--comment COMMENT:使用者註釋資訊

  -d:/PATH/TO/ HOME_DIR:指定的路徑為使用者的家目錄:通過複製/etc/skel此目錄並重新命名實現,指定的家目錄路徑如果事先存在,則不會為使用者複製環境組態檔

  -s:--shell SHELL:指定使用者的預設shell,可用列表存放在/etc/shells下

  -r:建立系統使用者。

  :預設值設定在/etc/default/useradd中。可用 useradd -D命令檢視建立使用者的預設設定

  二、建立組:groupadd

  使用方法:groupadd [option]...  group_name

  常用選項:

  -g GID:指明GID號

  -r:建立系統組

  三、檢視使用者相關ID資訊:id

  使用方法:id [OPTION]... [USER]

  常用選項:

  -u: 僅顯示有效的UID

  -g: 僅顯示使用者的基本組ID

  -G:僅顯示使用者所屬的所有組的ID

   四、切換使用者或以其他使用者身份執行命令:su

  使用方法:su [options...] [-] [user [args...]]

  切換使用者方式:

    非登入式切換,不會讀取目的使用者的組態檔進行初始化:su USERNAME

    登入式切換,會讀取目的使用者組態檔,完全切換:su - USERNAME或者su -l USERNAME

 

  換身份執行命令:

  su [-] username -c  'COMMADN'

  五、使用者加密:passwd

  使用方法:passwd[options]username:修改指定使用者密碼,僅root使用者有許可權。

  常用選項:

  -l:鎖定指定使用者

  -u:解鎖指定使用者

  -n:mindays:指定最短使用期限

  -x:maxdays:最大使用期限

  -w:warndays:提前告警期限

  -i:inactivedays:非活動期限

  從標準輸入接收使用者密碼:echo “password” | passwd --stdin username

  六、使用者屬性修改:usermod

  使用方法:usermod [options] LOGIN

  常用選項:

  -u,UID:修改使用者的ID為新UID;
  -g, --gid GROUP:修改使用者到新基本組;
  -G,  GROUP1[,GROUP2,...[,GROUPN]]]:修改使用者所屬的附加組;原來的附加組會被覆蓋;若保留原有,則同時使用-a選項(append)
  -s,新的預設shell
  -c,  COMMENT:新的註釋資訊;
  -d,  HOME_DIR:新的使用者家目錄;使用者原有的檔案不會被轉移至新家目錄下;若要移動則使用-m選項。
  -l, login name:新的使用者名稱;
  -L,lock:鎖定使用者密碼;即在使用者原來的密碼字串之前新增一個"!";
  -U, --unlock:解鎖使用者的密碼;
  七、刪除使用者:userdel

  使用方式:userdel [options] LOGIN

  常用選項-r:刪除使用者時一併刪除其家目錄,預設不刪除

  八、組屬性修改:groupmod

  使用方式:groupmod [options] GROUP

  常用選項:

  -g GID:新的GID

  -n group_name:新組名

  九、組刪除:groupdel

  使用方式:groupdel GROUP

  十、組密碼:gpasswd

  使用方式:gpasswd [option] group

  常用選項:

  -a USER:將user新增至指定組

  -d USER:刪除使用者以當前組命名的附加組

  -A USER1,USER2,...:設定有管理許可權的使用者列表

  十一、修改使用者屬性:chage

  使用方式:chage [options] LOGIN

  常用選項:

  -d:修改最後一次修改密碼的時間

  -E:修改使用者失效時間

  -I:修改密碼過期怒限時間

  -W:修改告警天數

  -m:修改密碼最小使用天數

  -M:修改密碼最長使用天數

檔案的許可權

  檔案許可權針對的物件是:

  owner:屬主,u

  group:屬組,g

  other:其他,o

  對於檔案而言:

  檔案可讀(r):可以檢視其內容。

  檔案可寫(w):可修改檔案內容。

  檔案可執行(x):可以把檔案提請核心啟動為一個進程。

  對於目錄而言:

  目錄可讀(r):可以使用ls檢視目錄中檔案列表

  目錄可寫(w):可在此目錄中建立或刪除檔案

  目錄可執行(x):可以使用ls-l檢視目錄中檔案,可以cd進目錄。

許可權管理類命令

  一、修改檔案許可權(chmod)

  使用方法:

  1. chmod [OPTION]... MODE[,MODE]... FILE...

  可以直接將rwx直接賦值給相應的使用者型別:u為屬主,g為屬組,o為其他使用者,a為所有使用者(同ugo=---)

  或者直接操作一類使用者的一個許可權位(u+x,o-r)

       2.chmod [OPTION]... OCTAL-MODE FILE...
  直接使用八進位制來修改r=4,w=2,x=1.其中-R可遞回修改許可權。
       3.chmod [OPTION]... --reference=RFILE FILE..
  參考其他檔案的許可權
檢視檔案許可權
[root@localhost /]# ll -lh /dj
total 16K
-rw-r--r-- 1 root root  51 Jun 14 10:36 hello_world.py
-rw-r--r-- 1 root root  92 Jun 15 10:00 name_daxiaoxie.py
-rw-r--r-- 1 root root  84 Jun 15 09:44 name.py
-rw-r--r-- 1 root root 359 Jul 23 02:48 test.py
修改許可權
[root@localhost /]# chmod 775 /dj/hello_world.py 
[root@localhost /]# ll -lh /dj
total 16K
-rwxrwxr-x 1 root root  51 Jun 14 10:36 hello_world.py
-rw-r--r-- 1 root root  92 Jun 15 10:00 name_daxiaoxie.py
-rw-r--r-- 1 root root  84 Jun 15 09:44 name.py
-rw-r--r-- 1 root root 359 Jul 23 02:48 test.py
使用第三種方式
[root@localhost /]# chmod --reference=/dj/hello_world.py /dj/test.py 
[root@localhost /]# ll -lh /dj
total 16K
-rwxrwxr-x 1 root root  51 Jun 14 10:36 hello_world.py
-rw-r--r-- 1 root root  92 Jun 15 10:00 name_daxiaoxie.py
-rw-r--r-- 1 root root  84 Jun 15 09:44 name.py
-rwxrwxr-x 1 root root 359 Jul 23 02:48 test.py
[root@localhost /]# 

  二、修改檔案的屬組屬主(僅使用root使用者)

  1.修改屬主(chown)

  使用方式:chown[OPTION]...[OWNER][:[GROUP]]FILE...或使用--referrence

  chown owner|owner:group|:group file (其中:可用.替換,並且可以使用-R遞回更換)

  2.修改屬組(chgrp)

  chgrp[option]...group file或--referrence方式

  3.檔案或目錄建立時的遮罩碼:umask

  file:666-umask(若某類使用者許可權減得結果中存在x許可權則將其許可權+1)

  dir:777-umask

  umask:檢視當前值

  umask#:設定值

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-07/145851.htm


IT145.com E-mail:sddin#qq.com