You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建具备类root系统文件读取权限但仅可写入自身文件的用户?

如何创建具备类root系统文件读取权限但仅可写入自身文件的用户?

嗨,这个需求挺实用的,我给你分享两种可行的办法,其中第一种是最稳妥的:

方法一:通过sudo配置实现精细化权限控制

这是最推荐的方案,既能让用户读取任何系统文件,又严格限制写入权限:

  • 先创建一个普通用户(比如叫limited_reader),执行命令:
    useradd -m limited_reader
    接着设置用户密码:passwd limited_reader
  • 编辑sudo配置文件(一定要用visudo命令,避免语法错误导致sudo失效),在文件末尾添加一行:
    limited_reader ALL=(ALL) NOPASSWD: /bin/cat, /bin/less, /bin/more, /bin/head, /bin/tail, /usr/bin/grep, /usr/bin/ls
    这行配置的意思是:用户limited_reader可以在任何主机上,以root身份无密码执行后面列出的只读类命令。
  • 测试效果:切换到这个用户后,日常操作就是普通用户权限,只能写入自己家目录或有写入权限的位置;如果要读取系统受限文件(比如/etc/shadow),只需要在命令前加sudo前缀,比如sudo cat /etc/shadow就能正常读取,但如果尝试写入系统文件(不管是直接写还是用sudo执行写入命令)都会被拒绝。

方法二:利用文件系统ACL(不推荐,局限性大)

这个方法是直接给所有系统文件添加用户读取权限,但操作繁琐且可能影响系统安全性:

  • 执行命令给根目录下所有文件/目录赋予该用户的读取权限:
    setfacl -R -m u:limited_reader:r /
    注意:-R是递归处理,这个操作会遍历整个系统,耗时久,而且可能破坏部分系统文件的默认权限,导致异常。
  • 这种方式下用户不需要sudo就能读所有文件,但写入权限依然是普通用户级别,只能操作自己有权限的文件。不过因为风险高,一般不建议这么做。

注意事项

  • 配置sudo时,只添加必要的只读命令,绝对不要包含/bin/bash、/bin/sh这类shell命令,否则用户可以通过sudo bash获取root完整权限,那就违背需求了。
  • 用visudo编辑后,会自动检查语法,有错误会提示你修改,一定要确认无误再保存。

备注:内容来源于stack exchange,提问作者james hofer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 15:13:15