Как обмануть su в linux?
От: AndreyGenievsky Россия  
Дата: 11.03.05 08:22
Оценка: :)
Есть скрипт на bash, в котором присутствует команда
su <имя_пользователя>

При запуске под обычным пользователем (не под root-ом) su ждет введения пароля этого пользователя. Пароль известен, но хотелось бы чтобы скрипт не спрашивал все время его у пользователя, а подставлял сам. Решение
echo password | su <имя_пользователя>
не подходит, т.к. su ждет именно ввода с клавиатуры. Есть какое-нибудь решение этой проблемы?
Re: Как обмануть su в linux?
От: Kemm  
Дата: 11.03.05 08:31
Оценка: -1
Здравствуйте, 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).

WWW: http://expect.nist.gov/
FAQ: http://expect.nist.gov/FAQ.html
Re[2]: Как обмануть su в linux?
От: Kemm  
Дата: 11.03.05 08:35
Оценка: +1
PS: если нужно именно обойти su, то почему бы пользоваться sudo?
Re: Как обмануть su в linux?
От: butcher Россия http://bu7cher.blogspot.com
Дата: 11.03.05 08:35
Оценка: +1
Здравствуйте, AndreyGenievsky, Вы писали:

>Есть какое-нибудь решение этой проблемы?

Использовать sudo?

Нет ничего невозможного..
Re: Как обмануть su в linux?
От: ghecko Россия  
Дата: 11.03.05 15:42
Оценка: 1 (1)
Здравствуйте, AndreyGenievsky, Вы писали:

AG>Есть скрипт на bash, в котором присутствует команда

AG>
AG>su <имя_пользователя>
AG>

AG>При запуске под обычным пользователем (не под root-ом) su ждет введения пароля этого пользователя. Пароль известен, но хотелось бы чтобы скрипт не спрашивал все время его у пользователя, а подставлял сам. Решение
AG>
AG>echo password | su <имя_пользователя>
AG>
не подходит, т.к. su ждет именно ввода с клавиатуры. Есть какое-нибудь решение этой проблемы?

su ждет не воода с клавиатуры а читает вывод с /dev/tty а как вы в tty запихнете нужные символы это ваше дело
Три великие достоинства программиста: лень, нетерпение, надменность... Л. Уолл
Re[2]: Как обмануть su в linux?
От: fAX Израиль  
Дата: 11.03.05 16:20
Оценка:
Здравствуйте, butcher, Вы писали:

B>Здравствуйте, AndreyGenievsky, Вы писали:


>>Есть какое-нибудь решение этой проблемы?

B>Использовать sudo?
Именно!
За исключением тех редких случаев, когда программа под sudo не работает.
...Complex problems have simple, easy-to-understand wrong answers...
(Grossman's Misquote of H.L.Mencken)
Re[2]: Как обмануть su в linux?
От: AndreyGenievsky Россия  
Дата: 12.03.05 06:57
Оценка:
Здравствуйте, 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 раз более редкими...
Re[4]: Как обмануть su в linux?
От: fAX Израиль  
Дата: 12.03.05 18:14
Оценка: :)
Здравствуйте, Аноним, Вы писали:

А>
А>sudo su - -c "/path/program"
А>

А>И случаи стали ровно в 2.71828 раз более редкими...
Замечательно!
...Complex problems have simple, easy-to-understand wrong answers...
(Grossman's Misquote of H.L.Mencken)
Re[3]: Как обмануть su в linux?
От: Vit1251 Россия  
Дата: 20.03.05 16:49
Оценка: :)
"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?
Posted via RSDN NNTP Server 1.9
Re: Как обмануть su в linux?
От: ELFF  
Дата: 22.03.05 00:09
Оценка: -1 :)
AG>
AG>echo password | su <имя_пользователя>
AG>
не подходит, т.к. su ждет именно ввода с клавиатуры.

попробуй cat
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.