Linux 文件权限与用户组管理+练习
Linux 安全基础用户账户体系用户核心标识1.UID用户 ID数字唯一标识用户root 管理员固定 UID0系统服务账号 UID500普通新建用户 UID 从 500/1000 开始2.GID组 ID用户所属主组数字编号3.两大核心用户配置文件1/etc/passwd所有用户公开基础信息所有人可读一行 7 个字段格式用户名:x:UID:GID:备注:家目录:默认shell示例zhangzy:x:1165:1165:,,,:/home/zhangzy:/bin/bashx密码占位符真实加密密码存放在 /etc/shadow2/etc/shadow仅 root 可读存储加密密码一行 9 个字段用户名、加密密码、密码修改天数、最小改密间隔、最大有效期、过期提醒天数、过期禁用天数、账户过期日期、预留字段用户管理全套命令root 权限执行1.创建用户 useradduseradd -m 用户名自动创建家目录复制 /etc/skel 环境配置文件.bashrc/.profile 等useradd -D查看新建用户系统默认配置家目录、默认组、shell、skel 路径常用参数| 参数 | 功能 || ---- | ---- || -c 备注 | 添加用户说明信息 || -d 路径 | 指定自定义家目录 || -g 组 | 指定用户主组 || -G 组列表 | 添加附加附属组 || -s /bin/dash | 指定登录 shell || -u UID | 手动指定 UID || -r | 创建系统账号无家目录 |2.删除用户 userdeluserdel 用户名仅删除 passwd/shadow 账户信息保留家目录文件userdel -r 用户名删除账户 同步删除家目录、邮件目录谨慎使用3.修改用户信息 usermod通用参数和 useradd 大部分通用-l 新用户名 旧用户名修改登录名-L锁定账户禁止登录-U解锁账户-g 修改主组-G 覆盖附加组列表4.密码管理passwd修改自己密码passwd 用户名root修改他人密码passwd -e 用户名强制用户下次登录修改密码chpasswd 批量改密echo user:123456 | chpasswd5.专项修改工具chsh -s /bin/dash 用户名修改登录 shell必须写完整路径chfn修改 /etc/passwd 备注字段姓名、电话等chage管理账户密码有效期、过期时间Linux 用户组管理组配置文件 /etc/group一行 4 字段组名:占位符x:GID:组内所有用户查看用户所属组grep 用户名 /etc/group组操作命令1.创建组 groupadd 组名2.修改组groupmod -g 新GID 组名修改组 IDgroupmod -n 新组名 旧组名重命名组3.删除组 groupdel 组名4.用户加入附属组usermod -G 组名 用户名-g替换用户主组-G追加附属组不改变主组文件权限核心解读查看权限命令 ls -l / ll输出权限位结构示例-rwxr--r--1.第 1 位文件类型- 普通文件d 目录l 软链接b/c 设备文件2.后 9 位分 3 组每组 3 位 r w x第 1 组属主文件所有者 权限第 2 组属组同组用户 权限第 3 组其他用户所有人 权限3.权限字符含义r read 读w write 写x execute 执行- 无权限两种修改权限方式 chmod方式 1八进制数字权限最常用r4w2x1每组权限相加得到 0~7 数字0 --- 无任何权限4 r-- 只读6 rw- 读写7 rwx 读写执行示例chmod 755 test.sh → 属主 rwx组 r-x其他 r-xchmod -R 666 ./dir 递归修改目录下所有文件权限方式 2符号权限增量修改格式[u/g/o/a][-][r/w/x]u 属主g 组o 其他a 全部 增加权限- 移除权限 直接设置权限示例chmod u-x test.sh 移除属主执行权限chmod gw test.txt 给属组增加写权限修改文件归属属主 / 属组chown修改文件所有者仅 root 可执行chgrp仅修改文件属组练习以root:x:0:0:root:/root:/bin/bash为例子分析用户名root登录系统的账户名密码占位符x密码哈希实际存于/etc/shadow此处 x 表示启用影子密码UID用户 ID0root 超级用户 UID 固定为 0GID初始组 ID0所属初始用户组的 ID对应/etc/group里的 root 组注释信息root用户备注、全名等描述内容家目录/root用户登录后默认进入的主目录登录 Shell/bin/bash用户登录后使用的命令解释器若为/sbin/nologin则禁止交互式登录以root:$6$xxxx$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:18900:0:99999:7:::为例子分析用户名root和 passwd 里的账户名一一对应加密密码串6开头代表 SHA-512 算法哈希若为!/*表示账户锁定无可用密码上次改密日期18900从 1970-01-01 到上次修改密码的天数最短改密间隔0密码修改后至少 0 天才能再次修改最长改密有效期99999密码有效期最长 99999 天约 273 年过期提前提醒天数7密码到期前 7 天向用户发送提醒密码过期宽限天数空值密码过期后还能保留登录权限的天数过期彻底锁定账户失效日期空值从 1970-01-01 算起账户彻底禁用的天数保留预留字段暂未使用预留扩展文件权限位10 字符-rw-r--r--第 1 位文件类型-普通文件、d目录、l软链接、c字符设备、b块设备第 2-4 位属主所有者权限rw- → 读 (r)、写 (w)、无执行 (x)第 5-7 位属组权限r-- → 仅可读第 8-10 位其他用户权限r-- → 仅可读硬链接数1该文件的硬链接计数属主ysc文件所有者用户名第一个ysc属组ysc文件所属用户组名第二个ysc文件大小36单位字节修改时间7月 2 10:50文件最后一次修改的时间文件名birthday.txt文件名称