Есть ли однострочная команда для выполнения `su`?

Я могу сделать su с su <username>, и он запрашивает мой пароль. Существует ли параметр пароля для su, чтобы мне не запрашивали пароль?

, например. su <username> -p <password>

14
задан 7 October 2013 в 16:52

3 ответа

Если вы хотите написать скрипт, который запускается от имени другого пользователя, что-то вроде этого работает, хотя он выводит слово «пароль» без новой строки, чтобы стандартизировать

su - username <<!
enterpasswordhere
enter commands to run as the new user
!

, если у вас есть пользователь по имени fred с паролем 1234 и хочет получить ls из домашнего каталога fred как fred, без отображаемой строки пароля это будет выглядеть как

su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!
0
ответ дан 7 October 2013 в 16:52

Я верю, что нет, и это не будет хорошей идеей. И вот почему:
Если вы напишите пароль в такой команде, как su <username> -p <password>, он будет сохранен в виде обычного текста в вашей истории bash. Это, безусловно, огромная проблема безопасности.

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

0
ответ дан 7 October 2013 в 16:52

Если вы хотите выполнить некоторые конкретные команды как новый пользователь, используйте следующую команду:
sudo -u {username} {command to be executed as the new user}

0
ответ дан 7 October 2013 в 16:52

Другие вопросы по тегам:

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