7.2-5 usermod
7.2 usermod:修改用户信息
usermod 命令用于修改系统已经存在的用户的账号信息。
-c comment 修改用户password文件中用户的说明栏,同useradd的-c功能
-d home_dir 修改用户每次登入时所使用的家目录,同useradd的-d功能
-e expire_date 修改用户终止日期,同useradd的-e功能
-f inactive_days 修改用户过期几日后永久停权,同useradd的-f功能
-g initial_group 修改用户对应的用户组,同useradd的-g功能
-G group,[...] 修改此用户为多个不同组的成员,同useradd的-G功能
-m 用户目录如果不存在则自动建立
-M 不建立用户家目录,优先于/etc/login.defs文件设定。一般创建虚拟用户时不建立家目录,部署应用服务时需要创建虚拟用户
-n 默认情况下,用户的用户组与用户的名称会相同。如果命令添加了-n参数,则不会生成与用户同名的用户组了
-r 此参数是用来建立系统用户的。系统用户的UID会比定义在系统档上/etc/login.defs的UID_MIN要小。注意此用法中useradd所建立的用户不会建立用户家目录,也不会在乎记录在/etc/login.defs.的定义值。如果想要有用户家目录,则必须额外指定-m参数来建立系统用户。这是Red Hat额外增设的选项
-s shell 修改用户登入后使用的Shell名称,同useradd的-s功能
-u uid 修改用户的ID值,同useradd的-u功能
-a 追加用户到用户组,仅与-G参数连用
-l 修改用户的账号名称
-L 锁定用户密码,不让用户改密码
-U 解除密码锁定
usermod的作用是修改用户,而useradd的作用是添加用户,本质上都是对用户进行操作,因此,参数作用大部分都是类似的,只不过命令不同,就是添加和修改的区别。
usermod的-C、-u、-G、-s、-d、-m、-e、-f等多个参数组合的例子
需求如下:将范例7-3添加的用户inca的用户注释信息修改为“TmpUser”,UID修改为999,归属修改为用户组root、sa、tech成员,其Shell类型为/sbin/nologin,设置家目录为/home/inca,用户过期时间为2018/07/12,过期后30天停权。
[root@cs6 ~]# usermod -u 999 -c "TmpUser" -G root,sa,tech -s /sbin/nologin -d /home/inca -e "2019/07/12" -f 30 inca [root@cs6 ~]# grep -w inca /etc/passwd inca:x:999:806:TmpUser:/home/inca:/sbin/nologin [root@cs6 ~]# id inca uid=999(inca) gid=806(inca) groups=806(inca),0(root),801(sa),904(tech) [root@cs6 ~]# grep -w inca /etc/shadow inca:!!:18027:0:99999:7:30:18089: [root@cs6 ~]# chage -l inca Last password change : May 11, 2019 Password expires : never Password inactive : never Account expires : Jul 12, 2019 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
7.3 userdel:删除用户
userdel命令用于删除指定的用户及与该用户相关的文件。
-f 强制删除用,即使用户当前已登录
-r 删除用户的同时,删除与用户相关的所有文件
不加参数删除用户zuma
[root@cs6 ~]# userdel zuma [root@cs6 ~]# ll /home/zuma/ -ld drwx------. 2 903 903 4096 May 12 02:31 /home/zuma/ [root@cs6 ~]# grep -w zuma /etc/shadow
在实际工作中尽量不要使用userdel删除用户,而是采用在/etc/passwd里注释用户的方法,防止用户误删带来的系统及服务不正常。读者需要谨慎使用-r参数,因为-r参数会将用户家目录下的所有目录和文件都删除,导致数据不可逆地丢失。
7.4 groupadd:创建新的用户组
groupadd命令用于创建新的用户组。但groupadd命令的用途一般不大,因为useradd命令在创建用户的同时还会创建与用户同名的用户组。
-g gid 指定用户组的gid,除非接-o参数,否则ID值唯一且不为负,如果不指定参数,则gid从500开始
-f 新增一个账户,强制覆盖一个已存在的组账号
[root@cs6 ~]# groupadd -g 123 test1 [root@cs6 ~]# tail -1 /etc/group test1:x:123: [root@cs6 ~]# tail -1 /etc/gshadow test1:!::
7.5 groupdel:删除用户组
groupdel命令用于删除指定的用户组,此命令的使用频率极低,了解即可。
groupdel不能删除还有用户归属的主用户组。
[root@cs6 ~]# groupdel root groupdel: cannot remove the primary group of user 'root' [root@cs6 ~]# groupdel test1