Как отключить команду mysql в файле sudoers?

7

Как отключить команду /usr/bin/mysql в файле sudoers? Я попытался использовать его следующим образом:

%tailonly ALL=!/usr/bin/mysql

Но когда я обращаюсь к пользователю «отдельно» группы «tailonly», эта команда все еще включена.

Короче говоря, я хочу, чтобы этот «пользовательский» пользователь получал доступ к tail -f /usr/app/*.log .

Это возможно?

Edit:

В этой конфигурации пользователь «по-прежнему» все еще может обращаться к терминалу 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
    
задан Carlos Spohr 12.11.2012 в 15:36
источник

1 ответ

4

Я думаю, что sudo может быть не лучшим инструментом для работы.

Если вы хотите, чтобы какой-либо пользователь имел доступ к файлам журналов, вы можете использовать обычные разрешения файлов unix и / или расширенные атрибуты. Чтобы дать пользователю разрешение на хвост файла, ему необходимо разрешение на чтение.

Для этого с помощью расширенных атрибутов попробуйте:

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

Если вы хотите, чтобы пользователь прочитал все файлы в каталоге, что, как я думаю, вы хотите достичь, вам нужно установить ACL по умолчанию для этого пользователя для этого каталога. Например:

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

Это позволит разрешить доступ новому файлу доступным пользователю.

Есть несколько хороших гидов и похожие квесты, которые могут помочь:

Ссылка

Ссылка

    
ответ дан Peter Jenkins 14.11.2012 в 18:05
источник