Как вызвать функцию.bashrc в скрипте

Я вижу, вы используете sudo, чтобы стать root, а затем su, чтобы стать s_user. Для этого вы будете использовать свой пароль (для sudo). Вам не нужен пароль для s_user.

Вы могли бы сделать это, добавив свой ключ ssh к учетной записи s_user, но я думаю, что это решение в данном случае не оптимально -.

Сначала отмечу, что suвам не нужен, и лучше его не использовать. Поэтому вместо sudo su - s_user -c commandсделайте sudo -u s_user command. Вас все равно попросят ввести пароль. Однако теперь вы можете настроить/etc/sudoers

Добавить файл /etc/sudoers.d/s_commands, содержащий что-то вроде (, но проверенный, с/usr/bin/visudo):

Cmnd_Alias S_COMMAND=/usr/bin/command, /usr/bin/anotherCommand
%s_group ALL = (s_user) NOPASSWD : S_COMMAND

Это позволит использовать эти команды без пароля, как пользователь s _, но только для пользователей в группе s _группе (вам нужно будет добавить группу ).

Затем установите псевдоним оболочки, что-то вроде:alias s_command="sudo -u s_user command".


Примечания:

  • suпринимает пароль пользователя, на которого вы переключаетесь.
  • sudoпо умолчанию использует пароль пользователя (, с которого вы переключаетесь ).
  • sudoне читает пароль со стандартного ввода, он читает с tty.
0
26.08.2020, 02:36
1 ответ

Еще одна вещь, которую следует учитывать, это то, что даже если вы запустите свою программу с #!/bin/bash, она не выполнит.bashrc, так как это неинтерактивный экземпляр bash.

0
18.03.2021, 23:09

Теги

Похожие вопросы