系統版本:
[root@node1 ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@node1 ~]# uname -r
3.10.0-229.el7.x86_64
useradd
創建用戶。
注:創建用戶時的許多默認設定,由配置文件/etc/login.defs定義。
語法:
useradd [options] LOGIN
選項:
- -u, --uid UID: 指定UID
- -g, --gid GROUP: 指定基本組ID,此組需事先存在
- -G, --groups GROUP1[,GROUP2,...[,GROUPN]]: 指明用戶所屬的附加組,多個組之間用逗號分隔
- -c, --comment COMMENT: 指明註釋信息
- -d, --home-dir HOME_DIR: 以指定的路徑爲用戶的家目錄;通過複製/etc/skel此目錄並重命名實現;指定的家目錄路徑如果事先存在,則不會爲用戶複製環境配置文件
- -s, --shell SHELL: 指定用戶的默認shell,可用的所有shell列表存儲在/etc/shells文件中
- -r, --system: 創建系統用戶
- useradd -D: 顯示創建用戶的默認配置
- useradd -D 選項: 修改默認選項的值,修改的結果保存在/etc/default/useradd文件中
示例:
[root@node1 ~]# useradd docker
[root@node1 ~]# tail -1 /etc/passwd
[root@node1 ~]# tail -1 /etc/group
[root@node1 ~]# useradd -u 3000 openstack
[root@node1 ~]# useradd -G mygrp archlinux
[root@node1 ~]# useradd -c "MogileFS DFS" mogilefs
[root@node1 ~]# useradd -d /tmp/moosefs moosefs
[root@node1 ~]# ll /tmp/moosefs/
[root@node1 ~]# yum -y install tcsh
#安裝tcsh shell,包含了csh shell
[root@node1 ~]# cat /etc/shells
[root@node1 ~]# useradd -s /bin/csh keystone
[root@node1 ~]# useradd -D
[root@node1 ~]# useradd -D -s /bin/csh
#修改useradd命令的-s選項的默認shell爲/bin/csh
usermod
修改用戶屬性。
語法:
usermod [options] LOGIN
選項:
- -u, --uid UID: 修改用戶的ID爲此處指定的新UID
- -g, --gid GROUP: 修改用戶所屬的基本組
- -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]: 修改用戶所屬的附加組,原來的附加組會被覆蓋
- -a, --append: 與-G一同使用,用於爲用戶追加新的附加組
- -c, --comment COMMENT: 修改註釋信息
- -d, --home HOME_DIR: 修改用戶的家目錄,用戶原有的文件不會被轉移至新位置
- -m, --move-home: 只能與-d選項一同使用,用於將原來的家目錄移動爲新的家目錄
- -l, --login NEW_LOGIN: 修改用戶名
- -s, --shell SHELL: 修改用戶的默認shell
- -L, --lock: 鎖定用戶密碼,即在用戶原來的密碼字符串之前添加一個"!"
- -U, --unlock: 解鎖用戶的密碼
userdel
刪除用戶。
語法:
userdel [options] LOGIN
選項:
- -r: 刪除用戶時一併刪除其家目錄
groupadd
添加組。
語法:
groupadd [options] group
選項:
- -g GID: 指定GID,默認是上一個組的GID+1
- -r: 創建系統組
示例:
[root@node1 ~]# groupadd mygrp
[root@node1 ~]# tail -1 /etc/group
[root@node1 ~]# groupadd -r testgrp
[root@node1 ~]# groupadd -g 2000 grp1
[root@node1 ~]# groupadd -r -g 306 mariadb
groupmod
修改組屬性。
語法:
groupmod [options] GROUP
選項:
- -g GID: 修改GID
- -n new_name: 修改組名
示例:
[root@node1 ~]# groupmod -g 702 mariadb
[root@node1 ~]# groupmod -n perconaserver mariadb
[root@node1 ~]# tail -1 /etc/group
passwd
(1) passwd:修改用戶自己的密碼
(2) passwd USERNAME:修改指定用戶的密碼,但僅root有此權限
語法:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
選項:
- -l, -u: 鎖定和解鎖用戶
- -d: 清除用戶密碼串
- -e: 強制用戶密碼過期
- -i DAYS: 非活動期限
- -n DAYS: 密碼的最短使用期限
- -x DAYS: 密碼的最長使用期限
- -w DAYS: 警告期限
示例:
[root@node1 ~]# echo "redhat" | passwd --stdin docker &> /dev/null
#將“redhat”字符串以標準輸入的方式,重定向給“passwd docker”,以更改密碼
#並且不管結果是正確的,還是錯誤的,都將輸出的信息發送到/dev/null,即丟棄輸出信息
[root@node1 ~]# echo $?
#echo特殊變量$?,返回“0”,則表示成功執行;“1-255”表示失敗
gpasswd
設置組密碼。
組密碼文件:/etc/gshadow
語法:
gpasswd [options] group
選項:
- -a USERNAME: 向組中添加用戶
- -d USERNAME: 從組中移除用戶
newgrp
臨時切換指定的組爲基本組。
語法:
newgrp [-] [group]
選項:
- -: 模擬用戶重新登錄以實現重新初始化其工作環境
示例:
[root@node1 ~]# cat /etc/group | grep mygrp
mygrp:x:3002:archlinux,fedora,centos
[root@node1 ~]# id docker
uid=1001(docker) gid=1001(docker) groups=1001(docker)
[root@node1 ~]# gpasswd mygrp
[root@node1 ~]# su - docker
[docker@node1 ~]$ newgrp mygrp
#切換mygrp爲新的基本組,此時需要輸入mygrp組的密碼
[docker@node1 ~]$ id
uid=1001(docker) gid=3002(mygrp) groups=1001(docker),3002(mygrp)
[docker@node1 ~]$ exit
#退出並返回原來的基本組
[docker@node1 ~]$ id
uid=1001(docker) gid=1001(docker) groups=1001(docker)
chage
更改用戶密碼過期信息。
語法:
chage [options] LOGIN
選項:
- -d: 設置最後一次修改密碼的日期(YYYY-MM-DD)或天數(距1970-01-01以來的天數)
示例:
[root@node1 ~]# chage -d 0 hadoop
#hadoop用戶在下次登錄時須要修改密碼
id
顯示用戶的真實和有效ID
語法:
id [OPTION]... [USER]
選項:
- -u: 僅顯示有效的UID
- -g: 僅顯示用戶的基本組ID
- -G: 僅顯示用戶所屬的所有組的ID
- -n: 顯示名字而非ID,需與以上選項連用
su
切換用戶。
注:管理員可無密碼切換至其他任何用戶。
- 登錄式切換:會通過讀取目標用戶的配置文件來重新初始化
su - USERNAME
或su -l USERNAME
- 非登錄式切換:不會讀取目標用戶的配置文件進行初始化
su USERNAME
選項:
- -c 'COMMAND': 僅以指定用戶的身份運行此處指定的命令
示例:
[root@node1 ~]# su - docker -c 'whoami'
docker
用戶和組的管理類命令,除了以上幾個較爲常用的命令,還有groupdel
,chsh
,chfn
,finger
,whoami
,pwck
,grpck
,用得較少,不作詳述。
練習題
(1) 創建組distro,其GID爲2016
[root@node1 ~]# groupadd -g 2016 distro
(2) 創建用戶mandriva,其ID號爲1005,基本組爲distro
[root@node1 ~]# useradd -u 1005 -g distro mandriva
(3) 創建用戶mageia,其ID號爲1100,家目錄爲/home/linux
[root@node1 ~]# useradd -u 1100 -d /home/linux mageia
(4) 給用戶mageia添加密碼,密碼爲mageedu
[root@node1 ~]# echo "mageedu" | passwd --stdin mageia
(5) 刪除mandriva,但保留其家目錄
[root@node1 ~]# userdel mandriva
(6) 創建用戶slackware,其ID號爲2002,基本組爲distro,附加組peguin
[root@node1 ~]# useradd -u 2002 -g distro -G peguin slackware
(7) 修改slackware的默認shell爲/bin/tcsh
[root@node1 ~]# usermod -s /bin/tcsh slackware
(8) 爲用戶slackware新增附加組admins
[root@node1 ~]# usermod -aG admins slackware