Рейтинг:0

Сценарии Linux: как НЕ выполнять определенные команды неявно из .bash_profile пользователя, когда вы используете sudo для пользователя через скрипт

флаг pw

Вот проблема, с которой я сталкиваюсь: у меня есть сценарий, который проверяет размер базы данных Oracle и выполняет определенный SQL на основе версии оракула, работающей на коробке. Сценарий будет запущен через ansible для выполнения на всех серверах Oracle (400).

Проблема в Oracle .баш profile НЕ является стандартным и фактически существует в двух версиях (которые не могут быть исправлены по разным причинам на данный момент). Один набор серверов имеет РМАН команда в .bash_profile пользователя оракула.

Таким образом, для этого набора серверов (~ 100 из 400) сценарий возвращает информацию о резервной копии при выполнении через Ansible, а вывод (который идет в формате Excel) портится. Может ли кто-нибудь предложить способ, чтобы мы могли ограничить РМАН или любая другая конкретная команда от выполнения, когда мы sudo к оракулу?

paladin avatar
флаг kr
Сделать неисполняемым? `chmod -x ИМЯ ФАЙЛА`
SBhardwaj avatar
флаг pw
oracle .bash_profile не может быть изменен с точки зрения разрешений. Весь его ландшафт, на котором этот скрипт должен выполняться через пользователя Ansible и ansible, который будет использовать sudo для oracle.
paladin avatar
флаг kr
Нет, я имел в виду удалить разрешение на выполнение для определенных двоичных файлов. Например, ваш доступный пользователь использует программу `/bin/myprogram`, вы можете отрицать это, используя `chmod -x /bin/myprogram`. Но я вижу, что это не может быть хорошим решением вашей проблемы.
paladin avatar
флаг kr
Было бы неплохо узнать, почему вы не можете изменить `.bash_profile`, если это вызвано файловой системой только для чтения, вы можете попытаться смонтировать любой каталог в домашний каталог этого пользователя, например: `mount --options bind /tmp/ /home/ansible/` перед попыткой входа в систему.
SBhardwaj avatar
флаг pw
Спасибо за ваши комментарии . Немногое, что я не могу изменить для двоичного разрешения, так как это нужно сделать для всего ландшафта из примерно 400 серверов.И это будет иметь далеко идущие последствия, если я заберу это конкретное разрешение на выполнение бинарного файла. Даже если я заберу его и верну его в конце скрипта - я не хочу этого делать, так как любое неудачное выполнение скрипта приведет к более серьезным проблемам, поскольку в списке есть рабочие серверы, где скрипт будет быть казненным .
SBhardwaj avatar
флаг pw
Идея состоит в том, чтобы сделать эту небольшую автоматизацию БЕЗ изменений в среде, которая включает серверы Oracle prod. Есть ли способ, с помощью которого в самом моем скрипте я могу что-то сделать с помощью кода, который не позволит выполнить определенную команду/двоичный файл.
paladin avatar
флаг kr
Вы можете изменить свой скрипт: `test -f /var/lock/LOCKFILE && echo true || echo false`, когда LOCKFILE существует (т.е. через `touch /var/lock/LOCKFILE`), выполните свои команды, в противном случае сделайте что-нибудь еще.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.