У меня есть машина, которая используется в основном в качестве почтового сервера:
$ uname -a Linux myhost.com 2.6.32-279.19.1.el6.x86_64 # 1 SMP Ср 19 декабря 07:05:20 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
и я хотел бы, чтобы пользователи, которые фактически не входят в систему (но используют ее для аутентификации и получения своей почты), могли изменять свои собственные пароли. Если я помещу /usr /bin /passwd в /etc /shells (так что команда passwd является допустимой оболочкой), и изменю запись оболочки для пользователей, как в:
someuser:x:557:557:Some User:/home/someuser:/usr/bin/passwd
тогда, если они ssh к хосту, они получат что-то вроде этого:
$ ssh myhost.com
пароль someuser@myhost.com: < введите текущий пароль >
Последний вход в систему: ср 25 сен 16:07:35 2013 от some-ip
Смена пароля для пользователя someuser.
Смена пароля для пользователя.
(текущий) пароль UNIX: < введите свой текущий пароль еще раз >
Новый пароль: < введите новый пароль >
Введите новый пароль еще раз: < введите новый пароль еще раз >
-passwd: все токены аутентификации успешно обновлены.
Соединение с myhost.com закрыто.
это прекрасно работает ... но безопасно ли? Это какой-то способ использовать это и взломать настоящую оболочку?
Благодарю.
PS В моей среде разумно предположить, что у пользователей уже есть ssh - но если есть альтернатива для смены пароля, которая просто "лучше", я бы хотел услышать об этом :)