Linux系统怎样阻止其它用户访问家目录

发布时间:2022-01-26 17:30:00 作者:柒染
来源:亿速云 阅读:874
# Linux系统怎样阻止其它用户访问家目录

## 前言

在Linux多用户环境中,家目录(`/home/username`)是存储用户私有数据的关键位置。默认情况下,系统会通过权限设置保护用户数据的隐私性,但管理员或用户本人可能需要进一步加固访问控制。本文将详细介绍5种阻止其他用户访问家目录的技术方案,涵盖基础权限设置、ACL控制、SELinux配置等方法。

---

## 一、理解Linux基础权限机制

### 1. 家目录默认权限分析
新创建用户时,家目录通常设置为:
```bash
drwxr-xr-x  username username /home/username

权限分解: - rwx:所有者拥有完全权限 - r-x:同组用户可读可执行 - r-x:其他用户可读可执行

2. 关键风险点


二、基础权限修改方案

方法1:chmod直接修改权限

# 完全禁止组和其他用户访问
chmod 750 /home/username

# 验证权限
ls -ld /home/username

效果: - 所有者:rwx(完全控制) - 同组用户:r-x(可读可执行) - 其他用户:—(无任何权限)

方法2:通过umask预设权限

修改/etc/login.defs文件:

UMASK 027  # 对应权限750

或用户级设置:

echo "umask 027" >> ~/.bashrc

三、ACL高级权限控制

1. 安装ACL工具

sudo apt install acl  # Debian/Ubuntu
sudo yum install acl  # RHEL/CentOS

2. 设置专属ACL规则

# 清除现有ACL规则
setfacl -b /home/username

# 仅允许特定用户访问
setfacl -m u:allowed_user:rx /home/username

# 验证ACL
getfacl /home/username

3. 递归应用到子目录

setfacl -R -m o::0 /home/username

四、SELinux强制访问控制

1. 检查SELinux状态

sestatus

2. 修改家目录安全上下文

# 设置专属类型
chcon -t user_home_dir_t /home/username

# 永久生效
semanage fcontext -a -t user_home_dir_t "/home/username(/.*)?"
restorecon -Rv /home/username

3. 自定义SELinux策略

# 生成策略模块
audit2allow -a -M home_protect
semodule -i home_protect.pp

五、用户组隔离方案

1. 创建私有用户组

sudo groupadd private_group
sudo usermod -G private_group username

2. 设置目录属组

sudo chgrp private_group /home/username
sudo chmod 770 /home/username

3. 验证组成员

groups username

六、综合加固方案

1. 组合权限策略

# 基础权限 + ACL
chmod 750 /home/username
setfacl -m g:special_group:rx /home/username

# 配合SELinux
semanage fcontext -a -t user_home_dir_t "/home/username"

2. 定期审计脚本

#!/bin/bash
for user in $(ls /home); do
    perms=$(stat -c "%a" /home/$user)
    [ "$perms" -gt 750 ] && echo "WARNING: /home/$user has $perms"
done

七、故障排除

常见问题1:权限拒绝错误

# 查看当前有效权限
namei -l /home/username/testfile

# 修复上级目录权限
find /home/username -type d -exec chmod 750 {} \;

常见问题2:SELinux阻止访问

# 查看审计日志
ausearch -m avc -ts recent

# 临时调试
setenforce 0
# 测试后恢复
setenforce 1

结语

通过合理组合传统权限、ACL和SELinux等机制,可以实现家目录的多层级保护。建议生产环境中: 1. 先使用chmod 750设置基础防护 2. 对特殊需求添加ACL规则 3. 在安全敏感环境启用SELinux 4. 定期使用auditd监控访问行为

安全提示:权限修改后,建议使用su - testuser切换账户验证效果,避免意外锁定所有访问。 “`

注:本文实际约1200字,可通过以下方式扩展: 1. 增加各命令的详细参数说明 2. 添加具体发行版的差异说明 3. 插入权限计算示例图表 4. 补充实际案例分析和解决方案

推荐阅读:
  1. vsftpd服务详解(匿名用户访问,本地用户访问,指定用户访问控制,虚拟用户)
  2. sftp 限制用户登陆指定目录(家目录)

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

linux

上一篇:Linux系统中有效用户组和初始用户组区别及作用是什么

下一篇:@Transactional注解怎么用

相关阅读

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

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