LINUX.ORG.RU
решено ФорумAdmin

Права пользователя через sudoers на директорию в home

 , ,


0

1

Пробую настроить проверку AIDE с одного сервера на клиентах через прилагающийся в документации скрипт sshaide.sh.

Делаю по мануалу:https://kezhong.wordpress.com/2016/11/23/building-a-centralized-aide-server-o... только на Centos 7.

По мануалу создаю на удаленном клиенте пользователя, в /etc/sudoers прописываю ему права:

aideuser ALL=(ALL) NOPASSWD: /home/aideuser/*/aide, /bin/chmod 644 /home/aideuser/*/aide.newdb

При выполнении скрипта (скрипт большой, команд много), появляется ошибка:

scp: /home/aideuser/furfuramid.12510/aide.newdb: Permission denied

Если на удаленном компе поменять запись в /etc/sudoers для пользователя на:

aideuser ALL=(ALL) NOPASSWD: /home/aideuser/*/aide, /bin/chmod 774 /home/aideuser/*/aide.newdb

При запуске скрипта появляется запрос пароля и после него ошибка с указанием на права:

[sudo] пароль для aideuser:

Sorry, user aideuser is not allowed to execute '/bin/chmod 644 /home/aideuser/indispensableness.12573/aide.newdb' as root on name_client_comp

Подскажите, где ошибка? В правах на директорию, в правах sudoers?

aideuser ALL=(ALL) NOPASSWD: /home/aideuser/*/aide, /bin/chmod 644 /home/aideuser/*/aide.newdb

Надеюсь, что всё это Вы добавили в /etc/sudoers не в таком виде?

not allowed to execute '/bin/chmod 644 /home/aideuser/indispensableness.12573/aide.newdb'

Очевидно.

Во-первых, используйте visudo. Во-вторых, формат sudoers следующий:

username hostname = (runas) [flags] cmd [, cmd] [, cmd]

telikan ()

Подскажите, где ошибка?

Ошибка в том, что ты не понимаешь что делаешь.

Deleted ()
Ответ на: комментарий от telikan

Спасибо за ответ!

Файл правила не через nano /etc/sudoers, знаю, что правильно через visudo, сейчас поправлю через него .

Строку [code[aideuser ALL=(ALL) NOPASSWD: /home/aideuser/*/aide, /bin/chmod 774 /home/aideuser/*/aide.newdb записала именно в таком виде, потому что директория indispensableness.12573 - это рандомно генеримая службой, она при каждом запуске скрипта разная...

Указала в visudo так:

aideuser ALL=(ALL) NOPASSWD: /home/aideuser

Перезагрузила клиент, на котором исправила visudo.

При выполнении скрипта опять запрошен пароль пользователя (хотя сертификаты есть), после правильного пароля ошибка:

scp: /home/aideuser/ignoble.13000/aide.newdb: No such file or directory

Как указать любое имя директории, разве не через *?

manik207 ()
Ответ на: Спасибо за ответ! от manik207

А если в visudo прописать

aideuser ALL=(ALL) NOPASSWD:/home/aideuser/*/aide.newdb
то выполняемый скрипт отзывается (после введения пароля) этим:
Sorry, user aideuser is not allowed to execute '/bin/chmod 644 /home/aideuser/*/aide.newdb' as root on my_client_comp

P.s. есть вероятность, что я сломала visudo?

manik207 ()
Ответ на: комментарий от manik207

любое имя директории

То есть? У вас имя директории постоянно меняется?

/home/aideuser/*/aide.newdb

'/*' — здесь указывает на внутреннее содержимое директории aideuser, т.е. на всё, что там расположено.

Почему после этого вы дописываете /aide.newdb? /home/aideuser/* — полный путь.

есть вероятность, что я сломала visudo?

Сомневаюсь в том, что Вы его сломали. Теоретически, такое возможно.

telikan ()
Ответ на: комментарий от telikan

Спасибо за ответ!

Да, имя директории постоянно меняется, там в скрипте так и прописано, рандомное слово и через точку несколько цифр (сегодня разбирала скрипт, так сделано для безопасности)

Почему после этого вы дописываете /aide.newdb? /home/aideuser/* — полный путь.

При указании пути в visudo /home/aideuser/* - скрипт выдает запрос пароля и ошибку:

 scp: /home/aideuser/interglobular.1370/aide.newdb: No such file or directory

А если права указываю в visudo, отличные от 644, то тоже требуется пароль, и сообщение об ошибке вполне конкретно говорит, где я не права:

Sorry, user aideuser is not allowed to execute '/bin/chmod 644 /home/aideuser/indispensableness.12573/aide.newdb' as root on name_client_comp

manik207 ()
Ответ на: Спасибо за ответ! от manik207

При указании пути в visudo /home/aideuser/* - скрипт выдает запрос пароля и ошибку

Попробуйте

aideuser ALL=(ALL) NOPASSWD:/home/aideuser

aideuser is not allowed to execute '/bin/chmod 644'

А Вы указывали /bin/chmod 644 на запуск? Зачем? В visudo этого точно нет?

telikan ()
Ответ на: комментарий от telikan

Сейчас в visudo указала так (без * и chmod):

aideuser ALL=(ALL) NOPASSWD:/home/aideuser/
Скрипт отреагировал запросом пароля и сообщением:
scp: /home/aideuser/aeolotropism.1517/aide.newdb: No such file or directory

В первом сообщении темы я указала, что именно так в visudo и указываю, как записано:

aideuser ALL=(ALL) NOPASSWD: /home/aideuser/*/aide, /bin/chmod 644 /home/aideuser/*/aide.newdb

При такой записи нет запроса пароля, но Permission denied...

manik207 ()
Ответ на: комментарий от manik207

aideuser ALL=(ALL) NOPASSWD:/home/aideuser/

Слеш в конце не нужен.

Верните обратно /home/aideuser/*

/home/aideuser/aeolotropism.1517/aide.newdb: No such file or directory

Скрипт не смог найти файла по этому пути. Он там есть? Права на него выставлены верно?

aideuser ALL=(ALL) NOPASSWD: /home/aideuser/*/aide, /bin/chmod 644 /home/aideuser/*/aide.newdb

Ну, так Вы не говорили, что у Вас постоянно меняется название. Тогда.. верно. /bin/chmod зачем обычному пользователю? У вас скрипт пытается работать с правами? Зачем?

При такой записи нет запроса пароля, но Permission denied

Проблема с правами доступа.

telikan ()
Ответ на: комментарий от telikan

Эм... Да, проблема прав доступа. Так и название темы звучит.

Скрипт создает базу данных, и ему нужно скопировать в создаваемую им директорию с рандомным названием файл с названием aide.newdb. При выполнении команды scp, отображается сообщение о проблеме с правами доступа. Для решения этой проблемы я и задала вопрос: как пользователю прописать права? Директория с рандомным именем, обозначается через *...

manik207 ()
Ответ на: Спасибо за ответ! от manik207

В sudoers указывают КОМАНДЫ.

Т.е.

aideuser ALL=(ALL) NOPASSWD: /home/aideuser/*/aide, /bin/chmod 644 /home/aideuser/*/aide.newdb
Позволяет пользователю aideuser выполнить команду sudo /home/aideuser/*/aide и sudo /bin/chmod 644 /home/aideuser/*/aide.newdb без пароля. Эти команды вызываются из твоего скрипта.

Deleted ()
Ответ на: комментарий от manik207

Вроде правильные. Ты можешь залогиниться под этим пользователем и проверить.

Я бы на твоем месте добавил в скрипте, перед вызовом scp, read -p ololo1, и когда скрипт дойдет до этого момента, проверил бы права на файл, и на дерикторию.

Deleted ()
Ответ на: комментарий от Deleted

Всем спасибо!!! Все команды выполняются верно, ошибка была в очередности выполнения команд

manik207 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.