root:x:0:0:root:/root:/bin/bash
第一列: 用户名
第二列: 密码位
第三列: 用户 ID
root:$1$KhnBfFyK$0G/sKHf50fT9fEHA9zr2f0::0:99999:7:::
第一列: 用户名
第二列: 加密密码 我们也可以在密码前人为的加入“!”或“”改变加密值让密码暂时失效,使这个用户无法登陆,达到暂时禁止用户登录的效果。注意所有伪用户的密码都是“!!”或“”,代表没有密码是不能登录的。当然我新创建的用户如果不设定密码,它的密码项也是“!!”,代表这个用户没有密码,不能登录。
第三列: 密码最近更改时间, 从1970 年 1 月 1 日算起,按天来算,我的为空,代表创建后就没改过密码。
第四列: 两次密码的修改间隔时间(和第 3 字段相比,为0代表没有限制。
第五例: 密码有效期(和第 3 字段相比)
第六列: 密码修改到期前的警告天数(和第 5 字段相比)
第七列: 密码过期后的宽限天数(和第 5 字段相比)
第八列: 密码失效时间,这里同样要写时间戳,也就是用 1970 年 1 月 1 日进行时间换算。如果超过了失效时间,就算密码没有过期,用户也就失效无法使用了
第九列: 保留
root:x:0:root
第一列: 组名
第二列: 组密码位
第三列: GID
第四列: 此组中支持的其他用户.附加组是此组的用户
初始组:每个用户初始组只能有一个,初始组只能有一个,一般都是和用户名相同的组作为 初始组
附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/home/user1
/var/spool/mail/user1 邮箱
useradd 选项 用户名
选项:
-u 550 指定 UID
-g 组名 指定初始组 不要手工指定
-G 组名 指定附加组,把当前用户添加到某一个用户的附加组中。
-c 说明 添加说明
-d 目录 手工指定家目录,目录不需要事先建立
-s 指定shell,如 -s /bin/bash
useradd 添加用户时参考的默认值文件主要有两个,分别是/etc/default/useradd 和 /etc/login.defs
1)/etc/default/useradd文件
# useradd defaults file
GROUP=100 #这个选项是建立用户的默认组,也就是说添加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。
HOME=/home #用户家目录
INACTIVE=-1 #这个选项就是密码过期后的宽限天数,也就是/etc/shadow 文件的第七个字段。如果是天数,比 如 10 代表密码过期后 10 天后失效;如果是 0,代表密码过期后立即失效;如果是-1,则代表密码永远不会失效。
EXPIRE= #这个选项是密码失效时间,也就是/etc/shadow 文件的第八个字段。也就说用户到达这个日期后 就会直接失效。当然这里也是使用时间戳来表示日期的。默认值是空,所以所有新建用户没有失效时间,永久有效。
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
2)/etc/login.defs
# 这个文件有些注释,把注释 删除掉,文件内容就变成下面这个样子了
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7
密码最长有效期 最小有效期 最小长度 最大长度
UID_MIN 500 UID_MAX 60000
普通最小用户id 普通最大用户id
GID_MIN 500 GID_MAX 60000
普通最小组id 普通最大组id
CREATE_HOME yes
是否自动创建用户家目录
UMASK 077
这行指定的是建立的用户家目录的默认权限
USERGROUPS_ENAB yes
这行指定的是使用命令 userdel 删除用户时,是否删除用户的初始组,默认是删除
ENCRYPT_METHOD SHA512
密码加密方式
直接执行passwd,再输入两次密码就行。
root user1
再输入两次密码就行
[root@localhost ~]#usermod [选项] 用户名
选项:
-u UID: 修改用户的 UID
-d 家目录: 修改用户的家目录。家目录必须写绝对路径
-c 用户说明: 修改用户的说明信息,就是/etc/passwd 文件的第五个字段
-g 组名: 修改用户的初始组,就是/etc/passwd 文件的第四个字段
-G 组名: 修改用户的附加组,其实就是把用户加入其他用户组
-s shell: 修改用户的登录 Shell。默认是/bin/bash
-e 日期: 修改用户的失效日期,格式为“YYYY-MM-DD”。/etc/passwd文件的第八个字段
-L: 临时锁定用户(Lock)
-U: 解锁用户(Unlock)
-l: 改名 格式 usermod -l newname oldname
[root@localhost ~]# userdel [-r] 用户名
选项:
-r: 在删除用户的同时删除用户的家目录
[root@localhost ~]# su [选项] 用户名
选项:
-: 选项只使用“-”代表连带用户的环境变量一起切换
-c 命令: 仅执行一次命令,而不切换用户身份
[root@localhost ~]# groupadd [选项] 组名
选项:
-g GID: 指定组 ID
[root@localhost ~]#groupdel 组名
[root@localhost ~]# gpasswd [选项] 组名
选项:
-a 用户名: 把用户加入组
-d 用户名: 把用户从组中删除
例如:把用户love2添加到love1组中。
[root@love2 test]# gpasswd -a love2 love1
Adding user love2 to group love1
更改当前用户的有效组
[root@localhost ~]# groupadd group1 # 添加组 group1
[root@localhost ~]# gpasswd -a user1 group1 # 把 user1 用户加入 group1 组
Adding user user1 to group group1
[root@localhost ~]# su – user1 # 切换成 user1 身份
[user1@localhost ~]$ touch test1 # 创建文件 test1
[user1@localhost ~]$ ll test1
-rw-rw-r-- 1 user1 user1 0 1 月 14 05:43 test1 #test1 文件的默认属组是 user1 组
[user1@localhost ~]$ newgrp group1 # 切换 user1 用户的有效组为group1组
[user1@localhost ~]$ touch test2 # 创建文件 test2
[user1@localhost ~]$ ll test2
-rw-r--r-- 1 user1 group1 0 1 月 14 05:44 test2 #test2 文件的默认属组是 group1 组
#其实 newgrp 就是切换用户的组身份。
原文:https://www.cnblogs.com/hjnzs/p/11961737.html