【问题标题】:How can I give user access to folder owned by root without adding user to sudoers file? [closed]如何在不将用户添加到 sudoers 文件的情况下授予用户对 root 拥有的文件夹的访问权限? [关闭]
【发布时间】:2019-03-04 15:54:29
【问题描述】:
我有一个 root 拥有的目录 (/var/log/apache2)。我希望用户对该文件夹具有只读访问权限 - 而无需更改此文件夹的组所有者。是否可以在不将用户添加到 sudoers 文件的情况下做到这一点?
【问题讨论】:
标签:
linux
unix
file-permissions
folder-permissions
【解决方案1】:
这取决于您的系统是如何设置的。
如果幸运的话,adm 组已经拥有对这些文件的读取权限。如果是这样,那么只需将您的用户添加到 adm 组:
sudo usermod -aG adm SOMEUSER
adm 组通常用于提供对系统日志文件的读取访问权限,而无需授予用户超级权限。您的用户还可以阅读adm 组有权访问的任何其他内容。
如果这些文件根本没有组访问权限(即它们显示 -rw------- 并且归 root/root 所有),那么下一个最佳选择是使用 setfacl 为您的用户授予对这些文件的读取权限:
sudo setfacl --modify u:SOMEUSER:rx /var/log/apache2 # let them in to the dir
sudo setfacl --modify u:SOMEUSER:r /var/log/apache2/* # let them read the files
请注意,一旦 logrotate 打乱了这些文件,您的用户可能无法访问新的日志文件。您可能必须在 cron 作业中设置 setfacl 命令才能继续访问。
也可以扩展该文件夹的权限,但保持该更改涉及修改 /etc/logrotate.d/apache2 文件。由于您的包管理器可能创建了 /etc/logrotate.d/apache2(并且可能希望在某个时候对其进行修改),因此我不建议您走这条路。