Linux用戶和組管理命令

系統版本:

[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 - USERNAMEsu -l USERNAME
  • 非登錄式切換:不會讀取目標用戶的配置文件進行初始化
    su USERNAME

選項:

  • -c 'COMMAND': 僅以指定用戶的身份運行此處指定的命令

示例:

[root@node1 ~]# su - docker -c 'whoami'
docker

 
 
用戶和組的管理類命令,除了以上幾個較爲常用的命令,還有groupdelchshchfnfingerwhoamipwckgrpck,用得較少,不作詳述。

 

練習題


(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

 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章