Linux中的用户和组以及文件权限详解

发布时间:2021-09-10 18:48:38 作者:chen
来源:亿速云 阅读:124
# Linux中的用户和组以及文件权限详解

## 一、Linux用户管理

### 1. 用户基础概念
在Linux系统中,用户是系统资源访问的主体。每个用户拥有:
- 唯一UID(用户ID)
- 所属主组(Primary Group)
- 登录Shell
- 家目录(如/home/username)

**重要配置文件**:
- `/etc/passwd`:存储用户基本信息
- `/etc/shadow`:存储加密后的密码(仅root可读)
- `/etc/login.defs`:默认用户创建规则

### 2. 用户操作命令
```bash
# 创建用户
sudo useradd -m -s /bin/bash username
sudo passwd username  # 设置密码

# 修改用户属性
usermod -aG supplementary_group username  # 添加附加组
usermod -s /bin/zsh username  # 修改登录Shell

# 删除用户
userdel -r username  # -r参数同时删除家目录

3. 特殊用户

二、Linux组管理

1. 组的基本概念

组是用户的集合,用于简化权限分配: - 每个组有唯一GID(组ID) - 用户可属于1个主组+多个附加组

相关配置文件: - /etc/group:组定义文件 - /etc/gshadow:组密码文件(极少使用)

2. 组操作命令

# 创建组
groupadd developers

# 添加用户到组
gpasswd -a user1 developers

# 查看用户所属组
groups username
id username  # 显示更详细信息

# 删除组
groupdel developers

三、文件权限体系

1. 权限基础

通过ls -l可查看权限信息:

-rwxr-xr-- 1 user1 developers 4096 Jan 1 10:00 script.sh

权限分为三部分: - 文件类型(首位字符) - 用户权限(rwx) - 组权限(r-x) - 其他用户权限(r–)

2. 权限字符含义

字符 文件权限 目录权限
r 可读 可列出目录内容
w 可写 可创建/删除文件
x 可执行 可进入目录

3. 数字表示法

权限可用3位八进制数表示: - r=4, w=2, x=1 - 例如:rwxr-xr– = 754

四、权限管理命令

1. chmod修改权限

# 符号模式
chmod u+x,g-w,o=r file  # 用户添加执行,组删除写,其他设为只读

# 数字模式
chmod 755 script.sh  # rwxr-xr-x

2. chown修改属主

chown user1:developers file  # 同时修改用户和组
chown -R user1:developers dir/  # 递归修改目录

3. 特殊权限

权限 字符 数字 作用
SUID s 4000 以文件所有者身份执行
SGID s 2000 继承目录的组
Sticky t 1000 仅所有者可删除(/tmp常用)

设置示例:

chmod u+s /usr/bin/passwd  # 设置SUID
chmod g+s /shared_dir      # 设置SGID
chmod +t /tmp              # 设置Sticky位

五、默认权限与umask

1. umask机制

umask值决定新建文件的默认权限: - 文件默认权限 = 666 - umask - 目录默认权限 = 777 - umask

查看与设置:

umask          # 查看当前值(如0022)
umask 0027     # 设置新umask

2. 权限继承(ACL)

当基础权限不足时,可使用ACL:

# 查看ACL
getfacl /project

# 设置ACL
setfacl -m u:user1:rwx /project
setfacl -m g:developers:r-x /project

六、实践案例

1. 共享目录配置

# 创建共享目录
mkdir /shared
chown root:developers /shared
chmod 2775 /shared  # SGID+rwxrwxr-x

# 验证配置
ls -ld /shared  # 应显示 drwxrwsr-x

2. 用户私有目录

mkdir /home/user1/private
chmod 700 /home/user1/private  # 仅用户可访问

七、安全最佳实践

  1. 最小权限原则:只授予必要权限

  2. 定期审计:检查异常权限设置 “`bash

    查找全局可写文件

    find / -xdev -type f -perm -0002

# 查找SUID/SGID文件 find / -xdev ( -perm -4000 -o -perm -2000 )

3. **密码策略**:通过`/etc/login.defs`配置密码有效期
4. **sudo权限**:使用`visudo`谨慎分配特权

## 八、常见问题排查

### 1. 权限拒绝错误
```bash
# 检查三步曲:
ls -l file      # 查看权限
id user         # 确认用户组
getfacl file    # 检查ACL(如有)

2. 用户无法登录

检查: - /etc/passwd中的Shell路径是否正确 - /etc/shadow中密码状态(!!表示锁定) - 家目录权限(至少应为755)

总结

Linux的权限体系通过用户-组-权限三级机制实现精细的访问控制。掌握这些基础知识后,可以进一步学习: - PAM认证模块 - SELinux/AppArmor强制访问控制 - 基于角色的访问控制(RBAC)

提示:生产环境中修改权限前,建议先在测试环境验证,避免导致服务不可用。 “`

注:本文实际约1650字,您可根据需要补充以下内容扩展: 1. 具体发行版的差异(如CentOS vs Ubuntu) 2. 更复杂的ACL使用案例 3. 与容器化环境的权限交互 4. 企业级IAM系统集成

推荐阅读:
  1. linux中如何批量管理用户和组
  2. Linux用户和组的管理命令

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:DockerFile如何去自定义Tomcat

下一篇:怎么通过重启路由的方法切换IP地址

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》