Чи є однорядкова команда виконувати `su`?


15

Я можу зробити suз, su <username>і він запитує мій пароль. Чи є параметр пароля для suтакого, щоб мені не було запропоновано пароль?

напр su <username> -p <password>


Здається, питання ідеально підходить для суперпользователя: superuser.com :-)
HongboZhu


1
я отримав це superuserзвідси, superuser.com/questions/67765/…
alvas

Відповіді:


12

Якщо ви хочете написати сценарій, який працює як інший користувач, щось подібне працює, хоч воно і виводить слово "пароль" без нового рядка для стандартного виведення

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
!

2
хм, "стандарт повинен бути цілим"
Джон Лоуренс Аспден

Я отримую таку ж помилку
MaxV

12
Отримання помилки: su: must be run from a terminal.
Абхішек Кашяп

5

Я вірю, немає і це не було б гарною ідеєю. Ось чому:
Якщо ви пишете пароль у такій команді su <username> -p <password>, він зберігатиметься простим текстом у вашій історії баш. Це, безумовно, величезне питання безпеки.

Якщо вам потрібно запустити команди з su(або sudo) автоматизованим способом, напишіть командний оболонку, що містить команди без suабо sudoта запустітьsu <username> script.sh


1
su root script ще потрібно ввести passwd.
Дай Кайсян

@DaiKaixian так, але його ніде не збережено і ніхто не може його прочитати
Wayne_Yux

2
Ви можете спробувати щось на кшталт: echo <passwd> | sudo -S <command-line>.Вважав, що це не безпечно, але це працює.
Дай Кайсян

1
вся суть моєї відповіді полягає в тому, що писати пароль в команді не є економією. Тому я раджу цього не робити
Wayne_Yux

-3

Якщо ви хочете виконати деякі конкретні команди як новий користувач, використовуйте таку команду:
sudo -u {username} {command to be executed as the new user}


Це не дає відповіді на запитання. Питання в тому, як обробити пароль.
Стівен C
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.