一 用户相关文件
1.1 /etc/passwd 用户信息文件
注意: ":"号为一列。
第一列:用户名 第二列:密码位(加密后) 第三列:用户ID
第三列解释:超级用户 UID,也代表这个账号是管理员账号。那 Linux 中就是把其他用的 UID 修改为 0 (数字)就可以了,Windows 用户是以组为管理员(Administrator)账号。
1-499 这些是系统保留给系统用户的UID,这些是不能登录的,是用来运行服务的,其中1-99是系统保留账号,系统自动建立,100-499预留给用户创建账号。
500-60000 普通用户UID,普通用户UID从500开始,60000结束。2.6.X内核后已经支持到2^32。
第4列:组ID GID添加用户时,如果不定所属初始组,会建立和用户名相同的组。
第五列:用户说明 第六列:用户家目录 第七列:登录shell /bin/bash
1.2 /etc/shadow 影子文件
第一列:用户名 第二列:加密密码 在密码前加入“!”或“*”改变加密值让密码暂时失效,使这个用户无法登陆,达到暂时禁止用户登录的效果。注意:所有伪用户的密码都是“!!”或“*”,代表没有密码是不能登录的。新用户如果不设定密码,它的密码项也是“!!”。
第三列:密码最近更改的时间,以1970 年 1 月 1 日作为标准时间。
时间戳转日期命令:
日期转时间戳:
第四列: 两次密码的修改间隔时间(和第 3 列相比)
第五列:密码有效期(和第 3 列相比)
第六列:密码修改到期前的警告天数(和第 5 列相比)
第七列:密码过期后的宽限天数(和第 5 列相比)
第八列:密码失效时间
注意:这里也是用时间戳,也就是用 1970 年 1 月 1 日进行时间换算。如果超过了失效时间,就算密码没有过期,用户也就失效无法使用了。
第九列:保留(暂时无意义)
1.3 /etc/group 组信息文件
第一列: 组名 第二列:组密码位 第三列:GID 第四列:此组中支持其他用户,附加组是此组的用户。
初始组:每个用户初始组只能有一个,一般都是和用户名相同的组作为初始组。
附加组:每个用户可以属于多个附加组。
组密码文件:/etc/gshadow 如果用户组设定了组管理员,用户组设定组密码,组密码就是这个文件。
用户家目录
用户的邮箱目录:/var/spool/mail
用户模板目录:/etc/skel/
二 用户管理命令
2.1 手工删除用户
手工删除用需要删除以下文件目录里面相应的用户文件、信息,如果删除后还能正常建立说明删除干净。
/etc/passwd /etc/shadow /etc/group /etc/gshadow /home/user1
/var/spool/mail/用户名 邮箱目录
2.2 useradd 命令
useradd 选项 用户名
选项:
-u 550 指定 UID
-g 组名 指定初始组 不要手工指定
-G 组名 指定附加组,把用户加入组,使用附加组
-c 说明 添加说明
-d 目录 手工指定家目录,目录不需要事先建立
-s shell /bin/bash.
2.3 useradd 默认值
useradd添 加 用 户 时 参 考 的 默 认 值 文 件 主 要 有 两 个 , 分 别 是 /etc/default/useradd 和
/etc/login.defs
/etc/default/useradd
解释如下:
GROUP=100 建立用户的默认组,用户的初始组就是 GID 为 100 的这个用户组。
HOME=/home 用户的家目录的默认位置,所以所有的新建用户的家目录默认都在/home/下。
INACTIVE=-1 就是密码过期后的宽限天数,也就是/etc/shadow 文件的第七个字段。如果 0,代表密码过期后立即失效;如果是-1,则代表密码永远不会失效。这里默认值是-1。
EXPIRE= 密码失效时间,也就是/etc/shadow 文件的第八个字段。这里也是使用时间戳来表示日期的。默认值是空,表示新建用户没有失效时间。
SHELL=/bin/bash 表示所有建立用户都具备 shell 的权限。
SKEL=/etc/skel 表示定义用户的模板目录的位置,/etc/skel/目录中的文件都会复制到新建用户的家目录当中。
CREATE_MAIL_SPOOL=yes 表示用户建立邮箱,默认是创建,也就是说所有的新建用户系统都会新建一个邮箱,放在/var/spool/mail/下和用户名相同。
/etc/login.defs
1 #
2 # Please note that the parameters in this configuration file control the
3 # behavior of the tools from the shadow-utils component. None of these
4 # tools uses the PAM mechanism, and the utilities that use PAM (such as the
5 # passwd command) should therefore be configured elsewhere. Refer to
6 # /etc/pam.d/system-auth for more information.
7 #
8
9 # *REQUIRED*
10 # Directory where mailboxes reside, _or_ name of file, relative to the
11 # home directory. If you _do_ define both, MAIL_DIR takes precedence.
12 # QMAIL_DIR is for Qmail
13 #
14 #QMAIL_DIR Maildir
15 MAIL_DIR /var/spool/mail
16 #MAIL_FILE .mail
17
18 # Password aging controls:
19 #
20 # PASS_MAX_DAYS Maximum number of days a password may be used.
21 # PASS_MIN_DAYS Minimum number of days allowed between password changes.
22 # PASS_MIN_LEN Minimum acceptable password length.
23 # PASS_WARN_AGE Number of days warning given before a password expires.
24 #
25 PASS_MAX_DAYS 99999
26 PASS_MIN_DAYS 0
27 PASS_MIN_LEN 5
28 PASS_WARN_AGE 7
29
30 #
31 # Min/max values for automatic uid selection in useradd
32 #
33 UID_MIN 500
34 UID_MAX 60000
35
36 #
37 # Min/max values for automatic gid selection in groupadd
38 #
39 GID_MIN 500
40 GID_MAX 60000
41
42 #
39 GID_MIN 500
40 GID_MAX 60000
41
42 #
43 # If defined, this command is run when removing a user.
44 # It should remove any at/cron/print jobs etc. owned by
45 # the user to be removed (passed as the first argument).
46 #
47 #USERDEL_CMD /usr/sbin/userdel_local
48
49 #
50 # If useradd should create home directories for users by default
51 # On RH systems, we do. This option is overridden with the -m flag on
52 # useradd command line.
53 #
54 CREATE_HOME yes
55
56 # The permission mask is initialized to this value. If not specified,
57 # the permission mask will be initialized to 022.
58 UMASK 077
59
60 # This enables userdel to remove user groups if no members exist.
61 #
62 USERGROUPS_ENAB yes
63
64 # Use SHA512 to encrypt password.
解释如下:
MAIL_DIR /var/spool/mail
表示:新建用户的默认邮箱位置
PASS_MAX_DAYS 99999
指定密码有效期,也就是/etc/shadow文件第五列,代表多少天之后必须修改密码。
PASS_MIN_DAYS 0
指定两次密码修改间隔时间,也就是/etc/shaolw 文件第4列字段,默认值0。
PASS_MIN_LEN 5
代表密码的最小长度,默认不小于 5 位。但是我们现在用户登录时验证已经被 PAM 模块取代,
所以这个选项并不生效。
PASS_WARN_AGE 7
代表密码修改到期前的警告天数,也就是/etc/shadow 文件的第六字段,默认值是 7 天。
UID_MIN 500
UID_MAX 60000
表示最小 UID 和最大的 UID 的范围。我们 2.6.x 内核开始,Linux 用户的 UID最大可以支持 2^32 ,如果超过60000可以手工修改。
GID_MIN 500
GID_MAX 60000
两行指定了 GID 的最小值和最大值之间的范围。
CREATE_HOME yes
指定建立用户时是否自动建立用户的家目录,默认是建立。
UMASK 077
指定的是建立的用户家目录的默认权限,因为 umask 值是 077,所以新建的用户家目录的权
限是 700。
USERGROUPS_ENAB yes
指定的是使用命令 userdel 删除用户时,是否删除用户的初始组,默认是删除。
ENCRYPT_METHOD SHA512
指定 Linux 用户的密码使用 SHA512 散列模式加密。
3 设定密码
[root@localhost ~]#passwd [选项] 用户名
选项:
-l: 暂时锁定用户。仅 root 用户可用
-u: 解锁用户。仅 root 用户可用
--stdin: 可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用
[root@localhost ~]#passwd
#passwd 直接回车代表修改当前用户的密码
也可以使用字符串作为密码:
[root@localhost ~]# echo "123" | passwd --stdin user1
更改用户 user1 的密码 。
可以通过命令,把密码修改日期归零(shadow 第 3 字段).这样用户一登陆就要修改密码
[root@localhost ~]# chage -d 0 user1
4 用户信息修改
usermod 命令是修改已经添加的用户的信息的,命令如下:
[root@localhost ~]#usermod [选项] 用户名
选项:
-u UID: 修改用户的 UID
-d 家目录: 修改用户的家目录。家目录必须写绝对路径
-c 用户说明: 修改用户的说明信息,就是/etc/passwd 文件的第五个字段
-g 组名: 修改用户的初始组,就是/etc/passwd 文件的第四个字段
-G 组名: 修改用户的附加组,其实就是把用户加入其他用户组
-s shell: 修改用户的登录 Shell。默认是/bin/bash
-e 日期: 修改用户的失效日期,格式为“YYYY-MM-DD”。也就是/etc/shadow
文件的第八个字段
-L: 临时锁定用户(Lock)
-U: 解锁用户(Unlock)
5 删除用户
[root@localhost ~]# userdel [-r] 用户名
选项:
-r: 在删除用户的同时删除用户的家目录
6 切换用户身份
su 命令可以切换成不同的用户身份,命令格式如下:
[root@localhost ~]# su [选项] 用户名
选项:
-: 选项只使用“-”代表连带用户的环境变量一起切换
-c 命令: 仅执行一次命令,而不切换用户身份
三 组管理命令
1 添加用户组:groupadd
[root@localhost ~]# groupadd [选项] 组名
选项:
-g GID: 指定组 ID
2 删除用户组:groupdel
[root@localhost ~]#groupdel 组名
3 把用户添加进组或从组中删除:gpasswd
[root@localhost ~]# gpasswd [选项] 组名
选项:
-a 用户名: 把用户加入组
-d 用户名: 把用户从组中删除