用户和组管理类命令的使用方法与练习

一、用户和组管理命令

1. 用户管理命令:

useradd:用户创建
usermod:用户属性修改
userdel:删除用户

a. 用户创建:useradd

用法:useradd [options] LOGIN
-u:UID
-o:配合-u选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID
-c "COMMENT":用户的注释信息
-d HOME_DIR:以指定的路径(不存在)为家目录
-s SHELL:指明用户的默认shell程序,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在
-N:不创建私用组做主组,使用users组做主组
-r:创建系统用户CentOS 6:ID<500,CentOS 7:ID<1000
-m:创建家目录,用于系统用户
-M:不创建家目录,用于非系统用户

显示或更改默认设置(即用命令方式修改/etc/default/useradd)
useradd -D
useradd -D -s SHELL
useradd -D -b BASE_DIR
useradd -D -g GROUP

b. 用户属性修改:usermod

用法:usermod [OPTION] login
-u UID:新UID
-g GID:新主组
-G GROUP1[,GROUP2,...[,GROUPN]]:新附加组,原来的附加组将会被覆盖,若保留原有,则要同时使用-a选项
-s SHELL:新的默认SHELL
-C 'COMMENT':新的注释信息
-d HOME:新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
-l login_name:新的名字
-L:lock指定用户,在/etc/shadow密码栏的增加"!"
-U:unlock指定用户,将/etc/shadow密码栏的增加"!"拿掉
-e YYYY-MM-DD:指明用户账号过期日期
-f INACTIVE:设定非活动期限

c. 删除用户:userdel

用法:userdel [OPTION]... login
-r:删除用户家目录

2. 组账号维护命令:

groupadd:创建组
groupmod:修改组属性
groupdel:删除组

a. 创建组:groupadd

用法: groupadd [OPTION]... group_name
-g GID:指明GID号;[GID_MIN,GID_MAX]
-r:创建系统组
CentOS 6:ID<500
CentOS 7:ID<1000

b. 修改组属性:groupmod

用法: groupmod [OPTION]... group
-n group_name:新名字
-g GID:新的GID

c. 删除组:groupdel

用法: groupdel GROUP

3. 其它:

  1. id:查看用户相关的ID信息
    • id [OPTION]... [USER]
      -u:显示UID
      -g:显示GID
      -G:显示用户所属的组的ID
      -n:显示名称,需配合ugG使用
  2. getent:查看用户和组的配置文件
    • getent passwd [用户名]:查看用户信息
    • getent shadow [用户名]:查看用户的口令信息 = cat /etc/shadow
    • getent group [用户名]:查看组信息
    • getent shadow [用户名]:查看组的口令信息
  3. 文件操作
    • vipw和vigr:编辑用户和组的配置文件
    • pwck和grpck:检查用户和组的配置文件格式
  4. 切换用户或以其他用户身份执行命令
    su [options...] [-] [user[args...]]
    • 切换用户的方式:
      su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
      su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
      root su至其他用户无须密码;非root用户切换时需要密码
    • 换个身份执行命令:
      su [-] UserName -c 'COMMAND'
      -l --login:su -l UserName
      相当于su - UserName
      -c "COMMAND":su - UserName -c "COMMAND"
      切换用户后直接执行命令,执行后退回原用户
  5. 密码相关
    • passwd [OPTIONS] UserName:修改指定用户的密码
      -d:删除指定用户密码
      -l:锁定指定用户
      -u:解锁指定用户
      -e:强制用户下次登录修改密码
      -f:强制操作
      -n:mindays,指定最短使用期限
      -x:macdays,最大使用期限
      -w:warndays,提前多少天开始警告
      -i:inactivedays,非活动期限
      --stdin:从标准输入接收用户密码
      示例:echo "PASSWORD"|passwd --stdin USERNAME
    • chage [OPTION]... LOGIN:更改用户口令相关信息及修改用户密码策略
      -d LAST_DAY
      -E --expiredate EXPIRE_DATE
      -I --inactive INACTIVE
      -m --mindays MIN_DAYS
      -M --maxdays MAX_DAYS
      -W --warndays WARN_DAYS
      -l 显示密码策略
    • gpasswd:更改组密码
      gpasswd [OPTION] GROUP
      -a user:将user添加指定组中
      -d user:从指定组中移除用户user
      -A user1,user2,...:设置有管理权限的用户列表
    • authconfig --passalgo=sha256 --update 更改加密算法
    • 生成随机口令:
      openssl rand -base64 9
      mkpasswd:rpm -ivh /misc/cd/Packages/expect
  6. 用户描述信息
    • finger UserName:查看用户描述信息
    • chfn UserName:修改用户描述信息
  7. 新建用户的相关文件
    • /etc/default/useradd:
      GROUP=100:在创建用户时用-N不创建自己的私有组为主组时,用户默认的主组GID是100
      HOME=/home:创建用户时默认家目录所在文件夹
      INACTIVE=-1:用户账号过期后给的宽限期(-1为永远宽限)
      EXPIRE=:
      SHELL=/bin/bash:默认shell类型
      SKEL=/etc/shel:自动生成家目录里文件的模版目录
      CREATE_MAIL_SPOOL=yes:是否创建邮箱,邮箱在:/var/spool/mail
    • /etc/skel/*:
      自动生成家目录里文件的模版目录
    • /etc/login.defs
      MAIL_DIR:定义了默认的邮箱路径
      PASS_MAX_DAYS:创建用户默认的口令最长有效期
      PASS_MIN_DAYS:创建用户默认的口令最短有效期
      PASS_MIN_LEN:创建用户默认的口令最短长度(只限制普通用户,root不受影响)
      PASS_WARN_AGE:创建用户默认的更改口令的警报时长
      UID_MIN:创建用户默认最小UID
      UID_MAX:创建用户默认最大UID
      SYS_UID_MIN:创建系统用户默认最小UID
      SYS_UID_MAX:创建系统用户默认最大UID
      GID_MIN:创建组默认最小GID
      GID_MAX:创建组默认最大GID
      SYS_GID_MIN:创建系统组默认最小UID
      SYS_GID_MIN:创建系统组默认最大UID
      GREATE_HOME(yes/no):是否创建家目录
      ENCRYPT_METHOD:默认的加密算法
  8. 批量操作
    newusers passwd格式文件:用标准输出批量创建用户
    chpasswd:可用标准输出批量修改用户口令
  9. 其它:
    • newgrp命令:临时切换主组
      如果用户本不属于此组,则需要组密码
    • chsh 指定shell(chsh -s 同 usermod -s)
    • 更改和查看组成员
      groupmems [options] [action]
      options:
      -g, --group groupname 更改为指定组(只有root能用)
      actions:
      -a, --add username 指定用户加入组
      -d, --delete username 从组中删除用户
      -p, --purge 从组中清除所有成员
      -l, --list 显示组成员列表
      groups [OPTION].[USERNAME]... 查看用户所属组列表

二、练习

(1)、创建组distro,其GID为2019;
[root@CentOS7 ~]#groupadd distro -g 2019
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@CentOS7 ~]#useradd mandriva -u 1005 -g distro
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@CentOS7 ~]#useradd mageia -u 1100 -d /home/linux
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@CentOS7 ~]#echo "mageedu"|passwd --stdin mageia
[root@CentOS7 ~]#passwd -x 7 mageia
(5)、删除mandriva,但保留其家目录;
[root@CentOS7 ~]#userdel mandriva
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@CentOS7 ~]#getent group peguin
[root@CentOS7 ~]#useradd -u 2002 -g distro -G peguin slackware
(7)、修改slackware的默认shell为/bin/tcsh;
[root@CentOS7 ~]#chsh -s /bin/tcsh slackware
(8)、为用户slackware新增附加组admins;
[root@CentOS7 ~]#groupadd admins
[root@CentOS7 ~]#groupmems -g admins -a slackware

你可能感兴趣的:(用户和组管理类命令的使用方法与练习)