Я можу зробити su
з, su <username>
і він запитує мій пароль. Чи є параметр пароля для su
такого, щоб мені не було запропоновано пароль?
напр su <username> -p <password>
superuser
звідси, superuser.com/questions/67765/…
Я можу зробити su
з, su <username>
і він запитує мій пароль. Чи є параметр пароля для su
такого, щоб мені не було запропоновано пароль?
напр su <username> -p <password>
superuser
звідси, superuser.com/questions/67765/…
Відповіді:
Якщо ви хочете написати сценарій, який працює як інший користувач, щось подібне працює, хоч воно і виводить слово "пароль" без нового рядка для стандартного виведення
su - username <<!
enterpasswordhere
enter commands to run as the new user
!
якщо у вас є користувач на ім’я fred з паролем 1234 і хочете отримати домашній каталог fred як fred, без відображення рядка пароля, це виглядатиме так
su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!
su: must be run from a terminal
.
Я вірю, немає і це не було б гарною ідеєю. Ось чому:
Якщо ви пишете пароль у такій команді su <username> -p <password>
, він зберігатиметься простим текстом у вашій історії баш. Це, безумовно, величезне питання безпеки.
Якщо вам потрібно запустити команди з su
(або sudo
) автоматизованим способом, напишіть командний оболонку, що містить команди без su
або sudo
та запустітьsu <username> script.sh
su root script
ще потрібно ввести passwd.
echo <passwd> | sudo -S <command-line>
.Вважав, що це не безпечно, але це працює.