Linux用户、用户组与文件权限知识点+习题操作讲解
一、小结全部知识点梳理
1. Linux权限管控核心逻辑
Linux依靠用户ID(UID)、组ID(GID) 管控文件、目录、硬件设备的访问权限,通过区分不同身份分配读写执行权限,实现资源隔离与共享。
2. 用户与用户组基础操作命令
1)useradd:新建用户账户
基础用法:直接创建用户,可搭配参数指定家目录、UID、所属附加组等;创建后用户信息写入 /etc/passwd ,密码单独存于 /etc/shadow 。
2)groupadd:新建用户组账户
创建自定义用户组,组信息记录在 /etc/group ,可指定GID,用于批量管理一组用户权限。
3)usermod:修改已有用户账户信息
可修改用户名、UID、家目录、登录Shell、附加组、备注信息等,是调整用户属性的核心命令。
4)groupmod:修改用户组信息
支持修改组名、组GID,调整组的基础标识信息。
3. 文件三层权限体系
每一个文件/目录分为三类访问身份,每类身份拥有三类操作权限:
三层身份:文件属主(文件创建/拥有者)、文件属组(归属用户组)、其他用户(系统剩余所有用户)
三类权限:读r、写w、执行x,简写符号 rwx
权限有两种表示方式:符号权限(rwxr-xr--这类字符串)、八进制数字权限(把r=4、w=2、x=1相加组合,比如755、644)。
4. 权限与属主修改命令
1)chmod:修改文件、目录的读写执行权限,支持符号模式(u/g/o/a加减rwx)和八进制数字模式两种修改方式。
2)chown:修改文件/目录的所有者,可单独改属主,也能同时修改属主+属组。
3)chgrp:仅修改文件/目录的所属用户组,功能等价于chown只修改组的简写用法。
5. 共享目录实现原理
要实现多用户共享同一个目录内文件,核心操作:
1)建立公共用户组,把所有需要共享的用户加入该组;
2)修改共享目录的属组为公共组;
3)给属组分配读写执行权限;
4)搭配特殊权限SGID,让目录内新建文件自动继承目录所属组,保证组内成员均可读写文件。
二、7道练习题分步实操讲解(Xshell完整操作流程)
习题1:创建新用户、设置密码,验证/etc/passwd
1. 使用useradd创建自定义用户,例如用户名为testuser;
2. 执行passwd 用户名,输入两次密码完成密码设置;
3. 使用cat /etc/passwd查看文件,在文件末尾能找到以testuser开头的一行,该行存储用户UID、GID、家目录、登录shell等全部基础信息,代表用户创建成功。
习题2:修改/etc/passwd内用户的备注字段并查看
1. usermod搭配-c参数修改用户备注信息,-c后填写自定义备注内容;
2. 再次cat /etc/passwd找到该用户条目,条目中第五段内容就是刚修改的备注文字,核对是否更新。
习题3:groupadd创建专属组员新组
执行groupadd 自定义组名,生成全新用户组;查看/etc/group文件末尾,能看到新建组对应的GID与组名记录。
习题4:usermod将用户加入新建组,再修改组名
1. usermod -aG 新建组名 用户名,-a代表追加、-G代表附加组,把用户添加进目标组;执行id 用户名,可查看用户附属组列表确认添加成功;
2. groupmod -n 新组名 旧组名,修改刚才创建的用户组名称;查看/etc/group,原组名替换为新名称,用户所属组同步更新。
🔺题3和题4截图:
习题5:新用户家目录创建txt文件与目录,查看权限
1. 切换到testuser的家目录cd /home/testuser;
2. touch test.txt生成文本文件,mkdir share_dir创建目录;
3. ls -l 查看两个文件详情,输出开头十位字符就是权限字符串,能区分文件与目录默认权限、属主属组。
习题6:chmod、chown修改目录下全部文件组权限,实现组内共享并查看
1. 使用chown统一修改当前所有文件的属主和属组,把归属组改为之前创建的公共共享组;
2. chmod调整组权限,给属组开放读写执行权限;
3. 可选添加SGID权限,保证后续新建文件自动归属共享组;
4. ls -l核对全部文件的权限、属组字段,切换同组其他用户登录测试,验证可以正常读写文件。
习题7:删除创建的用户
执行userdel 用户名,若需要同步删除用户家目录与邮件数据,添加-r参数;操作后再次查看/etc/passwd,对应用户条目消失。