Linux 文件权限核心要点
Linux通过用户账户构建安全体系,每个用户分配唯一UID,root的UID固定为0,系统服务使用500以下的UID,普通用户则从500开始。用户信息存储在/etc/passwd中,包含登录名、UID、GID、家目录和默认Shell等信息,而加密密码则单独存放在仅root可读的/etc/shadow文件中。/etc/skel目录则作为新用户家目录的模板,自动提供基础配置文件。
用户管理涉及三个核心命令:
useradd用于创建用户,配合-m参数自动创建家目录,-s指定Shell,-G设置附加组;usermod用于修改用户属性,其中-l可改名,-s改Shell,-L锁定账户,特别需要注意的是-G会覆盖原有附加组,而-aG才是追加组;userdel用于删除用户,加-r参数会同时删除家目录和邮件目录。此外,passwd和chpasswd用于密码管理,chsh可修改登录Shell,chfn修改备注信息,chage管理账户有效期。
组管理方面
/etc/group文件存储组信息,格式为组名、密码、GID和成员列表。groupadd创建新组,groupmod修改组名或GID,groupdel删除组,gpasswd -d可将用户从组中移除。用户拥有一个主组和多个附加组,修改时需注意区分-g(改主组)和-G(改附加组)。
文件权限通过ls -l查看,输出格式为:文件类型、三组权限(属主、属组、其他用户)、硬链接数、属主、属组、大小、修改时间和文件名。权限用r(读,值4)、w(写,值2)、x(执行,值1)表示,八进制权限码如755表示rwxr-xr-x,644表示rw-r--r--。修改权限用chmod命令,支持八进制模式(如chmod 755 file)和符号模式(如chmod u+x file,u代表属主,g代表属组,o代表其他用户,a代表所有人)。修改文件所有权用chown命令可同时改属主和属组,chgrp单独改属组,配合-R参数可递归修改整个目录。
实际应用中需要特别注意:
usermod的-G会覆盖附加组,而-aG才是追加;删除用户前确认家目录是否有重要文件;修改用户名后家目录不会自动更新;删除组前必须确保该组不是任何用户的主组;root权限极高,操作需格外谨慎。
总而言之,Linux文件权限管理通过用户身份识别、组关系组织和文件权限控制三层机制协同工作,实现对系统资源的精确访问控制。掌握这些基础命令和概念,是进行Linux系统管理和安全运维的必备技能。