在Linux系统中,管理用户可以修改配置文件,但不建议这样做:操作起来非常麻烦,而且极其容易出错。所以在Linux系统中,管理用户都有相关的命令进行操作。
一、用户管理
1、新建用户
命令:useradd (选项,可省略) 用户名
注意:普通用户没有权限新建用户。
选项:-G 组名 指定用户的附加组。
-g 组名 指定用户的主组,不会建立与用户名相同的初始组。
使用useradd命令新建用户时,此命令主要依据两个配置文件: /etc/default/useradd 与 /etc/login.defs
a、/etc/default/useradd
自上而下7行
(1)新建用户的组ID。 默认新建用户的组ID,但是默认情况下不会生效。
(2)用户的家目录。 新建用户后,都会在/home下新建一个与新建用户名相同的目录作为新用户的家目录。
(3)帐号是否过期。 对应上一文章中提到的/etc/shadow中的第7组。
(4)密码的失效时间。 对应上一文章中提到的/etc/shadow中的第8组。
(5)默认使用哪个shell。 一般也就是/bin/bash。对应上一文章中提到的/etc/passwdw中的第7组。
(6)模板目录。 新建用户后,会将此目录中的文件复制一份至新建用户的家目录中。
(7)是否设置邮箱。 默认情况下是yes
b、/etc/login.defs
上面使用的命令是将文件中的注释没有显示出来。从上到下共17行。
(1)第一行表示新用户邮箱目录。 对新建用户设置新的邮箱目录,会在此目录下新建一个与新建用户名相同的目录以作为新用户的邮箱目录。
(2)第二行表示密码的最大有效期。 是以时间戳保存的。默认99999
(3)第三行表示两次密码修改间隔。 表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0。
(4)第四行表示密码的最小长度。 由于现在系统中,密码的控制策略更加先进,所以并不再此条目不生效。
(5)第五行表示密码到期前提醒。 默认是7天,表示密码到期前7天提醒。
(6)第六七行表示普通用户的UID范围。 用户UID从1000开始计算,最大为60000。(centos6版本中是500,centos7改为1000;60000可以改,现最大可以支持2^32)
(7)第八九行表示系统用户的UID范围。 系统用户的UID从201开始计算,最大为999。
(8)第十十 一表示组的GID范围。 组GID从1000开始计算,最大为60000。
(9)第十二 十三行表示系统用户的组GID范围。 从201开始计算,最大为999。
(10)第十四行表示是否创建用户家目录。 默认情况下是yes
(11)第十五行表示umask。 此项决定了新建用户家目录的权限。
(12)第十六行表示删除用户时,是否删除用户的初始组。 默认是删除的
(13)第十七行表示用户密码的加密方式。 使用SHA512加密方式。
2、设置/修改密码
命令:passwd (选项) (用户)
注意:只有root用户可以为其他用户的设置密码或者修改其他用户密码,普通用户只能修改自己的密码。格式:psswd 回车即可。
选项:-l 暂时停用用户。
-u 解锁停用的用户。
3、用户信息修改
命令:usermod (选项) 用户
选项:-c 修改用户的说明信息。修改的是/etc/passwd文件的第五组。
-d 修改用户的家目录。所写路径必须为绝对路径。
-e 修改用户的停用日期。格式:yyyy-mm-dd。修改的是/etc/shadow中的第八组。
-g 修改用户的主组。修改的是/etc/passwd文件的第四组。
-G 修改用户的附加组。
-L 临时停用用户
-U 启用停用的用户
-u 修改用户的UID
4、删除用户
命令:userdel (选项) 用户
选项:-r 删除用户并且会将用户的家目录删除。
5、切换用户
命令:su (选项) 用户
选项:- 此选项连带用户的环境变量一块切换
注意:当root用户切换普通用户时,是不需要输入密码的。而普通用户之间切换或者普通用户切换到root用户时,是需要输入密码的。
二、组管理
1、添加组
命令:groupadd 组名
2、删除组
命令:groupdel 组名
注意:当需要删除的组是某个用户的主组时,该组是无法删除的。
三、补充
1、gpasswd 命令
(gpasswd -a 用户名 组名) 添加用户到组;
(gpasswd -d 用户名 组名) 从组删除用户;
2、newgrp 命令
由于一个用户可以有多个附加组,某个用户的所属的组之间可以来回切换。
(newgrp 组名) 切换组