Подсказка для sudo пароля и программно поднимает полномочие в сценарии удара?

При попытке загрузиться от Карты памяти, необходимо удостовериться, что Вы включали это в свои рычаги mkinitcpio. Если это верно, chroot в Вашего Arch устанавливают и вносят изменение прежде, чем восстановить изображение.

Добавляют модули USB к изображению. Используйте это, если Ваше корневое устройство находится на устройстве массового хранения USB или если к Вашему устройству массового хранения USB нужно получить доступ иначе (проверенный, смонтированный, и т.д.) во время начальной загрузки.

Посмотрите запись Wiki для деталей

52
10.01.2012, 21:30
4 ответа

Я работаю sudo непосредственно из сценария:

if [ $EUID != 0 ]; then
    sudo "$0" "$@"
    exit $?
fi
65
27.01.2020, 19:33

Я предлагаю:

#!/bin/bash

if (($EUID != 0)); then
  if [[ -t 1 ]]; then
    sudo "$0" "$@"
  else
    exec 1>output_file
    gksu "$0 $@"
  fi
  exit
fi

# some example stuff
ls -l /root
echo "app: $0"
for f; do
  echo ">$f<"
done
16
27.01.2020, 19:33
  • 1
    Что делает if [[ -t 1 ]]; проверить на? А-ч –  Shauna 10.01.2012, 22:05
  • 2
    , хорошо. Я полагал, что это имело некоторое отношение к терминалу по сравнению с GUI, но не было уверено, что, если сам оператор проверял. –  Shauna 10.01.2012, 22:24

Добавьте это как первую строку сценария:

[ "$UID" -eq 0 ] || exec sudo bash "$0" "$@"

Изменение sudo кому: gksu или gksudo если Вы предпочитаете графическую подсказку.

17
27.01.2020, 19:33
  • 1
    Отметьте это "$*" движение должно объединить все аргументы в один (/path/to/script one two three движение должно привести к $1 быть one two three), и $* без кавычек испортит пробелы в аргументах. "$@" работает правильно А-ч –  Michael Mrozek♦ 10.01.2012, 21:55
  • 2
    @MichaelMrozek, право. Это - то, которое я искал, Фиксированный –  Kevin 10.01.2012, 21:57
  • 3
    Существует ли способ сделать это на Debian, где, кажется, нет никакой команды sudo? –  wrongusername 25.07.2015, 21:23
  • 4
    @wrongusername sudo, это намного лучше, чем использование su. Но если Вы действительно хотите, вероятно exec su -c "$0" "$@" –  Kevin 27.07.2015, 20:23

Я использую visudoдля редактирования файла sudoersследующим образом:

  • В строке с вашим пользователем добавьте это рядом с именем пользователя :
    ALL=(ALL)       NOPASSWD: ALL
    
    затем сохраните.
  • Когда этот пользователь
    sudo su -
    
    он войдет в систему как root без ввода пароля.
0
04.11.2021, 23:11

Теги

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