Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
ijk
V2EX  ›  Linux

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

  •  
  •   ijk · Oct 29, 2023 · 4570 views
    This topic created in 1100 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    假定你这个命题成立,那么,这个配置应该由谁来完成?
    zlowly
    zlowly
    Oct 30, 2023
    18
    或者你可以考虑使用容器进行用户隔离
    fuckfaker
    fuckfaker
    Oct 30, 2023
    19
    selinux 可以实现,就是成本有点高,还有所有人都可以 sudo ,这也太危险了
    mephisto
    mephisto
    Oct 30, 2023
    20
    sudo 在多人用的服务器上面,肯定不能给全部命令权限(可配置限制)。你说的需求 selinux 可以实现。
    wdxfj
    wdxfj
    Nov 1, 2023
    21
    用法就不对,都是 root 了,还限制啊?。。。
    wdxfj
    wdxfj
    Nov 1, 2023
    22
    在 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
    Xunit
    Nov 5, 2023
    23
    acl 或者 selinux ,sudo 的用户得改,不然别人能关闭 selinux 和重设 acl ,防护都没有什么意义
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3117 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 10:46 · PVG 18:46 · LAX 02:46 · JFK 05:46
    ♥ Do have faith in what you're doing.