|NO.Z.00033|——————————|LinuxBasicEnd|——|Linux&用户管理.V03|
Posted yanqi_vip
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了|NO.Z.00033|——————————|LinuxBasicEnd|——|Linux&用户管理.V03|相关的知识,希望对你有一定的参考价值。
一、用户管理命令:添加用户### --- 手工删除用户
~~~ 手工删除用户试验:手工删除,如果可以正常建立用户,证明用户删除干净。
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/home/user1
/var/spool/mail/user1 // 邮箱
### --- useradd 命令
### --- useradd 选项 用户名
### --- 选项:
~~~ -u 550 指定 UID
~~~ -g 组名 指定初始组 不要手工指定
~~~ -G 组名 指定附加组,把用户加入组,使用附加组
~~~ -c 说明 添加说明
~~~ -d 目录 手工指定家目录,目录不需要事先建立
~~~ -s shell /bin/bash.
### --- 例如:
[root@localhost ~]# groupadd lamp1
~~~ 先手工添加 lamp1 用户组,因为我一会要把 lamp1 用户的初始组指定过来,
~~~ 如果不事先建立,会报错用户组不存在
[root@localhost ~]# useradd -u 550 -g lamp1 -G root -d /home/lamp1 \\
-c "test user" -s /bin/bash lamp1
~~~ 建立用户 lamp1 的同时指定了 UID(550),初始组(lamp1),附加组(root),
~~~ 家目录(/home/lamp1),用户说明(test user)和用户登录 shell(/bin/bash)
[root@localhost ~]# grep "lamp1" /etc/passwd /etc/shadow /etc/group
~~~ 同时查看三个文件
/etc/passwd:lamp1:x:550:502:test user:/home/lamp1:/bin/bash
~~~ 用户的 UID、初始组、用户说明、家目录和登录 shell 都和命令手工指定的一致
/etc/shadow:lamp1:!!:15710:0:99999:7:::
~~~ lamp1 用户还没有设定密码
/etc/group:root:x:0:lamp1
~~~ lamp1 用户加入了 root 组,root 组是 lamp1 用户的附加组
/etc/group:lamp1:x:502:
~~~ GID502 的组是 lamp1 组
~~~ 家目录也建立了啊。不需要手工建立家目录
[root@localhost ~]# ll -d /home/lamp1/
drwx------ 3 lamp1 lamp1 4096 1 月
6 01:13 /home/lamp1/
### --- useradd 默认值
### --- useradd 添 加 用 户 时 参 考 的 默 认 值 文 件 主 要 有 两 个 ,
~~~ 分 别 是 /etc/default/useradd 和/etc/login.defs /etc/default/useradd
[root@localhost ~]# vi /etc/default/useradd
~~~ useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
### --- 挨个解释下:
GROUP=100
~~~ 这个选项是建立用户的默认组,也就是说添加每个用户时,
~~~ 用户的初始组就是 GID 为 100 的这个用户组。目前我们采用的机制私有用户组机制。
HOME=/home
~~~ 这个选项是用户的家目录的默认位置,所以所有的新建用户的家目录默认都在/home/下。
INACTIVE=-1
~~~ 这个选项就是密码过期后的宽限天数,也就是/etc/shadow 文件的第七个字段。
~~~ 如果是天数,比如 10 代表密码过期后 10 天后失效;如果是 0,代表密码过期后立即失效;
~~~ 如果是-1,则代表密码永远不会失效。这里默认值是-1,所以所有新建立的用户密码都不会失效。
EXPIRE=
~~~ 这个选项是密码失效时间,也就是/etc/shadow 文件的第八个字段。
~~~ 也就说用户到达这个日期后就会直接失效。当然这里也是使用时间戳来表示日期的。
~~~ 默认值是空,所以所有新建用户没有失效时间,永久有效。
SHELL=/bin/bash
~~~ 这个选项是用户的默认 shell 的。/bin/bash 是 Linux 的标志 shell,
~~~ 所以所有新建立的用户默认都具备 shell 赋予的权限。
SKEL=/etc/skel
~~~ 这个选项就是定义用户的模板目录的位置,
~~~ /etc/skel/目录中的文件都会复制到新建用户的家目录当中。
CREATE_MAIL_SPOOL=yes
~~~ 这个选项定义是否给新建用户建立邮箱,默认是创建,
~~~ 也就是说所有的新建用户系统都会新建一个邮箱,放在/var/spool/mail/下和用户名相同。
### --- /etc/login.defs
[root@localhost ~]# vi /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
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
### --- 我们一行一行解释下文件内容:
MAIL_DIR /var/spool/mail
~~~ 这行指定了新建用户的默认邮箱位置。
~~~ 比如 user1 用户的邮箱是就是/var/spool/mail/user1。
~~~ PASS_MAX_DAYS 99999
~~~ 这行指定的是密码的有效期,也就是/etc/shadow 文件的第五字段。
~~~ 代表多少天之后必须修改密码,默认值是 99999。
PASS_MIN_DAYS 0
~~~ 这行指定的是两次密码的修改间隔时间,也就是/etc/shadow 文件的第四字段。
~~~ 代表第一次修改密码之后,几天后才能再次修改密码。默认值是 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 用户的 UID32UID 是 550,那么下一个创建的用户的 UID 就会从 551 开始,
~~~ 哪怕 500-549 之间的 UID 没有使用(小于 500 的 UID 是给伪用户预留的)。
GID_MIN 500
### --- 最大可以支持 2 这么多,但是真正使用时最大范围是 60000。
~~~ 还要注意如果我手工指定了一个用户的
GID_MAX 60000
~~~ 这两行指定了 GID 的最小值和最大值之间的范围。
CREATE_HOME yes
~~~ 这行指定建立用户时是否自动建立用户的家目录,默认是建立
UMASK 077
~~~ 这行指定的是建立的用户家目录的默认权限,因为 umask 值是 077,
~~~ 所以新建的用户家目录的权限是 700,
~~~ umask 的具体作用和修改方法我们可以参考下一章权限设定章节。
USERGROUPS_ENAB yes
~~~ 这行指定的是使用命令 userdel 删除用户时,是否删除用户的初始组,默认是删除。
ENCRYPT_METHOD SHA512
~~~ 这行指定 Linux 用户的密码使用 SHA512 散列模式加密,这是新的密码加密模式,
~~~ 原先的 Linux只能用 DES 或 MD5 方式加密
所有值使用默认值添加用户:实验专题
### --- 所有值使用默认值添加用户<——
### --- 用户添加用户
[root@server11 ~]# useradd yanqi
[root@server11 ~]# cat /etc/passwd
yanqi:x:1001:1001::/home/yanqi:/bin/bash
### --- 为用户设置密码
[root@server11 ~]# passwd yanqi
New password:
Retype new password:
[root@server11 ~]# cat /etc/shadow
yanqi:$6$ScNDYxzB$OxNktWeWuW4Y0BkbHpqbPTZYmhm9oW7/UN96ZAw0HiK7jp8/3obeQcpgvF6rF31Me0D8X3Wy2V1wCLueFhm5l0:18696:0:99999:7:::
~~~ ——>添加特定值的用户<——生产环境不会使用
[root@server11 ~]# useradd -u 550 -c "test yanqitest" -d /yanqitest -s /bin/bash yanqitest
[root@server11 ~]# cat /etc/passwd
yanqitest:x:550:100cat2:test yanqitest:/yanqitest:/bin/bash
~~~ ——>添加组名<——生产环境中会使用到的
### --- 添加2个用户并把它指定到yanqi组里
~~~ 说明:说明yanqitest1是没有建立的组;若是需要把用户加入到特定组里,建议使用-G
[root@server11 ~]# useradd -g yanqi yanqitest1
[root@server11 ~]# useradd -G yanqi yanqitest2
[root@server11 ~]# cat /etc/passwd
yanqitest1:x:1002:1001::/home/yanqitest1:/bin/bash
yanqitest2:x:1003:1003::/home/yanqitest2:/bin/bash
[root@server11 ~]# cat /etc/group
yanqitest2:x:1003:
### --- ——>useradd的默认值<——
[root@server11 ~]# cat /etc/default/useradd
GROUP=100 // 建立用户的默认组
HOME=/home // 用户家目录位置
INACTIVE=-1 // 密码过去后的宽限天数
EXPIRE= // 密码的失效时间
SHELL=/bin/bash // 使用bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes // 给每一个用户创建邮箱
[root@server11 ~]# cat /etc/login.defs
PASS_MAX_DAYS 99999 // 最大密码间隔时间
PASS_MIN_DAYS 0 // 密码最小间隔时间
PASS_MIN_LEN 5 // 最小密码长度
PASS_WARN_AGE 7 // 密码修改天数
UID_MIN 1000 // UID的设定范围
UID_MAX 60000
SYS_UID_MIN 201 // GID的设定范围
SYS_UID_MAX 999
二、设定密码
### --- 设定密码
### --- 选项:
~~~ -l: 暂时锁定用户。仅 root 用户可用
~~~ -u: 解锁用户。仅 root 用户可用
~~~ --stdin: 可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用
[root@localhost ~]#passwd [选项] 用户名
~~~ passwd 直接回车代表修改当前用户的密码
~~~ 也可以使用字符串作为密码:
[root@localhost ~]#passwd
~~~ 更改用户 user1 的密码 。
~~~ 可以通过命令,把密码修改日期归零(shadow 第 3 字段).这样用户一登陆就要修改密码,例如:
[root@localhost ~]# echo "123" | passwd --stdin user1
[root@localhost ~]# chage -d 0 user1
超级用户可以修改任何用户的密码:实验专题
### --- 超级用户可以修改任何用户的密码
### --- 普通用户只能修改自己的密码
[yanqi@server11 ~]$ passwd // 普通用户修改自己的密码,直接使用passwd即可
(current) UNIX password:
New password:
### --- 锁定用户
[root@server11 ~]# passwd -l yanqi
Locking password for user yanqi.
passwd: Success
[root@server11 ~]# cat /etc/shadow
yanqi:!!$6$ScNDYxzB$OxNktWeWuW4Y0BkbHpqbPTZYmhm9oW7/UN96ZAw0HiK7jp8/3obeQcpgvF6rF31Me0D8X3Wy2V1wCLueFhm5l0:18696:0:99999:7:::
### --- 在密码位前加入2个感叹号;锁定密码
### --- 解锁用户
[root@server11 ~]# passwd -u yanqi
Unlocking password for user yanqi.
passwd: Success
[root@server11 ~]# cat /etc/shadow
yanqi:$6$ScNDYxzB$OxNktWeWuW4Y0BkbHpqbPTZYmhm9oW7/UN96ZAw0HiK7jp8/3obeQcpgvF6rF31Me0D8X3Wy2V1wCLueFhm5l0:18696:0:99999:7:::
### --- 使用字符串设置密码
[root@server11 ~]# echo "123" | passwd --stdin yanqi
Changing password for user yanqi.
passwd: all authentication tokens updated successfully.
### --- 修改用户的密码修改时间改为0
[root@server11 ~]# chage -d 0 yanqi
yanqi:$6$.brNdrPm$KYibkCHjlTOnvCO89WY.Sy39tIpVlod6tf.PGAti5NOVgFFDoiXBatzSK6kdhujS6O7GvNWW3kLuOE3aEDIQ00:0:0:99999:7:::
### --- 重新登录yanqi用户,会让你强制更改密码
WARNING! The remote SSH server rejected X11 forwarding request.
You are required to change your password immediately (root enforced)
Last login: Thu Feb 4 10:06:47 2021 from 20.20.20.240
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user yanqi.
Changing password for yanqi.
(current) UNIX password: // 强制修改新的密码
[root@server11 ~]# cat /etc/shadow
yanqi:$6$NmOAT5Cs$jZ84jnrfWzMy0mBjON6N8a.NLnaapYPRag2BXBnENNqRZjWujhJO8T4LOigM9GxcJh0Rp.bYN7On20BkU2TOv/:18696:0:99999:7:::
三、用户信息修改
### --- 用户信息修改
### --- 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)
~~~ 有学员突发奇想,问超哥,那用户可以修改用户名吗?当然可以:
[root@localhost ~]# usermod [选项] 用户名
### --- 改名
### --- 但是真不建议改名,这样及其容易把管理员自己搞晕菜,建议删除旧用户,再建立新用户!
[root@localhost ~]# usermod -l 新名 旧名
用户信息修改:实验专题
### --- 用户信息修改:实验专题
### --- 修改已存在的用户到特定组里
### --- 将yanqi1和yanqi2添加到yanqi组里
[root@server11 ~]# usermod -G yanqi yanqi1 // 将yanqi1用户添加到yanqi组里
[root@server11 ~]# usermod -G yanqi yanqi2 // 将yanqi2用户添加到yanqi组里
[root@server11 ~]# cat /etc/group
yanqi:x:1001:yanqi1,yanqi2
四、删除用户
### --- 删除用户
### --- 选项:
~~~ -r: 在删除用户的同时删除用户的家目录
[root@localhost ~]# userdel [-r] 用户名
删除用户:实验专题
### --- 删除用户:实验专题
[root@server11 ~]# ll /home/
drwx------ 3 test test 78 Mar 10 20:46 test
drwx------ 3 yanqi yanqi 78 Mar 10 20:37 yanqi
drwx------ 3 yanqi1 yanqi1 78 Mar 10 20:39 yanqi1
drwx------ 3 yanqi2 yanqi2 78 Mar 10 20:39 yanqi2
### --- 删除用户
[root@server11 ~]# userdel -r test // 删除用户-r同步删除用户家目录
五、切换用户身份
### --- 切换用户身份
### --- su 命令可以切换成不同的用户身份,命令格式如下:
### --- 选项:
~~~ -: 选项只使用“-”代表连带用户的环境变量一起切换
~~~ -c 命令: 仅执行一次命令,而不切换用户身份
~~~ “-”不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量。
[root@localhost ~]# su [选项] 用户名
切换用户身份:实验专题
### --- 切换用户身份:实验专题
[root@server11 ~]# su yanqi
[yanqi@server11 ~]$ su root // 直接写入root环境变量不会发生变化
Password: 空格
[root@server11 ~]# env
USER=yanqi
[yanqi@server11 ~]$ su - root // 和环境变量一起切换
[root@server11 ~]# env
USER=root
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warmd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
以上是关于|NO.Z.00033|——————————|LinuxBasicEnd|——|Linux&用户管理.V03|的主要内容,如果未能解决你的问题,请参考以下文章