以非 root 用户身份读取其他用户拥有的文件

Evi*_*non 8 freebsd zfs permissions

我正在备份服务器上备份服务器。备份的每个服务器在备份服务器上都有自己的帐户,并且文件是同步的。重要的是权限保持不变(使用 rsync -p)以简化恢复。

我正在尝试创建一个可以读取文件并创建一些统计信息的脚本。我不喜欢该脚本在 root 用户下运行,也不可能为每个备份用户运行它,因为该脚本应该能够读取所有用户的所有文件。但是,当文件被例如 chmodded 600 时,这会产生问题。我不想触及权限,但除 root 和所有者之外的另一个用户无法读取它。

一个特定的 - 非 root - 用户应该能够读取目录或分区中的所有文件,无论权限级别如何(并且文件的所有者应该没有办法阻止它)。有没有办法实现这一目标?我正在使用 ZFS 卷运行 FreeBSD。

bah*_*mat 4

使用sudo

如果您的sudoers文件列出了精确且特定的命令,则必须完全按照中列出的方式调用该命令sudoers,否则它将被拒绝。

例如:

backupuser  ALL=(root) /usr/bin/rsync -aH /files/to/backup/ /copy/of/backup/
Run Code Online (Sandbox Code Playgroud)

在此示例中,用户backup可以完全按照所示执行命令:

sudo /usr/bin/rsync -aH /files/to/backup/ /copy/of/backup/
Run Code Online (Sandbox Code Playgroud)

如果它们调用sudo rsync...而不是sudo /usr/bin/rsync命令失败,或者如果标志或路径不同,则命令失败。

如果您在脚本中执行此操作,那么您希望启用这些命令的无密码使用:

backupuser  ALL=(root) NOPASSWD: /usr/bin/rsync -aH /files/to/backup/ /copy/of/backup/
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参见sudoers(5)下的手册页Cmnd_list