Скрипт для изменение пароля

Автор: eem-kz Дата: 01.06.2009 14:30 Сушествует такой скрипт

echo Enter name of mailuser:
read name
echo Enter password for mailuser:
sudo passwd $name


вопрос:
как здесь организовать что бы не изменил пароля руута?
Re: скрипт для изменение пароля 01.06.2009 19:36lg >sudo passwd $name
никак, поскольку эту команду можно будет выполнить и без скрипта
Re: скрипт для изменение пароля 01.06.2009 20:18peter_ir Это скрипт вообще не нужен.
Есл уж надо, чтобы кто-то мог изменять пароли других пользователей,
надо в /etc/sudoers разрешить ему запускать команду passwd.
Re: скрипт для изменение пароля 02.06.2009 10:39eem-kz В sudoers написано разрешение
он запускается другим пользователям без проблем
дела, в том, что они может изменит пароль рута

вопрос:
как здесь организовать что бы не изменил пароля руута?
Re: скрипт для изменение пароля 02.06.2009 11:39lg >как здесь организовать что бы не изменил пароля руута?
Еще раз. В таком варианте - никак.
Собственно варианты
1. прописать в sudoers все возможные варианты команды sudo passwd ктототам (фиг знает, сколько у вас этих mailuser)
2. дать в sudoers права на запуск скрипта и заставить пользователей запускать его через sudo. В самом скрипте организовать проверку (http://gazette.lrn.ru/rus/articles/abs-guide/).
3. нормально описать задачу. Совершенно непонятно, зачем определенные пользователи без административных прав должны менять пароли у всех.

PS: со вторым вариантом можно такое наворотить, что я бы долго подумал, прежде чем его применять
Re: скрипт для изменение пароля 02.06.2009 13:58peter_ir Права на выполнение скрипта имеют смысл для скрипта на perl, но не на shell.
Perl я не знаю.
Можно ещё написать программу на C, меняющую пароли обычных пользователей,
но не root'а и сделать её suid'ной, но тогда любой сможет её запускать, либо сделать
её принадлежащей root'у, поместить в /usr/sbin и разрешить её запускать в /etc/sudoers
тем, кому надо. Ещё в /etc/pam.d/ создать для неё pam-файл, как для shutdown,
просто скопировать и переименовать.
Re: скрипт для изменение пароля 03.06.2009 07:05eem-kz мне помагите синтаксисом условий
условия должны проверит $name = не пустой и не равно root
если условия истина тогда выполнить
passwd #name

иначе ошибка (поля пустой или нет права для изменение пароля рута)
?Мозги набекрень
Re: скрипт для изменение пароля 03.06.2009 08:43peter_ir eem-kz Пишет:
-------------------------------------------------------
> мне помагите синтаксисом условий

lg ведь дал ссылку, там даже на русском.
Re: скрипт для изменение пароля 03.06.2009 11:35eem-kz echo Enter name of mailuser:
read name

if [ "$name" = "root" ]
then
echo "Рутти-тутти. - root!"
elif [ $name = "" ]
then
echo "Name not found"
else
#echo "Вы - лишь обычный юзер."
echo Enter password for mailuser:
passwd $name
fi
exit

здесь не проверяет пустую строку
Re: скрипт для изменение пароля 03.06.2009 11:56eem-kz Все спасиба
работал

echo Enter name of mailuser:
read name

if [ "$name" = "root" ]
then
echo "Рутти-тутти. - root!"
elif [ "$name" = "" ]
then
echo "Name not found"
else
#echo "Вы - лишь обычный юзер."
echo Enter password for mailuser:
passwd $name
fi
exit

здесь кавычку забыл
elif [ "$name" = "" ]
Re: скрипт для изменение пароля 05.06.2009 00:24smaharbA
elif [ -z "$name" ] 
Re: скрипт для изменение пароля 05.06.2009 12:53msv2 Может вопрос несколько не в тему, но посоветуйте пожалуйста, что можно прочитать про скрипты в Линуксе, желательно с примерами и не супер сложное.
Re: скрипт для изменение пароля 05.06.2009 14:40lg Я бы сказал, что совсем не в тему, но ссылку посоветую ту же.
Re: скрипт для изменение пароля 05.06.2009 18:51kosmonavt > [ "$name" = "root" ]

Лучше так:
[ `id -u "$name"` -eq 0 ]
а то мало ли что...
RSS-материал