Linux如何创建只读用户账户

创建只读用户需先添加用户并设密码,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如何创建只读用户账户

Linux创建只读用户账户的核心在于限制用户权限,使其只能查看文件和目录,而不能进行修改、删除或创建操作。这通常通过创建新用户,并设置其权限来实现。

解决方案:

创建新用户: 使用

sudo adduser 

命令创建新用户。系统会提示你输入密码和其他用户信息。

创建用户组(可选但推荐): 如果你想管理多个只读用户,可以创建一个专门的组。使用

sudo groupadd readonlyusers

命令创建名为

readonlyusers

的组。

将用户添加到组: 使用

sudo usermod -aG readonlyusers 

命令将用户添加到

readonlyusers

组。

设置文件系统权限: 这是最关键的一步。你需要限制用户对文件系统的写权限。一种常见的方法是修改

/etc/fstab

文件,为特定的分区或目录设置

ro

(readonly) 选项。

首先,使用

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 

命令禁止用户登录。这样,用户虽然可以存在于系统中,但无法通过 SSH 或其他方式登录到 Shell 环境。

使用Access Control Lists (ACLs): ACLs 提供了更细粒度的权限控制。你可以使用

setfacl

命令来设置用户或组对特定文件或目录的权限。例如,要允许用户

readonlyuser

读取

/var/log/messages

文件,可以使用以下命令:

 sudo setfacl -m u:readonlyuser:r-- /var/log/messages

使用

getfacl /var/log/messages

命令可以查看 ACL 权限。

如何撤销只读用户的权限?

要撤销只读用户的权限,需要执行与创建过程相反的操作。

知我AI·PC客户端 知我AI·PC客户端

离线运行 AI 大模型,构建你的私有个人知识库,对话式提取文件知识,保证个人文件数据安全

知我AI·PC客户端 0 查看详情 知我AI·PC客户端

移除用户组: 如果之前将用户添加到了特定的只读用户组,可以使用

sudo gpasswd -d  

命令将其从组中移除。例如,

sudo gpasswd -d readonlyuser readonlyusers

恢复文件系统权限: 编辑

/etc/fstab

文件,移除之前添加的

ro

选项,然后使用

sudo mount -o remount /var/log

命令重新挂载文件系统。 记住,修改前备份

/etc/fstab

恢复Shell访问: 如果之前禁用了用户的 Shell 访问,可以使用

sudo usermod -s /bin/bash 

sudo usermod -s /bin/sh 

命令恢复用户的 Shell 访问。具体使用哪个 Shell 取决于你的系统配置。

移除ACL权限: 如果使用了 ACLs,可以使用

sudo setfacl -x u: 

命令移除用户的 ACL 权限。例如,

sudo setfacl -x u:readonlyuser /var/log/messages

除了/etc/fstab,还有其他方法设置文件系统为只读吗?

是的,除了直接修改

/etc/fstab

,还有其他方法可以将文件系统设置为只读,但它们通常适用于特定的场景。

使用

mount

命令: 可以使用

mount -o remount,ro  

命令将已挂载的文件系统重新挂载为只读。例如,

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如何创建只读用户账户的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/433607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 15:14:33
下一篇 2025年11月7日 15:15:23

相关推荐

发表回复

登录后才能评论
关注微信