如何为用户提供 CAP_MKNOD 功能?

如何为用户提供 CAP_MKNOD 功能?

从这个问题继续:rsync与特殊文件的关系

为了备份设备文件,目的地的 rsync 需要能够调用mknod.通常的方法是告诉 rsync 登录root并使用 switch --super。 (例如 rsync -avz --super ./this root@thatserver:/backup/this

我并不特别希望 rsync 进程以 root 身份登录。

根据 ' man mknod':

EPERM(错误)

...并且调用者没有特权(Linux:没有 CAP_MKNOD 功能)...

是否可以将 CAP_MKNOD 分配给非 root 用户?如果是这样,怎么办?

答案1

您可以向二进制文件添加功能。例如,在远程复制 /bin/rsync到用户的主目录上,例如/home/user/rsync并使其可由他们单独执行,然后添加功能:

sudo setcap CAP_MKNOD=ep /home/user/rsync

当用户在远程运行此 rsync 时,它将能够创建设备节点。

相关内容