Автор Тема: Создание пользователя SAMBA  (Прочитано 1853 раз)

Оффлайн Арбичев

  • Завсегдатай
  • *
  • Сообщений: 518
    • Email
Решил дома создать сетку из двух компьютеров. На одном ПК создать шару с помощью SAMBA, другой будет его клиентом. В качестве главного мануала использовал это:

https://docs.altlinux.org/ru-RU/alt-server/10.2/html/alt-server/ch45.html#idm45812711323104

Конкретно:  Глава 45. Samba в режиме файлового сервера.

Делал все по шагам, не торопясь, так как делал первый раз. Дошел до того места, когда надо создавать пользователя SAMBA. В цитируемом источнике на эту тему есть специальное примечание:

Цитировать
"Samba использует отдельную от системной базу данных пользователей. Для возможности доступа пользователя к папке (если запрещен гостевой доступ) необходимо внести его в базу данных Samba и установить пароль для доступа к общим ресурсам (он может совпадать с основным паролем пользователя). Следует учитывать, что в базу данных Samba можно добавлять пользователей, которые уже есть в системе."

Последнее предложение меня сильно смутило своей нечеткостью. Как я понимаю русский язык, если написано, что можно добавить пользователя, который уже есть в системе, значит можно добавить и нового пользователя.
Придумал имя для пользователя и действую по мануалу:

admin@ASRock-880GM-LE:~> su
Пароль: 
ASRock-880GM-LE:/home/admin # smbpasswd -a SambaUser
New SMB password:
Retype new SMB password:
Failed to add entry for user SambaUser.
ASRock-880GM-LE:/home/admin #

Результат меня сильно озадачил, система не смогла добавить нового пользователя. Некоторое время сидел в ступоре, думал куда копать. Потом создал в системе штатными средствами нового пользователя с именем SambaUser. По умолчанию он входил только в группу users, оставил как есть. Снова проделал операцию по добавлению пользователя:

admin@ASRock-880GM-LE:~> su
Пароль: 
ASRock-880GM-LE:/home/admin # smbpasswd -a SambaUser
New SMB password:
Retype new SMB password:
Added user SambaUser.
ASRock-880GM-LE:/home/admin #

Как видите, все сработало. Сейчас все работает как мне и надо было, с клиентского компьютера я имею доступ к шаре на чтение и на запись. Но вот момент с созданием пользователя SAMBA напрягает, видимо надо более конкретно изложить этот вопрос в документации.
« Последнее редактирование: 09.12.2023 19:01:38 от ruslandh »
Lenovo Z 50-70 openSUSE Tumbleewed

Оффлайн NickM

  • Завсегдатай
  • *
  • Сообщений: 906
Re: Создание пользователя SAMBA
« Ответ #1 : 09.12.2023 18:40:39 »
Как я понимаю русский язык
Похоже на то, что стоит его ещё и подучить;
которые уже есть в системе.

значит можно добавить и нового пользователя.
Новый пользователь априори отсутствует в системе, не?

> su
Ну, елы-палы, вы в Альте!
su -

Оффлайн Арбичев

  • Завсегдатай
  • *
  • Сообщений: 518
    • Email
Re: Создание пользователя SAMBA
« Ответ #2 : 09.12.2023 18:53:56 »
Еще раз цитирую мануал
"Samba использует отдельную от системной базу данных пользователей."
Значит отдельная, но не самостоятельная?
Lenovo Z 50-70 openSUSE Tumbleewed

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 300
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Создание пользователя SAMBA
« Ответ #3 : 09.12.2023 19:03:06 »
Следует учитывать, что в базу данных Samba можно добавлять пользователей, которые уже есть в системе.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 300
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Создание пользователя SAMBA
« Ответ #4 : 09.12.2023 19:05:06 »
У вас есть в системе пользователь SambaUser  ?

PS не нравится мне пользователь с разными регистрами в логине

Оффлайн NickM

  • Завсегдатай
  • *
  • Сообщений: 906
Re: Создание пользователя SAMBA
« Ответ #5 : 09.12.2023 19:06:15 »
Еще раз цитирую мануал
"Samba использует отдельную от системной базу данных пользователей."
Значит отдельная, но не самостоятельная?
А, что конкретно вызывает вопрос? Вы никогда не работали с базой данных?

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 055
  • ITS
Re: Создание пользователя SAMBA
« Ответ #6 : 10.12.2023 16:38:51 »
# (echo "pass"; echo "pass") | pdbedit -a User
# pdbedit -L  просмотр списка пользователей



Оффлайн Арбичев

  • Завсегдатай
  • *
  • Сообщений: 518
    • Email
Re: Создание пользователя SAMBA
« Ответ #7 : 10.12.2023 19:35:58 »

ASRock-880GM-LE:~ # (echo "pass"; echo "pass") | pdbedit -a user
new password:
retype new password:
Failed to add entry for user user.
ASRock-880GM-LE:~ #

Так я об этом и говорю.
Lenovo Z 50-70 openSUSE Tumbleewed

Оффлайн Арбичев

  • Завсегдатай
  • *
  • Сообщений: 518
    • Email
Re: Создание пользователя SAMBA
« Ответ #8 : 10.12.2023 19:38:42 »
Следует учитывать, что в базу данных Samba можно добавлять пользователей, которые уже есть в системе.

По моему мнению, эту фразу нужно отредактировать так:

Следует учитывать, что в базу данных Samba можно добавлять только пользователей, которые уже есть в системе.
Lenovo Z 50-70 openSUSE Tumbleewed

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 055
  • ITS
Re: Создание пользователя SAMBA
« Ответ #9 : 11.12.2023 12:28:49 »
man smbpasswd
... Примечание
Поскольку smbpasswd работает в режиме клиент-сервер, взаимодействуя с локальным smbd
для пользователя без полномочий root, для этого должен быть запущен демон smbd.
Распространенной проблемой является добавление ограничения для хостов,
которые могут получить доступ к smbd, работающий на локальном компьютере,
указав либо разрешить хосты, либо запретить запись хостов в файле smb.conf(5)
и пренебречь разрешением «localhost» доступа к smbd ...

man pdbedit
...Примечание
                pdbedit не вызывает сценарий синхронизации паролей Unix,
если синхронизация паролей Unix установлена.
Он только обновляет данные в базе данных пользователей Samba.

                Если вы хотите немедленно добавить пользователя и синхронизировать пароль,
используйте опцию -a smbpasswd.

man smb.conf
unix unix password sync (G)
            Этот логический параметр определяет, будет ли Samba пытаться синхронизировать пароль UNIX
с паролем SMB при изменении зашифрованного пароля SMB в файле smbpasswd.
Если для этого параметра установлено значение «да», указанная программа
            в программе passwd параметр называется AS ROOT - чтобы разрешить
установку нового пароля UNIX без доступа к старому паролю UNIX
(поскольку код смены пароля SMB не имеет доступа к открытому тексту старого пароля, только
            новый).

            Этот параметр не имеет никакого эффекта, если samba работает как контроллер домена Active Directory.
В этом случае обратите внимание на параметр идентификаторов ключей gpg для хэша паролей
и команду syncpasswords пользователя samba-tool.

            По умолчанию: unix password sync = no.

# systemctl status smbd - ?
« Последнее редактирование: 11.12.2023 12:35:47 от rits »

Оффлайн Арбичев

  • Завсегдатай
  • *
  • Сообщений: 518
    • Email
Re: Создание пользователя SAMBA
« Ответ #10 : 11.12.2023 17:46:34 »

admin@ASRock-880GM-LE:~> su -
Пароль:
ASRock-880GM-LE:~ # systemctl status smbd
Unit smbd.service could not be found.
ASRock-880GM-LE:~ #

Как-то так.
Lenovo Z 50-70 openSUSE Tumbleewed

Оффлайн Nicom

  • Завсегдатай
  • *
  • Сообщений: 676
Re: Создание пользователя SAMBA
« Ответ #11 : 11.12.2023 20:23:16 »

admin@ASRock-880GM-LE:~> su -
Пароль:
ASRock-880GM-LE:~ # systemctl status smbd
Unit smbd.service could not be found.
ASRock-880GM-LE:~ #

Как-то так.
В Альте smb.service и nmb.service.

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 055
  • ITS
Re: Создание пользователя SAMBA
« Ответ #12 : 11.12.2023 21:57:07 »
В Альте smb.service
точно, ошибся

Оффлайн Арбичев

  • Завсегдатай
  • *
  • Сообщений: 518
    • Email
Re: Создание пользователя SAMBA
« Ответ #13 : 12.12.2023 12:52:54 »
Всем здравствуйте!

ASRock-880GM-LE:~ # systemctl status smb
● smb.service - Samba SMB Daemon
     Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; preset: disabled)
     Active: active (running) since Tue 2023-12-12 12:22:28 MSK; 27min ago
       Docs: man:smbd(8)
             man:samba(7)
             man:smb.conf(5)
    Process: 1274 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS)
   Main PID: 1280 (smbd)
     Status: "smbd: ready to serve connections..."
      Tasks: 3 (limit: 4915)
        CPU: 519ms
     CGroup: /system.slice/smb.service
             ├─1280 /usr/sbin/smbd --foreground --no-process-group
             ├─1297 /usr/sbin/smbd --foreground --no-process-group
             └─1298 /usr/sbin/smbd --foreground --no-process-group

Dec 12 12:22:27 ASRock-880GM-LE update-apparmor-samba-profile[1274]: + test No == Yes
Dec 12 12:22:27 ASRock-880GM-LE update-apparmor-samba-profile[1274]: + test -e /etc/apparmor.d/local/usr.sbin.smbd-shares
Dec 12 12:22:27 ASRock-880GM-LE update-apparmor-samba-profile[1274]: + grep -q 'update-apparmor-samba-profile 1.3' /etc/apparmor.d/local/usr.sbin.smbd-shares
Dec 12 12:22:27 ASRock-880GM-LE update-apparmor-samba-profile[1274]: + test /etc/samba/smb.conf -nt /etc/apparmor.d/local/usr.sbin.smbd-shares
Dec 12 12:22:27 ASRock-880GM-LE update-apparmor-samba-profile[1274]: + silentexit 'smb.conf is older than the AppArmor profile sniplet'
Dec 12 12:22:27 ASRock-880GM-LE update-apparmor-samba-profile[1274]: + exit 0
Dec 12 12:22:28 ASRock-880GM-LE smbd[1280]: [2023/12/12 12:22:28.126979,  0] ../../source3/smbd/server.c:1746(main)
Dec 12 12:22:28 ASRock-880GM-LE smbd[1280]:   smbd version 4.19.2-git.324.fa0b54b91bSUSE-oS16.9-x86_64 started.
Dec 12 12:22:28 ASRock-880GM-LE smbd[1280]:   Copyright Andrew Tridgell and the Samba Team 1992-2023
Dec 12 12:22:28 ASRock-880GM-LE systemd[1]: Started Samba SMB Daemon.
ASRock-880GM-LE:~ #

Вроде все работает.
Lenovo Z 50-70 openSUSE Tumbleewed

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 055
  • ITS
Re: Создание пользователя SAMBA
« Ответ #14 : 12.12.2023 14:59:04 »
Вроде все работает.
Ну, тогда менять надо справочник ))

Вот : # pdbedit -a user1 --debug-stdout -d 9

Attempting to register passdb backend samba_dsdb
Successfully added passdb backend 'samba_dsdb'
Attempting to register passdb backend samba4
Successfully added passdb backend 'samba4'
Attempting to find a passdb backend to match tdbsam (tdbsam)
No builtin backend found, trying to load plugin
load_module_absolute_path: Probing module '/usr/lib64/samba/pdb/tdbsam.so'
load_module_absolute_path: Module '/usr/lib64/samba/pdb/tdbsam.so' loaded
Attempting to register passdb backend tdbsam
Successfully added passdb backend 'tdbsam'
Found pdb backend tdbsam
pdb backend tdbsam has a valid init
new password:
retype new password:
tdbsam_open: successfully opened /var/lib/samba/private/passdb.tdb
pdb_getsampwnam (TDB): error fetching database.
 Key: USER_user1
Finding user user1
Trying _Get_Pwnam(), username as lowercase is user1
Trying _Get_Pwnam(), username as uppercase is USER1
Checking combinations of 0 uppercase letters in user1
Get_Pwnam_internals didn't find user [user1]!
Could not find user user1 and no add script defined
Failed to add entry for user user1.

Гуглоперевод:
Попытка зарегистрировать серверную часть passdb samba_dsdb
Серверная часть passdb «samba_dsdb» успешно добавлена.
Попытка зарегистрировать серверную часть passdb samba4
Серверная часть passdb «samba4» успешно добавлена.
Попытка найти серверную часть passdb, соответствующую tdbsam (tdbsam)
Встроенный бэкэнд не найден, пытаюсь загрузить плагин
load_module_absolute_path: Модуль проверки '/usr/lib64/samba/pdb/tdbsam.so'
load_module_absolute_path: Модуль '/usr/lib64/samba/pdb/tdbsam.so' загружен
Попытка зарегистрировать серверную часть passdb tdbsam
Серверная часть passdb «tdbsam» успешно добавлена.
Обнаружен серверный компонент pdb tdbsam
Серверная часть pdb tdbsam имеет действительную инициализацию
Новый пароль:
Введите повторно новый пароль:
tdbsam_open: успешно открыт /var/lib/samba/private/passdb.tdb
pdb_getsampwnam (TDB): ошибка выборки базы данных.
  Ключ: USER_user1
Поиск пользователя user1
При попытке _Get_Pwnam() имя пользователя в нижнем регистре — user1.
При попытке _Get_Pwnam() имя пользователя в верхнем регистре — USER1.
Проверка комбинаций из 0 заглавных букв в user1
Get_Pwnam_internals не нашел пользователя [user1]!
Не удалось найти пользователя user1, и не определен сценарий добавления.
Не удалось добавить запись для пользователя user1.

Не может найти пользователя (в системе наверно) и другой сценарий добавления также отсутствует.
Кто виноват и что делать?
По мне, так может и лучше, что синхронизируется с аккаунтом.
С альтовской "чрутофобией",  да еще какие то независимые пользователи ... ))

 Чтобы пользователь Samba имел доступ к файлам и ресурсам на системе, все равно необходимо создать соответствующего системного пользователя с соответствующими разрешениями.
А как можно использовать "локального пользователя Samba"  и зачем?
« Последнее редактирование: 12.12.2023 15:20:56 от rits »