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

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

  •  
  •   ijk · 2023-10-29 20:03:40 +08:00 · 2707 次点击
    这是一个创建于 426 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    假定你这个命题成立,那么,这个配置应该由谁来完成?
    zlowly
        18
    zlowly  
       2023-10-30 16:29:24 +08:00
    或者你可以考虑使用容器进行用户隔离
    fuckfaker
        19
    fuckfaker  
       2023-10-30 17:02:13 +08:00
    selinux 可以实现,就是成本有点高,还有所有人都可以 sudo ,这也太危险了
    mephisto
        20
    mephisto  
       2023-10-30 18:23:23 +08:00
    sudo 在多人用的服务器上面,肯定不能给全部命令权限(可配置限制)。你说的需求 selinux 可以实现。
    wdxfj
        21
    wdxfj  
       2023-11-01 15:55:48 +08:00
    用法就不对,都是 root 了,还限制啊?。。。
    wdxfj
        22
    wdxfj  
       2023-11-01 15:57:04 +08:00
    在 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  
       2023-11-05 15:08:31 +08:00
    acl 或者 selinux ,sudo 的用户得改,不然别人能关闭 selinux 和重设 acl ,防护都没有什么意义
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1967 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:47 · PVG 08:47 · LAX 16:47 · JFK 19:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.