Метод для користувачів змінити Samba пароль


10

У мене є сервер Samba для приблизно 5 користувачів (безпека = користувач), і я хочу, щоб ці користувачі міняли свої паролі без моєї участі, тому я маю таку ідею. Це безпечно? Чи є кращий (як у більш простому) підході. Для цього у нас був SWAT, але не більше.


На сервері: створити обмеженого користувача (/ 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 за допомогою терміналу або Putty (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призначений для користувачів і адміністратора, щоб змінити свої паролі ... Це те, що ви хочете?
Джордж Удосен

У цьому випадку облікові записи Unix користувачів не мають паролів, тому користувач1 не може увійти як user1@192.168.1.14. Сервер Samba був налаштований як "безпека = користувач", а обмеження на файли встановлено у smb.conf. Користувачам заборонено входити в Unix, оскільки базові дозволи Unix були більш дозволеними, ніж комбінація дозволів файлів Samba та Unix (розширені ACL-файли Unix не використовувались)
brucehohl

У моєму коледжі у нас був портал, що обслуговує себе, користувачі можуть авторизуватися за допомогою перевірки id та sms, а на задньому плані ми видали команду smbpasswd
Рабін

Відповіді:


1

Надання їм доступу до одного і того ж фіктивного рахунку не здається розумним. Навіть якщо ви заблокуєте його, щоб мати доступ до нічого, Але smbpasswdвони все одно можуть змінити паролі інших. І завжди є можливість нападу ескалації зловмисних привілеїв.

По суті, це виглядає так, як ви хочете, це дозволити їм виконувати ТОЛЬКО smbpasswdкоманду з власного облікового запису користувача, зберігаючи при цьому еквівалент nologinакаунту.

Це можна досягти, скориставшись опцією "ForceCommand" у вашому sshd_config.

Спробуйте це:

  1. Надайте кожному користувачеві членство з обліковим записом Samba до однієї групи. Для нашого прикладу скажімо "sambaOnly":

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. Далі ми хочемо змінити наш файл sshd_config таким чином:

    #From Root
    cat << EOF >> /etc/ssh/sshd_config
    Match Group sambaOnly
        ForceCommand smbpasswd
    EOF
    

Престо. З мого розуміння (і короткого тестування) це означає, що коли вони ввійдуть через SSH, вони автоматично запустять smbpasswdкоманду, і їм буде запропоновано відповідно. Вони ніколи не отримають шанс отримати доступ до оболонки. Після завершення команди вони автоматично відключаються, знову не отримуючи шансу отримати доступ до оболонки.

Я не на 100% впевнений, що це віддалено весь доступ до машини. Наприклад, якщо ви використовуєте інший SSH-сервер на тій же машині, яка ForceCommandїх не робить , вони можуть увійти через нього залежно від конфігурації його контролю доступу.

Також, якщо вони мають можливість фізичного доступу до терміналу, вони можуть увійти в систему.

Однак я думаю, що для більшості ситуацій це досить сильний контроль доступу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.