Linux组队学习03
今天是Linux组队学习的第三次打开,主要学习了用户和组的概念,教程链接:https://github.com/datawhalechina/team-learning-program/blob/master/Linux/3.Linux%E7%94%A8%E6%88%B7%E5%92%8C%E7%BB%84%E7%AE%A1%E7%90%86.md
1.用户和组的介绍
用户
首先我们介绍什么是用户,正如同我们常用的windows有用户的概念一样,linux也有用户的概念,各个用户对应的使用目录也是不同的,通常目录为 “~/home/用户名”,Linux中的用户分为普通用户和超级用户,在Linux中有许多命令需要超级用户进行执行,通常需要在终端输入命令时加入 sudo 关键字,超级用户即系统管理员root。
组
除了用户,Linux中还有组的概念,组也分为主用户组和此用户组,主用户组即root用户对应的用户组,当用户被创建之后默认属于同名用户组,即主用户组,后来再将该用户加入其他用户组的话,加入的用户组为该用户的次用户组。
2.用户与组的ID
系统为了方便判断当前的用户和组的归属,会用UID和GID分别存储用户的相关信息,他们分别存储在/etc/passwd和/etc/group中。
~ ➤ sudo useradd datawhale
~ ➤ grep datawhale /etc/passwd
datawhale:x:1001:1001::/home/datawhale:/bin/sh
#用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
~ ➤ grep datawhale /etc/group
datawhale:x:1001:
主目录:用户的起始工作目录,就是前面描述的~/home/用户名”相关目录
注释性描述:这个字段并没有什么实际的用途。在不同的Linux 系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。
登陆shell:用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
UID的排序是逐渐上升的。
~ ➤ sudo useradd datawhale1
~ ➤ grep datawhale1 /etc/passwd
datawhale1:x:1002:1002::/home/datawhale1:/bin/sh
系统管理员的UID为0
~ ➤ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
3.用户与组的管理命令
添加用户:
useradd 选项 用户名
选项 | 作用 |
---|---|
-u | 手工指定用户的 UID,注意 UID 的范围(不要小于 500)。 |
-d | 手工指定用户的主目录。主目录必须写绝对路径,而且如果需要手工指定主目录,则一定要注意权限; |
-c | 手工指定/etc/passwd文件中各用户信息中第 5 个字段的描述性内容,可随意配置; |
-g | 手工指定用户的初始组。一般以和用户名相同的组作为用户的初始组,在创建用户时会默认建立初始组。 |
-G | 指定用户的附加组。我们把用户加入其他组,一般都使用附加组; |
-s | 手工指定用户的登录 Shell,默认是 /bin/bash; |
-e | 指定用户的失效日期 |
-o | 允许创建的用户的 UID 相同。例如,执行 “useradd -u 0 -o usertest” 命令建立用户 usertest,它的 UID 和 root 用户的 UID 相同,都是 0; |
-m | 创建用户时强制建立用户的家目录。在建立系统用户时,该选项是默认的; |
-r | 创建系统用户 |
删除用户
userdel 选项 用户名
选项 | 作用 |
---|---|
-r | 选项表示在删除用户的同时删除用户的家目录 |
修改用户
usermod 选项 用户名
选项 | 说明 |
---|---|
-c | -用户说明 |
–d 主目录 | 修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径; |
–e 日期 | 修改用户的失效曰期,格式为 “YYYY-MM-DD”,即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段; |
–g 组名 | 修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID); |
–u UID | 修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID); |
–G 组名 | 修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件; |
–l 用户名 | 修改用户名称; |
–L | 临时锁定用户(Lock); |
–U | 解锁用户(Unlock),和 -L 对应; |
-s | shell 修改用户的登录 Shell,默认是 /bin/bash。 |
修改用户密码
passwd 选项 用户名
选项 | 作用 |
---|---|
-l | 暂时锁定用户,该选项会在 /etc/shadow 文件中指定用户的加密密码串前添加 “!”,使密码失效。仅 root 用户可用; |
-u | 解锁用户,和 -l 选项相对应,也是只能 root 用户使用; |
-d | 使账号无口令,删除密码 |
-f | 强迫用户下次登录时修改口令 |
-S | 查询用户密码的状态,显示密码信息,也就是 /etc/shadow 文件中此用户密码的内容。仅 root 用户可用; |
-g | 修改群组密码 |
-n 天数 | 设置该用户修改密码后,多长时间不能再次修改密码,也就是修改 /etc/shadow 文件中各行密码的第 4 个字段; |
-x 天数 | 设置该用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段; |
-w 天数 | 设置用户密码过期前的警告天数,对于 /etc/shadow 文件中各行密码的第 6 个字段; |
-i 日期 | 设置用户密码失效日期,口令过期后多少天停用账户,对应 /etc/shadow 文件中各行密码的第 7 个字段 |