如何/usr/bin/mysql
在 sudoers 文件中禁用命令?我尝试过这样使用它:
%tailonly ALL=!/usr/bin/mysql
但是当我访问组“tailonly”的用户“tailonly”时,该命令仍然启用。
简而言之,我只想要那个“tailonly”用户访问权限tail -f /usr/app/*.log
。
这个有可能?
编辑:
通过此配置,用户“tailonly”仍然可以使用“mysql”命令访问 mysql 终端:
$: sudo su
$: visudo
Cmnd_Alias MYSQL = /usr/bin/mysql
Cmnd_Alias TAIL=/usr/bin/tail -f /jacad/jacad3/logs/*.log
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
%swa ALL=/etc/init.d/jacad3 stop
%swa ALL=/etc/init.d/jacad3 start
%swa ALL=/etc/init.d/jacad3 restart
%swa ALL=sudoedit /jacad/jacad3/bin/jacad_start.sh
%tailonly ALL=ALL,!MYSQL
答案1
我认为 sudo 可能不是适合这项工作的工具。
如果您希望某个用户访问日志文件,您可以使用常规 unix 文件权限和/或扩展属性。要授予用户访问文件的权限,他们需要读取权限。
要使用扩展属性执行此操作,请尝试:
$ setfacl -m u:tailonly:r /usr/app/file
如果您希望用户读取目录中的所有文件(我认为您想要实现这一点),则需要为该用户和该目录设置默认 ACL。例如:
$ setfacl -d -m user:tailonly:r /usr/app
这会将新文件的权限设置为 tailonly 用户可读。
有一些很好的指南和类似的问题可能会有所帮助: