У меня есть сервер Samba для примерно 5 пользователей (security = user), и я хочу, чтобы эти пользователи могли менять свои пароли без моего участия, поэтому у меня есть следующая идея. Это безопасно? Есть ли лучший (как в более простом) подходе. Раньше для этого у нас был спецназ, но не более.
На сервере: создать пользователя с ограниченными правами (/ bin / rbash + PATH в один каталог)
$ sudo adduser --shell /bin/rbash pwchange
$ cat /etc/passwd
pwchange:x:1001:1001:pwchange,,,:/home/pwchange:/bin/rbash
$ sudo vi /home/pwchange/.bashrc
Add:
export PATH=/usr/local/pwchange
$ sudo ln -s /usr/bin/smbpasswd /usr/local/pwchange/smbpasswd
Эта идея заключается в том, что пользователь pwchange может запустить только команду sambpasswd. Учетные записи Unix для пользователей Samba не имеют паролей (т.е. вход через эти учетные записи запрещен). Пользователи samba смогут использовать эту ограниченную учетную запись только для самостоятельного изменения пароля Samba ... не исследовать сервер!
Клиент: Изменить пароль Samba через Терминал или Замазку (Windows)
user1@A3700:~$ ssh pwchange@192.168.1.14
pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1
smbpasswd
что пользователи и администраторы должны были менять свои пароли ... Это то, что вы хотите?Ответы:
Предоставление им всем доступа к одной и той же фиктивной учетной записи не кажется разумным. Даже если вы заблокируете его, чтобы иметь доступ ни к чему, НО
smbpasswd
они могут изменить пароли друг друга. И всегда есть возможность злонамеренной атаки на повышение привилегий.По сути, это звучит так, как будто вы хотите, чтобы они могли запускать ТОЛЬКО
smbpasswd
команду из своей учетной записи, но при этом иметь эквивалентнуюnologin
учетную запись.Это может быть достигнуто с помощью опции «ForceCommand» в вашем sshd_config.
Попробуй это:
Предоставьте каждому пользователю с учетной записью Samba одну и ту же группу. Для нашего примера скажем "sambaOnly":
Далее мы хотим изменить наш файл sshd_config, чтобы иметь следующее:
Presto. Из моего понимания (и краткого тестирования) это означает, что когда они входят в систему через SSH, они автоматически
smbpasswd
запускают команду и получают соответствующий запрос. У них никогда не будет возможности получить доступ к оболочке. После завершения команды они автоматически отключаются, снова не имея возможности получить доступ к оболочке.Я не уверен на 100%, что это удаляет весь доступ к машине удаленно. Например, если вы используете другой SSH-сервер на том же компьютере, на котором
ForceCommand
их нет, то они могут войти через него в зависимости от конфигурации управления доступом.Кроме того, если у них есть возможность физического доступа к терминалу, они могут войти в систему.
Тем не менее, я думаю, что для большинства ситуаций это довольно сильный контроль доступа.
источник