Linux基礎-Linux 用戶命令


  1. 添加用戶前需要確定:
    確定用戶的默認組是否有特殊要求
    確定用戶是否允許登錄
    確定用戶的密碼策略
    確定用戶的有效期
    確定用戶的uid是否有特殊要求

  2. 使用useradd命令新增賬戶,注意adduser命令軟鏈接指向useradd
    [root@localhost ~]# LANG=zh_CN.UTF-8
    [root@localhost ~]# useradd -h
    用法:useradd [選項] 登錄
    useradd -D
    useradd -D [選項]

選項:
-b, --base-dir BASE_DIR 新賬戶的主目錄的基目錄
-c, --comment COMMENT 新賬戶的 GECOS 字段
-d, --home-dir HOME_DIR 新賬戶的主目錄
-D, --defaults 顯示或更改默認的 useradd 配置
-e, --expiredate EXPIRE_DATE 新賬戶的過期日期
-f, --inactive INACTIVE 新賬戶的密碼不活動期
-g, --gid GROUP 新賬戶主組的名稱或 ID
-G, --groups GROUPS 新賬戶的附加組列表
-h, --help 顯示此幫助信息並推出
-k, --skel SKEL_DIR 使用此目錄作為骨架目錄
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默認值
-l, --no-log-init 不要將此用戶添加到最近登錄和登錄失敗數據庫
-m, --create-home 創建用戶的主目錄
-M, --no-create-home 不創建用戶的主目錄
-N, --no-user-group 不創建同名的組
-o, --non-unique 允許使用重復的 UID 創建用戶
-p, --password PASSWORD 加密后的新賬戶密碼
-r, --system 創建一個系統賬戶
-R, --root CHROOT_DIR chroot 到的目錄
-s, --shell SHELL 新賬戶的登錄 shell
-u, --uid UID 新賬戶的用戶 ID
-U, --user-group 創建與用戶同名的組
-Z, --selinux-user SEUSER 為 SELinux 用戶映射使用指定 SEUSER

[root@localhost ~]#

常用參數
'-u' 指定用戶的UID,不能和現有ID沖突
'-g' 指定用戶用戶默認基本組
'-G' 指定用戶附加組,用逗號隔開添加多個附加組
'-d' 指定用戶家目錄
'-c' 指定用戶注釋信息
'-M' 不建立家目錄
'-s' 指定用戶默認shell
'-r' 創建系統賬戶, 沒有家目錄

創建oldboy用戶,指定UID為5001,基本組Students,附加組sa/dba,注釋信息2018_new_Student,指定shell為/bin/bash
[root@localhost ~]# groupadd students
[root@localhost ~]# groupadd sa
[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd -u 5001 -g students -G sa,dba -c "2018_new_Student" -s /bin/bash oldboy
[root@localhost ~]# tail -2 /etc/passwd
test2❌1002:1002::/home/test2:/bin/bash
oldboy❌5001:1003:2018_new_Student:/home/oldboy:/bin/bash
[root@localhost ~]# id oldboy
uid=5001(oldboy) gid=1003(students) 組=1003(students),1004(sa),1005(dba)
[root@localhost ~]#

創建系統用戶,-M不建立用戶家目錄,-s指定nologin使其用戶無法登陸系統
[root@localhost ~]# useradd -M -s /sbin/nologin mysql
[root@localhost ~]# useradd -r -s /sbin/nologin dba
useradd:dba 組已經存在 - 如果您想將此用戶加入到該組,請使用 -g 參數。
[root@localhost ~]# useradd -r -s /sbin/nologin -g dba dba
[root@localhost ~]# tail -2 /etc/passwd
mysql❌5002:5002::/home/mysql:/sbin/nologin
dba❌996:1005::/home/dba:/sbin/nologin
[root@localhost ~]# ls /home/
oldboy test test1 test2
[root@localhost ~]#

注意:
-M 指定不建立用戶家目錄
-r 創建系統用戶,也不會建立用戶家目錄

  1. 使用usermod命令修改用戶組
    [root@localhost ~]# usermod -h
    用法:usermod [選項] 登錄

選項:
-c, --comment 注釋 GECOS 字段的新值
-d, --home HOME_DIR 用戶的新主目錄
-e, --expiredate EXPIRE_DATE 設定帳戶過期的日期為 EXPIRE_DATE
-f, --inactive INACTIVE 過期 INACTIVE 天數后,設定密碼為失效狀態
-g, --gid GROUP 強制使用 GROUP 為新主組
-G, --groups GROUPS 新的附加組列表 GROUPS
-a, --append GROUP 將用戶追加至上邊 -G 中提到的附加組中,
並不從其它組中刪除此用戶
-h, --help 顯示此幫助信息並推出
-l, --login LOGIN 新的登錄名稱
-L, --lock 鎖定用戶帳號
-m, --move-home 將家目錄內容移至新位置 (僅於 -d 一起使用)
-o, --non-unique 允許使用重復的(非唯一的) UID
-p, --password PASSWORD 將加密過的密碼 (PASSWORD) 設為新密碼
-R, --root CHROOT_DIR chroot 到的目錄
-s, --shell SHELL 該用戶帳號的新登錄 shell
-u, --uid UID 用戶帳號的新 UID
-U, --unlock 解鎖用戶帳號
-Z, --selinux-user SEUSER 用戶賬戶的新 SELinux 用戶映射

[root@localhost ~]#

常用參數
'-u' 修改用戶的UID
'-g' 修改用戶所屬的基本組GID
'-G' 修改用戶附加組, 使用逗號隔開多個附加組, 覆蓋原有的附加組
'-a' 追加更多的附加組, 必須和-G使用: -aG 追加附加組
'-d' 指定用戶的家目錄新位置
'-md' 家目錄遷移, 必須和-d一起使用, 移動用戶的家目錄到新的位置
'-c' 修改用戶的注釋信息
'-s' 更改用戶使用的shell
'-l' 更改用戶登錄名
'-L' 鎖定用戶
'-U' 解鎖用戶

[root@localhost ~]# grep -i oldboy /etc/passwd
oldboy❌5001:1003:2018_new_Student:/home/oldboy:/bin/bash
[root@localhost ~]#

修改用戶uid/gid,附加組,注釋信息,用戶家目錄,登陸shell,登陸名

--建立組,指定gid
[root@localhost ~]# groupadd -g 5008 newwork_sa
[root@localhost ~]# groupadd -g 5009 devops
[root@localhost ~]#

--修改用戶屬性
[root@localhost ~]# usermod -u 5200 -g 5008 -aG 5009 -c "2019_new_students" -md /home/oldgirl -s /bin/bash -l oldgirl oldboy
--檢查是否修改成功
[root@localhost ~]# grep -i old /etc/passwd
oldgirl❌5200:5008:2019_new_students:/home/oldgirl:/bin/bash
[root@localhost oldgirl]# id oldgirl
uid=5200(oldgirl) gid=5008(newwork_sa) 組=5008(newwork_sa),1004(sa),1005(dba),5009(devops)
[root@localhost oldgirl]#

//驗證家目錄
[root@oldboy ~]# ll -d /home/oldgirl/
drwx------. 2 oldstudent network_sa 62 Sep 23 00:07 /oldgirl/

如果使用的參數是-md,沒有事先創建該目錄,隨后創建了目錄

[root@localhost ~]# su - oldgirl
Last login: Sat Mar 16 21:51:04 CST 2019 on pts/3
-bash-4.2$ cp -a /etc/skel/.bash* ./
-bash-4.2$ ll -a
total 16
drwx------ 4 oldgirl newwork_sa 112 Mar 16 21:53 .
drwxr-xr-x. 6 root root 59 Mar 16 21:50 ..
-rw------- 1 oldgirl newwork_sa 65 Mar 16 21:52 .bash_history
-rw-r--r-- 1 oldgirl newwork_sa 18 Apr 11 2018 .bash_logout
-rw-r--r-- 1 oldgirl newwork_sa 193 Apr 11 2018 .bash_profile
-rw-r--r-- 1 oldgirl newwork_sa 231 Apr 11 2018 .bashrc
drwxr-xr-x 3 oldgirl newwork_sa 18 Mar 16 21:51 .cache
drwxr-xr-x 3 oldgirl newwork_sa 18 Mar 16 21:51 .config
-bash-4.2$ exit
logout
[root@localhost ~]# su - oldgirl
Last login: Sat Mar 16 21:52:44 CST 2019 on pts/3
[oldgirl@localhost ~]$

鎖定/解鎖用戶
[root@localhost ~]# passwd oldboy
更改用戶 oldboy 的密碼 。
新的 密碼:
無效的密碼: 密碼少於 8 個字符
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
[root@localhost ~]# usermod -L oldboy
[root@localhost ~]# su - oldboy
上一次登錄:六 3月 16 22:07:49 CST 2019pts/2 上
最后一次失敗的登錄:六 3月 16 22:08:24 CST 2019tty1 上
最后一次成功登錄后有 2 次失敗的登錄嘗試。
[root@localhost ~]# su - test
上一次登錄:五 9月 12 00:00:26 CST 2014pts/1 上
[test@localhost ~]$ su - oldboy
Password:
su: Authentication failure
[test@localhost ~]$ exit
logout
[root@localhost ~]# usermod -U oldboy
[root@localhost ~]# su - test
上一次登錄:六 3月 16 22:10:33 CST 2019pts/3 上
[test@localhost ~]$ su - oldboy
Password:
Last login: Sat Mar 16 22:09:15 CST 2019 on pts/2
Last failed login: Sat Mar 16 22:10:45 CST 2019 on pts/3
There were 3 failed login attempts since the last successful login.
[oldboy@localhost ~]$

  1. 使用finger命令查詢用戶信息以及登錄信息
    [root@localhost ~]# finger -h
    -bash: finger: command not found
    [root@localhost ~]# yum install -y finger

[root@localhost ~]# finger -l
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 日 3月 17 18:10 (CST) on pts/0 from 192.168.254.1
7 seconds idle
On since 日 3月 17 18:13 (CST) on pts/1 from 192.168.254.1
1 minute 12 seconds idle
No mail.
No Plan.
[root@localhost ~]# finger oldboy
Login: oldboy Name:
Directory: /home/oldboy Shell: /bin/bash
Last login 六 3月 16 22:11 (CST) on pts/3
No mail.
No Plan.
[root@localhost ~]#

  1. 使用chfn修改用戶信息
    [root@localhost ~]# finger oldboy
    Login: oldboy Name:
    Directory: /home/oldboy Shell: /bin/bash
    Last login 六 3月 16 22:11 (CST) on pts/3
    No mail.
    No Plan.
    [root@localhost ~]# chfn oldboy
    Changing finger information for oldboy.
    名稱 []: 老男孩
    辦公 []: 沙河富騰公寓
    辦公電話 []: 010-59136921
    住宅電話 []: 177901121859

Finger information changed.
[root@localhost ~]# finger oldboy
Login: oldboy Name: 老男孩
Directory: /home/oldboy Shell: /bin/bash
Office: 沙河富騰公寓, 010-59136921 Home Phone: 177901121859
Last login 六 3月 16 22:11 (CST) on pts/3
No mail.
No Plan.
[root@localhost ~]#

  1. 使用chsh命令更改用戶登錄shell
    [root@localhost ~]# finger oldboy
    Login: oldboy Name: 老男孩
    Directory: /home/oldboy Shell: /bin/bash
    Office: 沙河富騰公寓, 010-59136921 Home Phone: 177901121859
    Last login 六 3月 16 22:11 (CST) on pts/3
    No mail.
    No Plan.
    [root@localhost ~]# chsh oldboy
    Changing shell for oldboy.
    New shell [/bin/bash]: /sbin/nologin
    Shell changed.
    [root@localhost ~]# finger oldboy
    Login: oldboy Name: 老男孩
    Directory: /home/oldboy Shell: /sbin/nologin
    Office: 沙河富騰公寓, 010-59136921 Home Phone: 177901121859
    Last login 六 3月 16 22:11 (CST) on pts/3
    No mail.
    No Plan.
    [root@localhost ~]# tail -1 /etc/passwd
    oldboy❌5003:5003:老男孩,沙河富騰公寓,010-59136921,177901121859:/home/oldboy:/sbin/nologin
    [root@localhost ~]#

  2. 檢查用戶登錄情況
    [root@localhost ~]# who
    root tty1 2019-03-17 18:26
    root pts/0 2019-03-17 18:10 (192.168.254.1)
    root pts/1 2019-03-17 18:13 (192.168.254.1)
    [root@localhost ~]# w
    18:27:07 up 17 min, 3 users, load average: 0.00, 0.01, 0.05
    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    root tty1 18:26 43.00s 0.03s 0.03s -bash
    root pts/0 192.168.254.1 18:10 3.00s 0.16s 0.00s w
    root pts/1 192.168.254.1 18:13 13:24 0.03s 0.03s -bash
    [root@localhost ~]# whoami
    root
    [root@localhost ~]#

  3. 使用userdel刪除賬戶
    [root@localhost ~]# userdel -h
    用法:userdel [選項] 登錄

選項:
-f, --force force some actions that would fail otherwise
e.g. removal of user still logged in
or files, even if not owned by the user
-h, --help 顯示此幫助信息並推出
-r, --remove 刪除主目錄和郵件池
-R, --root CHROOT_DIR chroot 到的目錄
-Z, --selinux-user 為用戶刪除所有的 SELinux 用戶映射

[root@localhost ~]#

常用參數
語法 : userdel [-r] username //-r 同時刪除家目錄

[root@oldboy ~]# userdel user1
[root@oldboy ~]# ll /home/user1/ -d
drwx------. 3 501 501 4096 2017-11-15 12:40 /home/user1/

//連同家目錄一起刪除
[root@oldboy ~]# userdel -r user1

Linux創建用戶默認會讀取/etc/default/useradd的配置文件.
如果當我指定參數時,使用指定參數;如果不指定參數,默認使用/etc/default/useradd中的配置.
當我們使用useradd命令新建用戶時,用戶家目錄下會產生響應的.bash*文件,這些文件默認是從/etc/skel目錄中復制.如需變更環境拷貝目錄站點可修改/etc/default/useradd配置文件.

注意:
如果執行useradd命令新建用戶時,指定了參數,就會覆蓋/etc/default/useradd默認配置.
[root@localhost ~]# cat /etc/default/useradd

useradd defaults file

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

[root@localhost ~]#

[root@student ~]# cat /etc/default/useradd
GROUP=100
HOME=/home //把用戶的家目錄建在/home中。
INACTIVE=-1 //是否啟用賬號過期停權,-1表示不啟用。
EXPIRE= //賬號終止日期,不設置表示不啟用。
SHELL=/bin/bash //新用戶默認所有的shell類型。
SKEL=/etc/skel //配置新用戶家目錄的默認文件存放路徑。
CREATE_MAIL_SPOOL=yes //創建mail文件。

/etc/login.defs文件定義了與/etc/password和/etc/shadow配套的用戶限制設定。這個文件是需要的,缺失並不會影響系統的使用,但是也許會產生意想不到的錯誤。
如果/etc/shadow文件里有相同的選項,則以/etc/shadow里的設置為准,也就是說/etc/shadow的配置優先級高於/etc/login.defs。
[root@localhost ~]# egrep -v "$|#" /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
[root@localhost ~]#

//用戶登錄linux操作系統,環境變量被誤刪,出現-bash-4.2$,如何解決!
-bash-4.2$ cp -a /etc/skel/.bash* ./
-bash-4.2$ exit

[root@student ~]# su - oldboy
[oldboy@student ~]$


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM