1. 程式人生 > >Linux下用戶和組管理

Linux下用戶和組管理

方便 eal 更改密碼 echo 獨立 bubuko swd 賬戶 sha

  用戶與組之間的關系是,組下面有若幹個用戶,每個用戶必須從屬於唯一一個組。組可以理解為權限的集合。用戶管理的命令有:useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage。組管理的命令有:groupadd, groupdel, groupmod, gpasswd。

(一)linux系統下用戶角色

  在linux系統下用戶的角色不同,權限和所能完成的任務也不同,用戶角色是通過UID來識別的,在linux下要註意root用戶的UID的唯一性。

1) root

  系統管理員超級用戶,系統唯一,可以登陸系統,可以操作任何文件和命令,擁有最高權限,UID值為0。

2) 虛擬用戶

  與真實的用戶分開來,這類用戶不能登陸系統,但是在使用某些服務的時候使用,這類用戶是系統默認添加的。

3) 普通真實用戶

  這類用戶可以登陸系統,但是只能操作自己家目錄的內容,受限賬戶,這類用戶都是管理員自行添加的。

(二)用戶相關文件介紹

  在windows當中可以使用計算機管理工具中的用戶和組的管理工具來對用戶進行管理,在linux下是通過對用戶配置文件(區別與windows中的用戶配置文件)的管理來實現對用戶和組的管理。

1) /etc/passwd

技術分享圖片

  用戶賬號文件,記錄所有用戶記錄,每行表示一個用戶信息,7個字段都有各自的含義。例如:root : x : 0 : 0 : root : /root : /bin/bash,這7個字段分別表示用戶名、密碼、UserID、GroupID、用戶相關說明、用戶家目錄路徑、用戶的登陸shell。

2) /etc/shadow

技術分享圖片

  用戶賬戶的影子文件,包含用戶的加密密碼和其他信息,兩個文件互補來記錄用戶信息,這個文件只有root可以讀取和操作。每行包含8個字段,各項說明如下:

第1個字段,用戶名;第2個字段,加密口令;第3個字段,上次口令改變時間,從1970年1月1日算起的天數;第4個字段,多少天內不能改變口令;第5個字段,多少天內必須改變口令;第6個字段,口令到期前多少天會出現警告;第7個字段,如果口令到期後幾天不使用賬號,則無法登陸;第8個字段,如果到這個日期不用賬號則無法登陸,可以以YYYY-MM-DD格式,也可以用1970年1月1日起的天數。

3) /etc/login.de

  使用vim可以對這個文件內容進行修改,下面介紹修改哪些位置有哪些作用。

技術分享圖片

技術分享圖片

技術分享圖片

  MAIL_DIR,郵件存放目錄;PASS_MAX_DAYS 密碼有效期最長時間;PASS_MIN_DAYS,密碼有效期最短時間;PASS_MIN_LEN,密碼最小長度;PASS_WARN_AGE,密碼到期提示時間;UID_MIN,UID最小值;UID_MAX,UID最大值;GID_MIN,GID最小值;GID_MAX,GID最大值;CREATE_HOME,是否創建家目錄;UMASK,UMASK值;USERGROUPS_ENAB,當刪除用戶後,同名組中不在存在用戶的時候,是否刪除該組。

4) /etc/skel

  存放用戶啟動文件的目錄,類似與windows的用戶配置文件目錄,為用戶提供用戶環境,該目錄下的文件全部為隱藏文件。在添加用戶時會從該目錄下復制文件到用戶的家目錄下,相當與統一的登陸模板。

  開啟和關閉投影密碼命令。開啟用戶的投影密碼,使得密碼得到更好的保護,不容易被別的用戶得到。該選項是一個安全選項,執行命令可以把用戶名和密碼分別存放在兩個文件當中,影子文件就是密碼文件。

  pwconv,開啟投影密碼命令;pwunconv,關閉投影密碼命令。

(三)用戶管理

1) useradd 創建用戶命令

  useradd jake 創建名為jake的用戶。useradd的常用選項及含義如下:-d指定用戶的家目錄;-g指定用戶組;-G指定用戶的附加組;-u指定用戶的UID值;-p創建密碼。例如,useradd -d /rose -g group -G root -u 505 rose,創建rose用戶,指定家目錄在/rose下,加入到group組,同時附加到root組,並設置UID號為505。

2) users

  users查看所有登陸的用戶(who)。

3) passwd設置密碼命令

  註意:沒有設置密碼的用戶不能使用。例如:passwd rose 給用戶rose設置密碼。常用選項及含義如下:-d刪除密碼;-f強制執行下次登陸時更改密碼;-l停止賬號使用;-u啟用已經停止的賬號;-S顯示密碼信息。

  常用的設置或密碼方法有:a) passwd username,然後再在控制臺中輸入兩次密碼(不可見);

              b) passwd --stdin username,然後在控制臺中輸入一次密碼(可見);

              c) echo “newpassword” | passwd --stdin username,使用管道將新密碼傳到標準輸入。

4) userdel刪除賬號命令

  userdel rose刪除rose賬號。userdel -r rose刪除用戶登陸目錄及目錄下的文件(類似於windows的刪除用戶選擇是否刪除用戶的文檔)。

5) usermod修改賬號命令

  usermod -l newname oldname。其常用選項-d、-g、-G、-u等參數與useradd命令參數使用方法一樣。例如,usermod -d /home/rose -g group0 -G group1 -u 600 rose是指將rose用戶的家目錄,主組和附加組以及UID值更改。

6) 用戶的鎖定與解鎖

  usermod -L rose 鎖定rose用戶

  usermod -U rose 解除rose用戶的鎖定

7) gpasswd用戶添加到其他組的命令

  gpasswd -a u1 g1 將u1加入到g1組;gpasswd -d u1 g1 將u1退出g1組;gpasswd -A u1 g1 將g1組的管理員指派給u1。註意:只有root和組管理員能夠改變組成員。

8) id查看ID信息命令

  id rose 查看rose用戶的ID信息。id - print real and effective user and group IDs。其用法是選項後面接用戶名id [OPTION]... [USERNAME]。作用是打印用戶的id和組的id,Print user and group information for the specified USERNAME, or (when USERNAME omitted) for the current user。常用選項有-u,-g。-u是只打印用戶id,-g是只打印組id。

9) root單用戶

  如果希望計算機除了root賬號外其他賬號不能登陸,在/etc目錄中執行touch nologin,創建1個名稱為nologin的文件。如果系統只有一個人使用,可以考慮修改/etc/inittab文件,將默認啟動值改為2。

(四)組相關文件介紹

1) /etc/group

技術分享圖片

  用戶組的特性在系統管理中為系統管理員提供了極大的方便,但安全性也是值得關註的,如某個用戶下有對系統管理有最重要的內容,最好讓用戶擁有獨立的用戶組,或者是把用戶下的文件的權限設置為完全私有;另外root用戶組一般不要輕易把普通用戶加入進去。

/etc/group的內容包括用戶組、用戶組口令、GID及該用戶組所包含的用戶(User),每個用戶組一條記錄;格式如下:group_name:passwd:GID:user_list。例如,bin: x : 1 :bin,daemon。bin是組,x是密碼段,GID是1,bin用戶組下包括bin、daemon以及GID為1的其它用戶(可以通過 /etc/passwd查看)。

2) /etc/gshadow

  /etc/gshadow是/etc/group的密碼文件,用戶組(Group)管理密碼就是存放在這個文件。/etc/gshadow和/etc/group是互補的兩個文件;對於大型服務器,針對很多用戶和組,定制一些關系結構比較復雜的權限模型,設置用戶組密碼是極有必要的。比如我們不想讓一些非用戶組成員永久擁有用戶組的權限和特性,這時我們可以通過密碼驗證的方式來讓某些用戶臨時擁有一些用戶組特性,這時就要用到用戶組密碼。

  /etc/gshadow格式如下,每個用戶組獨占一行:groupname:password:admin,admin,...:member,member,...

  第1字段:用戶組;第2字段:用戶組密碼,這個段可以是空的或!,如果是空的或有!,表示沒有密碼;第3字段:用戶組管理者,這個字段也可為空,如果有多個用戶組管理者,用,號分割;第4字段:組成員,如果有多個成員,用,號分割。

(五)組管理

1) groupadd添加用戶組

  常用選項及含義為:-g指定GID;-o一般和g選項同時使用,可以與已有組的GID相同。例如,groupadd -go 501 g1 創建組g1其GID可以與已有的組重復。

2) gpasswd設置用戶組的密碼

  一般的情況下,沒有必要設置用戶組的密碼;例如,gpasswd rose 修改rose 組的密碼。

3) groupdel刪除用戶組

  groupdel g1 刪除g1組(沒有用戶的空組)。

4) groupmod 修改組屬性

  其常用屬性有:-g指定新的GID;-o與-g配合使用同groupadd的-o;-n修改組名。例如groupmod -g 601 g1修改g1的GID為601。再如,groupmod -n g11 g1將g1組改名為g11。

5) newgrp 切換用戶組

  newgrp root切換到root組。

Linux下用戶和組管理