
一、用户与组管理1. 用户管理CentOS 7.9用户分为以下三类超级用户root拥有系统的最高权限只用于管理操作uid 和 gid 都是 0。普通用户由 root 用户创建有受限的权限通常只能操作自己的文件和目录uid 1000。程序用户用于运行系统服务不允许登录通常是由系统自动创建的uid 1-999。2. 用户和组组管理是 Linux 中的核心概念通过将用户加入不同的组管理员能够管理访问权限确保系统资源的合理使用。1组账号的分类Linux 系统通过将用户分配到不同的组来实现权限的管理。每个用户至少属于一个组这个组是用户的基本组或私有组。用户还可以属于多个附加组用于共享文件和服务。基本组每个用户必须且只有一个在创建用户时会自动拥有一个与用户名相同的基本组。使用id xxx可查看基本组。附加组可以没有也可以有多个。使用usermod -aG AAA aaa可将 aaa 加入 AAA 附加组。2UID 和 GIDUID用于唯一标识用户系统通过 uid 来管理文件和权限类似于每个人的身份证。系统用户为 1-999CentOS7、1-499CentOS6。GID用于唯一标识用户组系统通过 GID 来控制对共享资源的访问权限。每个用户都属于至少一个组该组的 GID 用来标识该组。系统组为 1-999CentOS7、1-499CentOS6普通组为 1000CentOS7、500CentOS6。每个用户至少有一个基本组并可以有多个附加组系统通过 UID 和 GID 来管理访问控制。3总结以root:x:0:0:root:/root:/bin/bash为例bin/bash可以登录系统。sbin/nologin不能登录系统设置程序用户。/etc/passwd中 x 为密码占位符真实密码储存在 /etc/shadow 中。密码使用 SHA-512 等算法进行加密。使用cat /etc/shadow可查看用户密码记录例如HERO:$6$O7isFZJ0$wbCcJxaKOt/QKeoYup0dBkxAyFOELVR44uFq79RmPhURLfrb2FXZlWhR0dqcYJjbvX.32hX.rBNNrEKLFNGY10:20716:0:99999:7:::各字段含义如下用户名密码密文从 1970-01-01 到上次修改密码的总天数密码修改后最少等待多少天才能再次修改0 随时可以改密码密码最长有效期99999 天约等于永久不会过期密码到期前 7 天登录系统就会弹出提醒要求修改密码3. 常用的命令1useradd添加用户账户-u指定用户的 UID 号要求该 UID 号码未被其他用户使用。-d指定用户的宿主目录位置当与 -M 一起使用时不生效。-e指定用户的账户失效时间可使用 YYYY-MM-DD 的日期格式。-g指定用户的基本组名或使用 GID 号。-G指定用户的附加组名或使用 GID 号。-M不建立宿主目录即使 /etc/login.defs 系统配置中已设定要建立宿主目录。-s指定用户的登录 Shell。案例useradd 777 id 777 tail -l /etc/passwd ls /home2passwd更改密码-d清空指定用户的密码仅使用用户名即可登录系统。-l锁定用户账户。-S查看用户账户的状态是否被锁定。-u解锁用户账户。非交互式设置密码echo 密码 | passwd --stdin 用户3userdel删除用户-r递归删除。4usermod修改用户组4. 账号文件重要1账号初始配置的作用当使用 useradd 创建新用户时系统会从 /etc/skel/ 复制默认配置文件到新用户的家目录。常见文件.bash_profile登录时执行的命令。.bashrc每次加载 bash 时执行包括登录。.bash_logout用户退出登录时执行。/etc/bashrc、/etc/profile 是系统全局配置文件在这里写的别名、环境变量系统里所有用户登录 Shell 都会生效。5. 组管理1组账号一般不设密码组账号文件相关配置文件/etc/group保存组账号名称、GID 号、组成员等基本信息。/etc/gshadow保存组账号的加密密码字符串等信息日常很少使用。一个组包含哪些附加成员在 /etc/group 的最后一个字段体现格式为组名:密码占位符:GID:附加组成员列表。2groupadd添加组账号3gpasswd添加到组把 Tom 和 Jerry 添加到 group1gpasswd -M JerryTom group1 grep group1 /etc/group4groupdel删除组账号6. 查询账号信息groups查询用户所属的组。id查询用户身份识别标识。finger查询用户账号的详细信息。w、who、users查询已登录到主机的用户信息。二、su 命令切换用户1. 用途su 是 Substitute User 的缩写用于切换用户。2. 密码验证切换用户时需要验证目标用户的密码。三、文件权限1. 归属所有权属主拥有该文件或目录的用户账号。属组拥有该文件或目录的组账号。2. 查看权限以 - 开头表示普通文件777 是最高权限分别对应属主用户、属组和其他用户。1第 1 个字符d目录b块设备文件c文字设备文件l链接文件-普通文件2第 2-4 位文件属主用户User对该文件的访问权限。3第 5-7 位文件属组内各用户成员Group对该文件的访问权限。4第 8-10 位其他用户Other对该文件的访问权限。5第 11 位SELinux 相关标识。四、设置文件和目录的权限1. chmod 命令1字符方式语法格式chmod ugoa - rwx 文件或目录u用户g组o其他用户a所有用户2数字方式语法格式chmod αβγ 文件或目录数字 421 分别对应 r/w/x即读/写/执行权限。五、设置文件和目录的归属1. chown 命令属主修改文件属主。属组修改文件属组。属主属组同时修改属主和属组。-R对整个目录做递归修改。六、sudo 提权sudo 用于临时提权不需要知道 root 密码由管理员提前进行管理授权。1. 参数-l列出用户在主机上可用和被禁止的命令。-v验证用户的时间戳。-u指定某个特定的用户。-k删除当前时间戳下一个 sudo 命令要求提供密码。2. 用户组设置 sudo 提权用户User直接授权指定的用户名或采用“%组名”的形式授权一个组的所有用户。主机MACHINE使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同一份 sudoers 文件一般设为 localhost 或者实际的主机名即可。命令COMMANDS允许授权的用户通过 sudo 方式执行的特权命令需填写命令程序的完整路径多个命令之间以逗号“,”进行分隔。七、SSH 免密钥登录配置 SSH 免密钥登录可以简化远程登录流程提升操作效率。