减少SYS_ADMIN Linux功能

时间:2015-10-27 20:03:37

标签: docker containers linux-capabilities

我正在创建一个Docker容器,我不想让'特权'标志为真。这是为了使其更安全并且更好地控制。 我的容器主要从事以下任务(这将帮助我定义它的资源访问范围并相应地实施访问控制) 1.在集装箱上安装gluster文件sys 2.运行SSH守护程序以接受传入的SSH连接 3.运行一些通常可用的bash命令

我在运行docker容器时使用“--cap-add = SYS_ADMIN”选项来实现此目的。但是,因为SYS_ADMIN添加了比我需要的更多的权限(下面列出)。如何只实现SYS_ADMIN功能的子集?

SYS_ADMIN:

执行一系列系统管理操作,包括:quotactl(2),mount(2),umount(2),swapon(2),swapoff(2),sethostname(2)和setdomainname(2)。

  • 执行特权syslog(2)

  • 操作(因为Linux 2.6.37,CAP_SYSLOG应该用于允许
    这样的行动)。执行VM86_REQUEST_IRQ vm86(2)命令;

  • 对任意System V IPC执行IPC_SET和IPC_RMID操作 对象

  • 对可信和安全扩展属性执行操作(参见
    ATTR(5))

  • 使用lookup_dcookie(2)。
  • 使用ioprio_set(2)分配

  • IOPRIO_CLASS_RT和(在Linux 2.6.25之前)IOPRIO_CLASS_IDLE I / O
    调度班。

  • 传递套接字凭据时
  • 伪造UID。

  • 超过/ proc / sys / fs / file-max,系统范围内的数量限制 在打开文件的系统调用中打开文件(例如,accept(2), execve(2),open(2),pipe(2))。

  • 使用CLONE_ *标志创建带有clone(2)和的新命名空间 取消共享(2)。
  • 调用perf_event_open(2)。
  • 访问特权perf事件信息。
  • call setns(2)。
  • 致电fanotify_init(2)。
  • 执行KEYCTL_CHOWN和KEYCTL_SETPERM keyctl(2)操作。
  • 执行madvise(2)MADV_HWPOISON操作。
  • 使用TIOCSTI ioctl(2)将字符插入输入 除呼叫者控制终端之外的终端队列。 使用过时的nfsservctl(2)系统调用。
  • 使用过时的bdflush(2)系统调用。
  • 执行各种特权块设备ioctl(2)操作。
  • 执行各种特权文件系统ioctl(2)操作。
  • 对许多设备驱动程序执行管理操作。

0 个答案:

没有答案