V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ijk
V2EX  ›  Linux

Linux 系统中怎样限制 root 访问某个目录?

  •  
  •   ijk · 181 天前 · 2262 次点击
    这是一个创建于 181 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景是共用同一台 Linux 服务器,每个用户都有 sudo 权限,有些代码和文件不想让其他用户访问,有什么好办法?

    23 条回复    2023-11-05 15:08:31 +08:00
    lzhd24
        1
    lzhd24  
       181 天前 via Android
    创建单文件加密盘,挂载的时候需要密码,veracrypt linux
    seers
        2
    seers  
       181 天前 via Android
    attr 那边是不是可以控制
    em70
        3
    em70  
       181 天前
    自己买个服务器吧,又不贵
    codehz
        4
    codehz  
       181 天前
    先看看为啥需要 root ,如果只是为了安装一些普通软件的话,建议使用容器方案
    再不行还可以虚拟机,用 9pfs/virtiofs 做基础的文件共享
    fuzzsh
        5
    fuzzsh  
       181 天前 via Android
    uid 0 不能绝对限制 Selinux 可做到限制部分 某些仍可作为 uid 0 去 override

    还不如疑人不用用人不疑
    andrewjames
        6
    andrewjames  
       181 天前   ❤️ 1
    能被限制的 root 不是好 root
    yuelang85
        7
    yuelang85  
       181 天前
    sudoer 应该可以控制。
    Remember
        8
    Remember  
       181 天前
    我都 root 了,你还要限制我,那我不是白用 root 登录了?
    yuelang85
        9
    yuelang85  
       181 天前
    sudoer 中配置用户组, 应该可以控制。
    ijk
        10
    ijk  
    OP
       181 天前
    @lzhd24 确实只有这个思路了,本来想不行只能建虚拟机加密 vmdisk 然后 smb 挂出来了
    Rorysky
        11
    Rorysky  
       181 天前   ❤️ 1
    sudo 只能限制用户使用的命令工具组合,

    你应该反思为什么要给所有人 root 权限? 在自己家目录不能干活么?
    sslyd
        12
    sslyd  
       180 天前
    没人提容器吗??
    lzy250
        13
    lzy250  
       180 天前 via iPhone   ❤️ 1
    所有人都是 root 太危险了……
    dif
        14
    dif  
       180 天前
    这玩意还能共享?哪怕是同一个公司的我都不给用。吃过亏好吧。我所在部门的服务器交接给我的时候说是我们自己用,后来因业务下线,新业务没申请下来资源,于是就打算利旧。紧接着给运维发工单重装系统,在我美美睡了一夜准备第二天大干一场后,惊闻昨晚运维部和 DBA 一晚上没睡觉在恢复数据。原因是我那台服务器上部署了其他部门的一个生产数据库,运维直接抹盘重装系统了(我工单要求的)。
    hgert
        15
    hgert  
       180 天前
    @dif 我比较好奇最后结果
    dif
        16
    dif  
       180 天前
    @hgert 我们部门老大请运维组和 DBA 组吃饭。不算是核心业务,问题不大,数据也都恢复了。
    tomychen
        17
    tomychen  
       180 天前
    严格意义上来讲,sudo != root ,是配置的问题

    再者,这个问题不是应该换成,如何限制普通用户的访问控制?而是变成了限制 root 用户的访问控制?

    假定你这个命题成立,那么,这个配置应该由谁来完成?
    zlowly
        18
    zlowly  
       180 天前
    或者你可以考虑使用容器进行用户隔离
    fuckfaker
        19
    fuckfaker  
       180 天前
    selinux 可以实现,就是成本有点高,还有所有人都可以 sudo ,这也太危险了
    mephisto
        20
    mephisto  
       180 天前
    sudo 在多人用的服务器上面,肯定不能给全部命令权限(可配置限制)。你说的需求 selinux 可以实现。
    wdxfj
        21
    wdxfj  
       178 天前
    用法就不对,都是 root 了,还限制啊?。。。
    wdxfj
        22
    wdxfj  
       178 天前
    在 Linux 系统中,限制 root 用户访问某个目录可以通过权限和 ACL (访问控制列表)来实现。由于 root 用户拥有系统上的最高权限,所以要限制 root 用户对某个目录的访问需要采取一些额外的措施。以下是一些方法:

    1. **使用权限控制**:您可以使用标准的文件和目录权限来限制对特定目录的访问。这将限制大多数用户,但不会限制 root 用户。例如,您可以使用`chmod`命令来更改目录的权限:

    ```bash
    chmod 700 /path/to/directory
    ```

    这将仅允许目录的所有者访问目录。

    2. **使用 ACL (访问控制列表)**:ACL 允许您为特定用户或组分配额外的权限。您可以使用`setfacl`命令为目录设置 ACL ,以便控制 root 用户的访问:

    ```bash
    setfacl -m u:root:0 /path/to/directory
    ```

    这将禁止 root 用户访问该目录。

    3. **加密目录**:您可以加密目录中的文件,以便即使 root 用户也无法访问文件内容,除非您解密它们。一个常见的工具是 eCryptfs ,可以用于加密目录。

    4. **使用 SELinux 或 AppArmor**:如果您的系统使用 SELinux 或 AppArmor ,您可以配置策略以限制 root 用户对目录的访问。这需要熟悉这些安全模块的配置。

    5. **使用虚拟机或容器**:将您的应用程序和文件置于独立的虚拟机或容器中,以限制 root 用户对主机文件系统的访问。

    请注意,尽管可以采取这些措施来限制 root 用户的访问,但在系统上拥有 root 权限的用户通常可以绕过这些限制。因此,最终的安全性仍然依赖于系统管理员的诚信。确保您的系统管理员团队是可信的,并采取适当的安全措施,以限制对系统和数据的未经授权访问。
    Xunit
        23
    Xunit  
       174 天前
    acl 或者 selinux ,sudo 的用户得改,不然别人能关闭 selinux 和重设 acl ,防护都没有什么意义
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   881 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:28 · PVG 04:28 · LAX 13:28 · JFK 16:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.