我有一个由 root (/var/log/apache2) 拥有的目录。我希望用户对该文件夹具有只读访问权限 - 而无需更改此文件夹的组所有者。是否可以在不将用户添加到 sudoers 文件的情况下做到这一点?
问问题
1792 次
1 回答
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(并且可能希望在某个时候对其进行修改),因此我不建议您走这条路。
于 2018-09-28T16:47:11.070 回答