Как заставить пользователя стать root

Я написал сценарий bash для использования в моем блоке ubuntu. Теперь я хотел бы предотвратить запуск этого сценария под своим собственным пользователем и только запустить его как root (sudo).

Есть ли возможность заставить это. Могу ли я каким-то образом позволить моему сценарию запрашивать разрешения root, если я запускаю его под своим собственным именем пользователя?

  • Более быстрый способ поиска совпадающих шаблонов из внешнего файла grep -f {patternfile} {source} в BASH
  • Как исправить кодировку символов в bash (arch linux)
  • Способ Bash проверить, запущен ли процесс в фоновом режиме (и пропустить повторное выполнение на основе этого)?
  • ls -la не отображает правильное разрешение для папки mount -bind
  • Переменные автозаполнения Bash для других команд, чем cd
  • Работы BASH_ENV и cron
  • доступ пользователей и отказ в доступе
  • Неожиданный конец ошибки файла при выполнении скрипта
  • Как создать пользовательские команды в Unix / Linux?
  • Мусор в файле журнала сеанса bash. (используя команду сценария)
  • Расширение брекета не работает в скрипте
  • .inputrc TAB не ведет себя так, как ожидалось
  • 4 Solutions collect form web for “Как заставить пользователя стать root”

    У меня есть стандартная функция, которую я использую в bash для этой цели:

     # Check if we're root and re-execute if we're not. rootcheck () { if [ $(id -u) != "0" ] then sudo "$0" "$@" # Modified as suggested below. exit $? fi } 

    Там, вероятно, более элегантные способы (я написал это AGES еще!), Но это отлично работает для меня.

    Я использую эту однострочную версию, легко скопировать пасту поверх скриптов

     [ `whoami` = root ] || { sudo "$0" "$@"; exit $?; } 
     sudo chown root yourcode sudo chmod 500 yourcode 

    Вуаля!

    Вы можете изменить разрешения, чтобы только root мог его выполнить. Или вы можете использовать команду whoami и в случае, если она не является корневой силой sudo.

    Linux и Unix - лучшая ОС в мире.