Linux基础知识之用户和组
01
1.什么是用户
·用户账户为不同人员和运行的程序之间提供安全边界
·用户使用 username 进行标识,操作系统为其分配唯一标识号(UID),用户可能含有密码
·系统中的每个程序都以一个特定用户运行,每个文件都有一个特定用户作为所有者
·用户帐户有三种主要类型:超级用户(Superuser)、系统用户(System users)和普通用户(Regular users)
·superuser 就是 root 用户,UID=0,具有系统的最高权限
·system user 用于系统管理,例如运行服务,不需要用于系统登录
·regular user 供用户进行日常系统管理,通常具有权限限制
可以使用 id 命令查看当前登录的用户或某用户信息
[student@workstation ~]$ id
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
ls -l 命令查看文件所属用户, ls -ld 命令查看目录所属用
[student@workstation ~]$ ls -l
drwxr-xr-x. 2 student student 6 May 19 2023 Desktop
使用 ps 查看进程信息, -a 选项显示当前 terminal 进程, -u 选项显示进程关联的用户信息。
[student@workstation ~]$ ps -au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1530 0.0 0.0 220984 1084 ttyS0 Ss+ 05:14 0:00 /sbin/agetty -o -p
-- \u --keep-baud 115200,57600,38400,9600 - vt22
student 1620 0.0 0.1 377696 6792 tty2 Ssl+ 05:22 0:00
/usr/libexec/gdm-x-session --register-session --run-script gnome-se
虽然命令中显示用户名,但是系统中使用 UID 追踪用户, /etc/passwd 文件定义用户名和 UID 的关联关系
[student@workstation ~]$ grep student /etc/passwd
student:x:1000:1000:Student User:/home/student:/bin/bash
·user01:此用户的用户名
·x:用户的加密密码历来存储在这里;现在这是一个占位符
·1000:此用户账户的 UID 编号
·1000:此用户账户的主要组的 GID 编号
·User One:此用户的简短注释、描述或真实姓名
·/home/user01:用户的主目录,以及登录 shell 启动时的初始工作目录
·/bin/bash:此用户的默认 shell 程序,在登录时运行。一些账户使用 /sbin/nologin 来禁止该账户进行交互式登录
02
2.什么是组
·组是用户的集合,组中用户共享文件和其他系统资源的访问权限
·组有 group name 和 GID,匹配关系保存在 /etc/group 文件中[student@workstation ~]$ grep wheel /etc/groupwheel:x:10:student
wheel:此组的名称x:以前的组密码字段,现在是一个占位符10:此组的 GID 编号student:属于此组成员的用户列表,作为一个补充组
2.1 主要组和补充组
·每个用户只属于一个 primary group,对应 GID 在 /etc/passwd 中
·创建新用户时同时创建同名的 primary group,用户作为此组的唯一用户
·用户还可以属于 supplementary groups,对应 GID 在 /etc/group 中
·同一组中的不同用户拥有组对文件的相同权限
·id 命令可以显示用户的组信息
[student@workstation ~]$ id
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
03
3.管理本地用户帐户
3.1 创建用户
·useradd 创建新用户及其组,并创建用户家目录和用户信息(暂无密码,无法登录)
·useradd \texttt{--help} 显示选项和参数,与 usermod 命令的选项参数一致
·/etc/login.defs 中定义新用户的 UID 范围和密码生命周期
表: useradd 以及 usermod 参数
选项 | 用法 |
-a, --append | 与 -G 选项一起使用将补充组添加到用户当前的组成员集合中 |
-c, --comment COMMENT | 将 COMMENT 文本添加到注释字段 |
-d, --home HOME_DIR | 为用户账户指定一个主目录 |
-u, --uid | 用户 ID |
-g, --gid GROUP | 为用户账户指定主要组 |
-L, --lock | 锁定用户账户 |
-m, --move-home | 将用户的主目录移动到新的位置。您必须将它与 -d 选项搭配使用 |
-s, --shell SHELL | 为用户账户指定特定的登录 shell |
-U, --unlock | 解锁用户账户 |
3.2 删除用户
·userdel 删除用户,但是保留家目录
·userdel -r 删除用户和家目录
·rhel7 开始,普通用户的 UID 从 1000 开始
·find / -nouser -o -nogroup 可以搜索不属于任何用户和组的文件
3.3 修改用户
usermod, 其用法与参数参考 useradd
/etc/login.defs 中定义新用户的 UID 范围和密码生命周期
04
4.UID 范围
·UID 0 永远分配给 root
·UID 1-200 分配给 system users(红帽的系统服务)
·UID 201-999 分配给 system users,供文件系统中没有自己的文件的系统进程使用。通常在安装需要它们的软件时,从可用池中动态分配它们。程序以这些 "无特权" 系统用户身份运行,它们仅访问运行所需的资源
·UID 1000+ 分配给普通非特权用户
05
5.管理本地组帐户
5.1 创建组
·groupadd 用于创建组groupadd -g 10000 group01 #创建普通组,注意GIDgroupadd -r group02 #创建系统组,注意GID
5.2 修改组
·groupmod 用于修改组groupmod -n group0022 group02
5.3 删除组
·groupdel 命令用于管理组。groupdel group0022
5.4 从命令行更改组成员
·usermod -g 修改用户的 primary group
[root@workstation ~]# id user02
uid=1006(user02) gid=1008(user02) groups=1008(user02)
[root@workstation ~]# usermod -g group01 user02
[root@workstation ~]# id user02
uid=1006(user02) gid=10000(group01) groups=10000(group01)
·usermod -aG 修改用户的 supplementary group 补充组, -a 是 append 模式,如果只有 -G ,则是修改 supplementary group
[root@workstation ~]# id user03
uid=1007(user03) gid=1009(user03) groups=1009(user03)
[root@workstation ~]# usermod -aG group01 user03
[root@workstation ~]# id user03
uid=1007(user03) gid=1009(user03) groups=1009(user03),10000(group01)
→相关文章推荐:
-
Linux基础知识之man手册页
-
Linux基础知识之Linux文件系统权限
-
Linux基础知识之Shell命令行及终端中的快捷键
-
Linux基础知识之管理用户密码
-
Linux基础知识之使用 Shell 扩展匹配文件名
-
超适合新手的基础Linux命令
更多linux相关学习,欢迎关注视频号:厦门微思网络
END
微思网络,始于2002年
专业IT认证培训22年,面向全国招生!
微思-主要课程有:
*网络技术:华为HCIA/ HCIP/HCIE;思科CCNA/CCNP/CCIE
*Linux技术:红帽 RHCE/RHCA
*K8S&容器:CKA/CKS
*数据库:ORACLE OCP/ OCM ;MySQL ;达梦数据库
*虚拟化:VMware VCP/VCAP
*安全认证:CISP体系/CISSP/ CISA;CCSK;CISAW体系
*管理类:PMP 项目管理;软考中/高项;ITIL体系;Togaf
其他课程如:ACP;Azure...
— Linux文章推荐 —
【资料领取】200个Linux常用命令手册
《鸟哥Linux私房菜》全新完整中文版PDF
40 个简单又有效的 Linux Shell 脚本示例
linux运维必备,100道常见面试题
超强linux学习笔记,值得一看(附PDF下载)
红帽认证有什么优势?速看本文
5 种 Linux 安装包管理工具中文手册!抓紧看!