目錄
1、useradd命令
- 命令解釋
useradd - create a new user or update default new user information(創建一個新用戶或更新默認新用戶信息 ) - 命令語法
useradd [選項] 登錄
useradd -D
useradd -D [選項] - 命令選項
選 項 | 解 釋 |
---|---|
-u 或 --uid | 指定用戶ID |
-g 或 --gid | 指定用戶所屬基本組,此組必須事先存在 |
-G 或 --groups | 指定用戶所屬的附加組,多個組之間用逗號分隔 |
-c 或 --comment | 指定註釋信息,會保存在 /etc/passwd 的備註欄位中 |
-d 或 --home | 指定用戶的家目錄,通過複製 /etc/skel 目錄並重命名實現 |
-s 或 --shell | 指定用戶的默認shell,所有可用的shell列表存儲在 /etc/shells 中 |
-r 或 --system | 創建系統用戶 |
-D | 顯示創建用戶的默認配置 |
-D 選項 | 修改默認選項的值(修改結果保存於 /etc/dafault/useradd 文件中) |
- 實例
① 創建用戶gentoo,UID爲4001,基本組爲gentoo,附加組爲distro(GID爲5000)和peguin(GID爲5001);
[root@localhost ~]# groupadd -g 5000 distro \\創建用戶組 distro
[root@localhost ~]# groupadd -g 5001 peguin \\創建用戶組 peguin
[root@localhost ~]# useradd -u 4001 -G distro,peguin gentoo
② 創建用戶fedora,其註釋信息爲"Fedora Core",默認shell爲/bin/tcsh;
[root@localhost ~]# useradd -c "Fedora Core" -s /bin/tcsh fedora
2、usermod命令
- 命令解釋
usermod - modify a user account(修改一個用戶賬戶) - 命令語法
usermod [選項] 登錄 - 命令選項
選 項 | 解 釋 |
---|---|
-u 或 --uid | 修改用戶ID |
-g 或 --gid | 修改用戶所屬的基本組 |
-G 或 --groups | 修改用戶所屬的附加組,原來的附加組會被覆蓋 |
-a | 追加用戶所屬的附加組 |
-c 或 --comment | 修改註釋信息 |
-d 或 --home | 修改用戶的家目錄,用戶原有的文件不會被轉移至新位置 |
-m 或 --move-home | 與 -d 選項一同使用,將原來的家目錄移動到新位置並根據需要改名 |
-s 或 --shell | 修改用戶的默認shell |
-l | 修改用戶名 |
-L 或 --lock | 鎖定用戶密碼,在 /etc/shadow 中的密碼字符串之前會添加一個" ! " |
-U 或 --unlock | 解鎖用戶密碼 |
- 實例
① 修改gentoo用戶的家目錄爲/var/tmp/gentoo;要求其原有文件仍能被用戶訪問;
[root@localhost ~]# usermod -md /var/tmp/gentoo gentoo
② 爲gentoo新增附加組netadmin;
[root@localhost ~]# groupadd netadmin //創建用戶組 netadmin
[root@localhost ~]# usermod -aG netadmin gentoo
3、userdel命令
- 命令解釋
userdel - delete a user account and related files(刪除用戶賬戶和相關文件) - 命令語法
userdel [選項] 登錄 - 命令選項
選 項 | 解 釋 |
---|---|
-r | 刪除用戶時一併刪除其家目錄 |
- 實例
刪除用戶fedora,同時刪除用戶家目錄和mail spool;
[root@localhost ~]# userdel -r fedora
4、groupadd命令
- 命令解釋
groupadd - create a new group(創建一個新組) - 命令語法
groupadd [選項] 組 - 命令選項
選 項 | 解 釋 |
---|---|
-g | 指定組ID |
-r | 創建系統組 |
- 實例
創建一個新組tom,GID爲5003;
[root@localhost ~]# groupadd -g 5003 tom
5、groupmod命令
- 命令解釋
groupmod - modify a group definition on the system(修改系統上的組屬性) - 命令語法
groupmod [選項] 組 - 命令選項
選 項 | 解 釋 |
---|---|
-g | 修改組ID |
-n | 修改組名 |
- 實例
修改tom組的GID爲5004,組名爲jerry;
[root@localhost ~]# groupmod -g 5004 -n jerry tom
6、groupdel命令
- 命令解釋
groupdel - delete a group(刪除一個組) - 命令語法
groupdel [選項] 組 - 命令選項
並沒有什麼常用選項哦! - 實例
刪除tom組;
[root@localhost ~]# groupdel jerry
7、passwd命令
- 命令解釋
passwd - update user’s authentication tokens(更新用戶的身份驗證令牌) - 命令語法
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n 最小天數] [-x 最大天數] [-w 警告日期] [-i 非活動日期] [-S] [–stdin] [用戶名] - 命令選項
① passwd :修改用戶自己密碼;
② passwd USERNAME:修改指定用戶密碼,僅root有此權限。
選 項 | 解 釋 |
---|---|
-l | 停止賬號使用 |
-u | 啓用已被停止的賬戶 |
-d | 刪除用戶密碼 |
-S | 顯示密碼信息 |
-e DATE | 設置密碼過期日期 |
-n DAYS | 密碼的最短使用期限 |
-x DAYS | 密碼最長使用期限 |
-w DAYS | 警告期限 |
--stdin | 非交互式創建密碼(echo “password” | passwd --stdin USERNAME) |
- 實例
① 修改gentoo用戶密碼;
[root@localhost ~]# passwd gentoo
更改用戶 gentoo 的密碼 。
新的 密碼:
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
② 顯示gentoo用戶密碼信息;
[root@localhost ~]# passwd -S gentoo
gentoo PS 2020-03-09 0 99999 7 -1 (密碼已設置,使用 SHA512 算法。)
8、gpasswd命令
- 命令解釋
gpasswd - administer /etc/group and /etc/gshadow(管理 /etc/group 和 /etc/gshadow,用於將一個用戶添加到組或者從組中刪除) - 命令語法
gpasswd [選項] 組 - 命令選項
選 項 | 解 釋 |
---|---|
-a USERNAME | 添加用戶到組 |
-d USERNAME | 從組刪除用戶 |
- 實例
添加用戶gentoo到tom組中;
[root@localhost ~]# gpasswd -a gentoo tom
正在將用戶“gentoo”加入到“tom”組中
9、newgrp命令
- 命令解釋
newgrp - log in to a new group(登錄到一個新組) - 命令語法
newgrp [-] [組]
-:會模擬用戶重新登陸以實現重新初始化其工作環境; - 命令選項
沒有選項哦! - 實例
登入到tom組;
[root@localhost ~]# newgrp - tom
10、chage命令
- 命令解釋
chage - change user password expiry information(更改用戶密碼過期信息) - 命令語法
chage [選項] 登錄 - 命令選項
選 項 | 解 釋 |
---|---|
-d | 指定密碼最後修改日期 |
-E | 密碼到期的日期。過了這天,此賬號可不用,0表示馬上過期,-1表示永不過期 |
-w | 密碼過期前,提前收到警告信息的天數 |
-m | 密碼可以更改的最小天數。0表示任何時候都可以更改密碼 |
-M | 密碼保持有效的最大天數 |
-l | 列出當前密碼設置信息 |
- 實例
查看root賬戶的密碼設置信息;
[root@localhost ~]# chage -l root
最近一次密碼修改時間 :從不
密碼過期時間 :從不
密碼失效時間 :從不
帳戶過期時間 :從不
兩次改變密碼之間相距的最小天數 :0
兩次改變密碼之間相距的最大天數 :99999
在密碼過期之前警告的天數 :7
11、id命令
- 命令解釋
id - print real and effective user and group IDs(打印真實有效的用戶和組ID) - 命令語法
id [選項]… [用戶] - 命令選項
選 項 | 解 釋 |
---|---|
-u | 僅顯示有效的UID |
-g | 僅顯示有效的基本組ID |
-G | 僅顯示用戶所屬的所有組ID |
-n | 顯示名字而非ID |
- 實例
①顯示當前用戶信息;
[root@localhost ~]# id
uid=0(root) gid=0(root) 組=0(root),5003(tom) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
②顯示當前用戶所有組羣的名字;
[root@localhost ~]# id -Gn
12、解析庫文件(影子口令套組)
① /etc/passwd
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
/etc/passwd中存儲了系統中所有用戶的基本信息,文件中一行記錄對應着一個用戶,每行記錄被冒號(:)分隔爲7個字段,每個字段含義如下:
用戶名(login_name):
==口令(password):
用戶標識號(UID):
組標識號(GID):
註釋性描述:
家目錄(home_directory):
默認的Shell(Shell)
② /etc/shadow
[root@localhost ~]# cat /etc/shadow
root:`$`6`$`p1mwb6gitnqDNZy.`$`ctaFX4wA5HxU49bBjWXpJSznbhkJL8KVwmaO8ZJ6VarPemT.VlKkqN44onx4CrWkCMruDZ3jIm9kywoWGtCNa/::0:99999:7:::
bin:*:17834:0:99999:7:::
...
/etc/shadow中存儲着用戶的密碼信息,文件中一行記錄對應着一個用戶,每行記錄被冒號(:)分隔爲9個字段,每個字段含義如下:
用戶名(login_name):
加密密碼(以"$"爲分隔符,第一個字段表示加密算法;第二個字段表示加密因子;第三個字段纔是用戶加密後的密碼):
密碼最後一次修改時間:
密碼最小修改時間間隔:
密碼有效期:
密碼過期後警告時間:
密碼過期後的寬限天數(賬號仍有效):
賬號失效時間:
保留(目前未使用)
③ /etc/group
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
...
/etc/shadow中存儲着用戶組的所有信息,文件中一行記錄對應着一個用戶組,每行記錄被冒號(:)分隔爲4個字段,每個字段含義如下:
組名(group_name):
組密碼(password):
組標識號(GID):
組中的用戶(users)
④ 補充小知識
瞭解到這裏,除了使用useradd命令,還可以對文件進行操作從而添加用戶,以添加用戶tom爲例;
#步驟:
#1、修改/etc/passwd文件:vim /etc/passwd 或 vipw
#2、修改/etc/shadow文件:vim /etc/shadow 或 vipw -s
#3、修改/etc/group文件:vim /etc/group 或 vigp
#4、修改/etc/gshadow文件:vim /etc/gshadow 或 vigp -s
#5、添加家目錄並填充:mkdir /home/用戶名 && cp /etc/skel/\.* /home/用戶名
[root@localhost ~]# vim /etc/passwd //修改/etc/passwd文件
...省略部分信息
tom:x:51:51::/home/tom:/bin/bash //添加該條信息
[root@localhost ~]# vim /etc/shadow //修改/etc/shadow文件
....省略部分信息
tom::18364:::::: //添加該條信息
[root@localhost ~]# vim /etc/group //修改/etc/group文件
....省略部分信息
tom:x:51: //添加該條信息
[root@localhost ~]# vim /etc/gshadow //修改/etc/gshadow文件
tom::: //添加該條信息
[root@localhost ~]# mkdir /home/tom //添加家目錄
[root@localhost ~]# chmod 700 /home/tom //修改權限
[root@localhost ~]# cp /etc/skel/\.* /home/tom //填充家目錄
cp: omitting directory `/etc/skel/.'
cp: omitting directory `/etc/skel/..'
cp: omitting directory `/etc/skel/.gnome2'
cp: omitting directory `/etc/skel/.mozilla'
[root@localhost ~]# chown -R tom:tom /home/tom //修改tom家目錄屬主和屬組
[root@localhost ~]# su - tom //切換至tom用戶
[tom@localhost ~]$