Назад | Перейти на главную страницу

sudo как пользователь с правами sudo?

У Алисы есть права sudo. Боб не знает (это нельзя изменить), но знает пароль к учетной записи Алисы.

Если Боб хочет выполнять административные команды, он должен:

  1. su alice
  2. введите пароль Алисы для su
  3. sudo whoami
  4. введите пароль sudo Алисы
  5. команда выполняется с правами суперпользователя

Чтобы сократить это, я использую: su -m alice -c 'sudo whoami'.

Однако я хочу создать команду псевдонима, которая заменяет эту утомительную команду обычной командой sudo.

Итак, я сделал это: alias sudo="su -m alice -c 'sudo $@'".

2 предостережения:

Как я могу сделать это лучше?

Спасибо!

Это зависит от конфигурации sudoers. Если установлено "Defaults requiretty", этот метод работать не будет.

suds () { 
    ARGS="$@"
    /bin/su -m alice -c "/usr/bin/sudo  TERM=xterm $ARGS"
}

Несколько комментариев по этому поводу

  1. Он всегда будет запрашивать пароль Алисы для аутентификации su.
  2. Когда переменная смещена в одинарных кавычках, она обычно не раскрывается.
  3. Я предпочитаю использовать функции, а не псевдонимы, они позволяют мне добавить немного больше логики к преобразованиям.
  4. Это плохая идея с точки зрения безопасности. Перед внедрением убедитесь, что это не нарушает местные правила.

Рик