как предложить пользователю войти в систему как root при запуске сценария оболочки

Проблема, которую я получаю, заключается в том, что когда я ввожу команду,

su - root

в начале моего файла сценария оболочки он предлагает пользователю ввести пароль, а затем НЕ продолжает работу с остальной частью сценария оболочки. Затем мне нужно вручную найти и запустить сценарий оболочки через терминал. Я хочу, чтобы сценарий удостоверился, что пользователь входит в систему как пользователь root, а затем продолжил остальную часть сценария оболочки.

Другими словами, я хочу запустить скрипт от имени любого пользователя, но как только скрипт начнет выполняться, пользователь должен измениться на root, а затем продолжить работу с остальной частью скрипта как root, пока это не будет выполнено. Можно ли это сделать?


person Redson    schedule 29.05.2014    source источник
comment
см. отредактированный вопрос. ссылка, которую вы мне прислали, была тем, что я пробовал, и это не сработало для моего случая   -  person Redson    schedule 29.05.2014


Ответы (1)


Поэтому я хотел запустить скрипт как обычное имя пользователя. Но как только скрипт выполнился, мне нужно было стать root и иметь определенные привилегии, которых не было бы у обычного пользователя. Итак, вы можете видеть из моего вопроса, что я пытался сделать. Решение заключается в следующем, и его следует добавить в начало сценария, чтобы убедиться, что вы являетесь пользователем root до конца файла (EOF). Затем вы снова становитесь обычным пользователем.

  #!/bin/sh
  [ "$(whoami)" != "root" ] && exec sudo -- "$0" "$@"
  # rest of the code
  ...
  EOF
person Redson    schedule 30.05.2014
comment
пожалуйста, добавьте некоторое объяснение к вашему решению, указав, как оно помогает, и что OP ошибался или отсутствовал. Приятно поучить немного! - person Our Man in Bananas; 30.05.2014
comment
@Philip, надеюсь, это поможет, дайте мне знать, ясно ли мое объяснение или нет. - person Redson; 31.05.2014