Назад | Перейти на главную страницу

Samba: как скопировать / etc / passwd в пароли samba на новых версиях сервера ubuntu

Я пишу сценарий для копирования паролей пользователей Linux в samba на сервере Ubuntu 10.04. Я использую Samba 3 с бэкэндом tdbsam.

1) Как мне (если возможно) скопировать учетные записи (пользователя / пароль) из linux в samba с помощью сценария оболочки?

2) Как мне узнать в моем скрипте, что определенный пользователь находится в базе данных samba user, имеет пароль и активирован? Мне это нужно, поскольку мой сценарий запускается чаще, и при последующих запусках мне нужно будет выяснить, присутствует ли уже пользователь. Я бы не стал копировать, устанавливать пароль или активировать, если это не нужно.

Это голова моего конфига:

[global]
        workgroup = WORKGROUP
        server string = %h server
        security = SHARE
        obey pam restrictions = Yes
        pam password change = no
        passdb backend = tdbsam
        unix password sync = no
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 1000
        dns proxy = No
        panic action = /usr/share/samba/panic-action %d
        encrypt passwords = true
        invalid users = root   
        hosts allow = 192.168.0.1/24

Я решил пока вернуться к smbpasswd. И я решил не синхронизировать пароли. Мне нужны простые решения, которые сейчас работают.

Теперь это глава конфига:

[global]
         workgroup = WORKGROUP
         security = SHARE
         passdb backend = smbpasswd:/etc/samba/smbpasswd   
         unix password sync = no
         syslog = 0
         log file = /var/log/samba/log.%m
         max log size = 1000

И вот сценарий, который я буду запускать при начальной установке и время от времени:

USER=samwin                           
cat /etc/samba/smbpasswd | grep -e "^$USER:" 
if [ $? -ne 0 ]; then       
  echo "Adding Samba user USER:"  
  smbpasswd -a $USER 
else               
  echo "Samba user $USER already present." 
fi

Мне все еще любопытен ответ на мой вопрос выше для будущих установок, и я приму ответ, который подходит лучше всего.

Файл паролей samba и теневые файлы вашей системы имеют разные схемы хеширования. Я считаю, что ни один из них не обратим, поэтому нет никакого способа конвертировать между одним и другим. Единственный способ синхронизировать пароли - это во время их изменения путем одновременного обновления обоих файлов, введенных пользователем. В этом весь смысл настройки синхронизации паролей unix.