web-dev-qa-db-ja.com

sudoersファイルでmysqlコマンドを無効にするにはどうすればよいですか?

Sudoersファイルで/usr/bin/mysqlコマンドを無効にするにはどうすればよいですか?私はこの方法でそれを使用しようとしました:

%tailonly ALL=!/usr/bin/mysql

しかし、グループ「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
7
Carlos Spohr

須藤はこの仕事にふさわしいツールではないと思う。

特定のユーザーにログファイルへのアクセスを許可する場合は、通常のUNIXファイルのアクセス許可や拡張属性を使用できます。ユーザーにファイルをテーリングする許可を与えるには、読み取り許可が必要です。

拡張属性を使用してこれを行うには、次を試してください。

$ setfacl -m u:tailonly:r /usr/app/file

ユーザーにディレクトリ内のすべてのファイルを読み取らせたい場合は、そのディレクトリに対して、そのユーザーのデフォルトACLを設定する必要があります。例えば:

$ setfacl -d -m user:tailonly:r /usr/app

これにより、新しいファイルのアクセス許可がtailonlyユーザーによって読み取り可能に設定されます。

役立つ良いガイドと同様の質問があります:

https://serverfault.com/questions/2736/how-does-one-get-setfacl-to-set-acl-permissions-recursively-on-ubuntu-9-04-serve

http://www.gnutoolbox.com/acls-setfacl/

4
Peter Jenkins