LINUX.ORG.RU

samba-пользователь с пустым паролем не может войти

 


0

1

Дистрибутив - Debian Squeeze. Настраиваю samba-сервер. Пока пытаюсь дать доступ к серверу только одному пользователю. Как настрою, добавлю остальных.

Клиентская машина работает под Windows 7. Имя пользователя Windows - Iskatel, пароль отсутствует.

1. На сервере создаю учётку такую же как и в Windows:

sudo useradd iskatel --home=/dev/null
2. И убираю пароль:
sudo passwd -d iskatel
passwd: password expiry information changed.
3. И прописываю его в таблицу соответствия /etc/samba/users.map:
iskatel = Iskatel
4. Редактирую основной конфиг самбы:
[global]
netbios name = GATE
server string =
workgroup = FGUPMZRTA
interfaces = eth1
security = user
username map = /etc/samba/users.map
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
os level = 255
local master = yes
preferred master = yes

[homes]
create mask = 0777
directory mask = 0777
read only = yes
valid users = iskatel
guest ok = no
browseable = yes

[Общая папка]
path = /srv/share
create mask = 0777
directory mask = 0777
read only = no
valid users = iskatel
guest ok = no
browseable = yes

[Consultant]
path = /srv/consultant
create mask = 0777
directory mask = 0777
create mask = 0777
directory mask = 0777
read only = no
valid users = iskatel
guest ok = no
browseable = yes

[1C]
path = /srv/1c
create mask = 0777
create mask = 0777
directory mask = 0777
read only = no
valid users = iskatel
guest ok = no
browseable = yes
5. И перезапускаю сервер:
$ sudo service samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.
Теперь пробую зайти из винды. Сервер требует от меня пароль, хотя не должен. В чём ошибка?

★★★★★

Значение по умолчанию:
null passwords = no

zgen ★★★★★ ()

А в базу самбы ты юзера добавил, горе луковое?

anonymous ()
Ответ на: комментарий от anonymous

Разъясни. При security = user список юзеров берется из /etc/passwd не так ли?

sunny1983 ★★★★★ ()
Ответ на: комментарий от sunny1983

Вроде из специального файла, через smbpasswd создаваемого, нет?

Yustas ★★★ ()
Ответ на: комментарий от Yustas

Я конфигурил, пользуясь материалами с smb-conf.ru
Объясни, пожалуйста, что за база? Всё равно ведь обращение к жесткому диску происходит от имени одного из unix-пользователей

sunny1983 ★★★★★ ()
Ответ на: комментарий от sunny1983

Обращение-то происходит от пользователя под которым самба запущена, а вот право на обращение получается после авторизации.

Note that the default passdb backends require the user to already exist in the system password file (usually /etc/passwd), else the request to add the user will fail.
Т.е. тебе нужно добавить пользователей системы в базу паролей самбы через smbpasswd. Смотри одноимённый мануал.

Yustas ★★★ ()

sudo passwd -d iskatel
passwd: password expiry information changed.

тебе нужен smbpasswd

anonymous ()
Ответ на: комментарий от anonymous

Прочитал я и про smbpasswd и про pdbedit. Путём эксперементов обнаружил, что в базу SAM (так и не понял в каком файле она располагается) можно добавить нового пользователя, только если он уже имелся в базе пользователей UNIX (/etc/passwd). Я так понял это было сделано из-за того, что в UNIX и в samba разные механизмы шифрования паролей.

Итак, после добавления одного пользователя в базу, он смог заходить на сервер. Но у этого пользователя был пароль.

А вот со вторым пользователем (с пустым паролем) не ладится. Я его сначала добавил:

bkois@gate:~$ sudo smbpasswd -a iskatel
New SMB password:
Retype new SMB password:
Added user iskatel.
bkois@gate:~$ sudo smbpasswd -n iskatel
User iskatel password set to none.
Теперь пытаюсь войти из винды - снова не пускает, но уже на новый лад. Если раньше запрашивал пароль, то теперь говорит, что пользователю вход запрещён.

sunny1983 ★★★★★ ()
Ответ на: комментарий от sunny1983

У тебя стоит в smb.conf «security = user»
Как ты добавлял пользователей с пустыми паролями?

man smbpasswd

-n
           This option specifies that the username following should have their password set to null (i.e. a
           blank password) in the local smbpasswd file. This is done by writing the string "NO PASSWORD" as
           the first part of the first password stored in the smbpasswd file.

           Note that to allow users to logon to a Samba server once the password has been set to "NO
           PASSWORD" in the smbpasswd file the administrator must set the following parameter in the
           [global] section of the smb.conf file :

           null passwords = yes

           This option is only available when running smbpasswd as root.

Так?

Yustas ★★★ ()
Ответ на: комментарий от Yustas

Давай ка подержим пока тему на плаву, завтра попробую ещё один эксперемент - установлю пользователю и на сервер пароль из регистронезависимых символов, из чисел.

sunny1983 ★★★★★ ()
Ответ на: комментарий от Yustas

Всё заработало.
Удалил пользователей smbpasswd -x + userdel
Потом снова создал useradd + smbpasswd -a
Только для задания пустого пароля в этот раз не ключём -n пользовался, а просто два раза нажал enter.

Один момент остался. При заходе на сервер под именем iskatel, на нём видны расшареные папки: 1C, Konsultant, homes, iskatel, Общая папка. При заходе на сервер под именем buh, на нём видны расшареные папки: 1C, Konsultant, homes, buh, Общая папка. Можно homes и buh убрать, задумывалось, что на сервере будут храниться общие файлы, а не личные. Я даже специально домашний каталог в null устанавливал, чтобы его не было:

useradd buh --homes=/dev/null

sunny1983 ★★★★★ ()
Ответ на: комментарий от funky

А почему в мануалах пишут, что [homes] - секция обязательная, также как и [global]?

sunny1983 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.