Есть скрипт на bash, в котором присутствует команда
su <имя_пользователя>
При запуске под обычным пользователем (не под root-ом) su ждет введения пароля этого пользователя. Пароль известен, но хотелось бы чтобы скрипт не спрашивал все время его у пользователя, а подставлял сам. Решение
echo password | su <имя_пользователя>
не подходит, т.к. su ждет именно ввода с клавиатуры. Есть какое-нибудь решение этой проблемы?
Здравствуйте, AndreyGenievsky, Вы писали:
AG>Есть скрипт на bash, в котором присутствует команда AG>
AG>su <имя_пользователя>
AG>
AG>При запуске под обычным пользователем (не под root-ом) su ждет введения пароля этого пользователя. Пароль известен, но хотелось бы чтобы скрипт не спрашивал все время его у пользователя, а подставлял сам. Решение AG>
AG>echo password | su <имя_пользователя>
AG>
не подходит, т.к. su ждет именно ввода с клавиатуры. Есть какое-нибудь решение этой проблемы?
expect спасет отца русской демократии.
$ cat /usr/ports/lang/expect/pkg-descr
Expect is a program that performs programmed dialogue with other
interactive programs. It is briefly described by its man page, expect(1).
It uses pseudo-tty's to control the child processes, so it is not affected
by programs that refuse to read from stdin or pipes. (eg: passwd(1) etc).
Здравствуйте, AndreyGenievsky, Вы писали:
AG>Есть скрипт на bash, в котором присутствует команда AG>
AG>su <имя_пользователя>
AG>
AG>При запуске под обычным пользователем (не под root-ом) su ждет введения пароля этого пользователя. Пароль известен, но хотелось бы чтобы скрипт не спрашивал все время его у пользователя, а подставлял сам. Решение AG>
AG>echo password | su <имя_пользователя>
AG>
не подходит, т.к. su ждет именно ввода с клавиатуры. Есть какое-нибудь решение этой проблемы?
su ждет не воода с клавиатуры а читает вывод с /dev/tty а как вы в tty запихнете нужные символы это ваше дело
Три великие достоинства программиста: лень, нетерпение, надменность... Л. Уолл
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, AndreyGenievsky, Вы писали:
>>Есть какое-нибудь решение этой проблемы? B>Использовать sudo?
Именно!
За исключением тех редких случаев, когда программа под sudo не работает.
...Complex problems have simple, easy-to-understand wrong answers...
(Grossman's Misquote of H.L.Mencken)
Здравствуйте, ghecko, Вы писали:
G>Здравствуйте, AndreyGenievsky, Вы писали:
AG>>Есть скрипт на bash, в котором присутствует команда AG>>
AG>>su <имя_пользователя>
AG>>
AG>>При запуске под обычным пользователем (не под root-ом) su ждет введения пароля этого пользователя. Пароль известен, но хотелось бы чтобы скрипт не спрашивал все время его у пользователя, а подставлял сам. Решение AG>>
AG>>echo password | su <имя_пользователя>
AG>>
не подходит, т.к. su ждет именно ввода с клавиатуры. Есть какое-нибудь решение этой проблемы? G> su ждет не воода с клавиатуры а читает вывод с /dev/tty а как вы в tty запихнете нужные символы это ваше дело
А какие программные способы "запихивания" символов в /dev/tty существуют?
Re[3]: Как обмануть su в linux?
От:
Аноним
Дата:
12.03.05 12:33
Оценка:
Здравствуйте, fAX, Вы писали:
fAX>Здравствуйте, butcher, Вы писали:
B>>Здравствуйте, AndreyGenievsky, Вы писали:
>>>Есть какое-нибудь решение этой проблемы? B>>Использовать sudo? fAX>Именно! fAX>За исключением тех редких случаев, когда программа под sudo не работает.
sudo su - -c "/path/program"
И случаи стали ровно в 2.71828 раз более редкими...
"AndreyGenievsky" <39165@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:1067453@news.rsdn.ru...
> Здравствуйте, ghecko, Вы писали: >>Здравствуйте, AndreyGenievsky, Вы писали: >>>Есть скрипт на bash, в котором присутствует команда >>>
>>>su <имя_пользователя>
>>>
>>>При запуске под обычным пользователем (не под root-ом) su ждет введения пароля этого пользователя. Пароль известен, но хотелось бы чтобы скрипт не спрашивал все время его у пользователя, а подставлял сам. Решение >>>
>>>echo password | su <имя_пользователя>
>>>
не подходит, т.к. su ждет именно ввода с клавиатуры. Есть какое-нибудь решение этой проблемы? >> su ждет не воода с клавиатуры а читает вывод с /dev/tty а как вы в tty запихнете нужные символы это ваше дело > А какие программные способы "запихивания" символов в /dev/tty существуют?
А что-то вроде:
su < password (не проходит)
или
su &
echo password > /dev/tty
P.S. А может просто перекомпилить su? Или войти под root?