创建只读用户需先添加用户并设密码,2. 可创建readonlyusers组统一管理,3. 通过修改/etc/fstab添加ro选项实现文件系统只读,4. 用usermod -s /usr/sbin/nologin限制Shell登录,5. 使用setfacl设置细粒度ACL权限,6. 撤销权限时需移除组、恢复fstab、重挂载、恢复Shell及删除ACL,7. 临时只读可用mount -o remount,ro,持久化推荐fstab,8. OverlayFS适用于合并只读与可写层,9. 监控可通过.bash_history、系统日志、auditd及SELinux/AppArmor实现。

Linux创建只读用户账户的核心在于限制用户权限,使其只能查看文件和目录,而不能进行修改、删除或创建操作。这通常通过创建新用户,并设置其权限来实现。
解决方案:
创建新用户: 使用
sudo adduser <username>
创建用户组(可选但推荐): 如果你想管理多个只读用户,可以创建一个专门的组。使用
sudo groupadd readonlyusers
readonlyusers
将用户添加到组: 使用
sudo usermod -aG readonlyusers <username>
readonlyusers
设置文件系统权限: 这是最关键的一步。你需要限制用户对文件系统的写权限。一种常见的方法是修改
/etc/fstab
ro
首先,使用
df -h
/var/log
然后,使用
sudo nano /etc/fstab
/etc/fstab
找到包含
/var/log
ro
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /var/log ext4 defaults,ro 0 2
保存并关闭文件。然后,使用
sudo mount -o remount /var/log
/var/log
重要提示: 直接修改
/etc/fstab
/etc/fstab
限制Shell访问: 为了进一步限制用户行为,可以限制用户登录到 Shell。可以使用
sudo usermod -s /usr/sbin/nologin <username>
使用Access Control Lists (ACLs): ACLs 提供了更细粒度的权限控制。你可以使用
setfacl
readonlyuser
/var/log/messages
sudo setfacl -m u:readonlyuser:r-- /var/log/messages
使用
getfacl /var/log/messages
要撤销只读用户的权限,需要执行与创建过程相反的操作。
移除用户组: 如果之前将用户添加到了特定的只读用户组,可以使用
sudo gpasswd -d <username> <groupname>
sudo gpasswd -d readonlyuser readonlyusers
恢复文件系统权限: 编辑
/etc/fstab
ro
sudo mount -o remount /var/log
/etc/fstab
恢复Shell访问: 如果之前禁用了用户的 Shell 访问,可以使用
sudo usermod -s /bin/bash <username>
sudo usermod -s /bin/sh <username>
移除ACL权限: 如果使用了 ACLs,可以使用
sudo setfacl -x u:<username> <file>
sudo setfacl -x u:readonlyuser /var/log/messages
是的,除了直接修改
/etc/fstab
使用 mount
mount -o remount,ro <device> <mountpoint>
sudo mount -o remount,ro /home
使用 OverlayFS: OverlayFS 允许你将一个只读的文件系统和一个可写的文件系统合并成一个单一的挂载点。所有写入操作都会写入到可写的文件系统中,而原始的只读文件系统保持不变。这对于创建只读的容器镜像非常有用。
使用 Live CD/USB: Live CD 或 USB 通常将整个根文件系统设置为只读,以防止用户修改系统。
选择哪种方法取决于你的具体需求。 如果你需要永久性地将某个分区设置为只读,修改
/etc/fstab
mount
即使只读用户无法修改文件,监控他们的行为仍然很重要,以确保安全和合规性。
Shell历史记录: 即使用户被限制登录,他们仍然可能执行一些命令。查看用户的 Shell 历史记录可以帮助你了解他们的行为。Shell 历史记录通常保存在用户主目录下的
.bash_history
系统日志: 系统日志(例如
/var/log/auth.log
/var/log/syslog
grep
Auditd: Auditd 是 Linux 的一个强大的审计工具,可以记录系统上发生的几乎所有事件,包括文件访问、进程创建和系统调用。你可以配置 Auditd 规则来监控只读用户的特定行为。例如,你可以创建一个规则来记录用户尝试写入特定文件或目录的行为。
SELinux/AppArmor: SELinux 和 AppArmor 是 Linux 的安全模块,可以提供强制访问控制。你可以使用 SELinux 或 AppArmor 来限制只读用户的权限,并监控他们的行为。
以上就是Linux如何创建只读用户账户的详细内容,更多请关注php中文网其它相关文章!
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号