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

Я могу смонтировать общий ресурс samba из Windows и посмотреть, что он содержит, но не могу создавать файлы или каталоги

[Предупреждение новичка! я впервые настраиваю Samba. Я почти у цели, но ...]

Сервер работает под управлением Centos 8, Samba V4.10.4 Общая файловая система - xfs, я включил расширенные атрибуты и протестировал их, так что она работает. Я также протестировал способность самбы сохранять атрибуты dos, но я думаю, что проблема, вероятно, в том, что что-то неправильно настроено в ACL или расширенных атрибутах.

Я хочу использовать этот сервер для резервного копирования ПК с Windows 10 Pro.

Ситуация такова, что я могу просматривать сервер и монтировать его общие ресурсы, но я не могу создавать файлы или каталоги на стороне клиента. Я создал каталог на общем ресурсе локально, который я могу видеть от клиента.

Если я попытаюсь создать новую папку из Windows, я получаю сообщение «Доступ к целевой папке запрещен». На сервере /var/logs/log.smbd это отображается как

[2020/06/04 17:39:06.739107,  2] ../../source3/smbd/open.c:4057(open_directory)
  open_directory: unable to create New folder. Error was NT_STATUS_ACCESS_DENIED
[2020/06/04 17:39:13.790033,  2] ../../source3/smbd/server.c:837(remove_child_pid)
  Could not find child 28630 -- ignoring
[2020/06/04 17:39:15.092117,  2] ../../lib/util/tevent_debug.c:66(samba_tevent_debug)
  samba_tevent: EPOLL_CTL_DEL EBADF for fde[0x556b012716b0] mpx_fde[(nil)] fd[15] - disabling

Я определил общий ресурс [homes], но он не отображается, когда я просматриваю сервер. Плевать на это. Я действительно забочусь о Windows ACL.

Я определил две учетные записи samba и связанные учетные записи Linux. «hank» - это тот же идентификатор пользователя, что и у меня в клиенте Windows, и он сопоставлен с моей учетной записью Linux с помощью smbusers. "hankwin" не отображается и не имеет оболочки входа в Linux. Я могу использовать любой из них, чтобы смонтировать соответствующие общие ресурсы на машине с Windows.

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

icacls на клиенте дает следующий отчет для общего ресурса [hankwin], установленного в y: и вложенной папки y: \ stuff

icacls y:
y: S-1-5-21-1897013661-3875350279-343821458-1021:(F)
   S-1-22-2-1003:(RX)
   Everyone:(RX)
   CREATOR OWNER:(OI)(CI)(IO)(F)
   CREATOR GROUP:(OI)(CI)(IO)(F)
   Everyone:(OI)(CI)(IO)(F)

Successfully processed 1 files; Failed processing 0 files
>icacls y:\stuff
y:\stuff S-1-5-21-1897013661-3875350279-343821458-1021:(F)
         S-1-22-2-1003:(RX)
         Everyone:(RX)
         CREATOR OWNER:(OI)(CI)(IO)(F)
         CREATOR GROUP:(OI)(CI)(IO)(F)
         Everyone:(OI)(CI)(IO)(F)

Successfully processed 1 files; Failed processing 0 files

Вот разрешения для файлов Linux

drwxrws---. 3 hankwin winshare 35 Jun  4 16:52 hankwin
drwxrws---. 2 root    winshare  6 Jun  4 16:29 hank
ls -l *
hank:
total 0

hankwin:
total 0
drwxr-sr-x. 2 hankwin winshare 6 Jun  4 16:52 stuff
-rw-rwxr--+ 1 hankwin winshare 0 Jun  4 12:02 test.txt

Файл test.txt невидим для клиента.

Вот файл smb.conf

[global]
        path = /srv/smb
        writeable = yes
        printing = cups
        security = user
        netbios name = konishiki
        load printers = yes
        sync always = yes
        create mode = 777
        os level = 20
        socket options = TCP_NODELAY
        cups options = raw
        passdb backend = tdbsam
        printcap name = cups
        workgroup = WORKGROUP
        directory mode = 777
        encrypt passwords = yes
        log level = 2
        unix password sync = yes
        vfs objects = acl_xattr
        map acl inherit = yes
        wins support = yes
        username map = /etc/samba/smbusers
        admin users = hank, hankwin hcohe



[homes]
        inherit acls = Yes
        browseable = no
        valid users = %S, %D%w%S
        writable = yes
        path = /home
        comment = Home Directories

[hankwin]
        path = /srv/smb/hankwin/
        read only = no
        store dos attributes = yes

[hank]
        path = /srv/smb/hank
        read only = no
        store dos attributes = yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775

Спасибо всем, кто проявил настойчивость, чтобы преодолеть все это. Мы ценим любые предложения.

Хэнк Коэн

Решено! Проблема заключалась в том, что selinux не давал самбе необходимые разрешения для экспорта общих ресурсов. Это исправило это.

 setsebool -P -V samba_export_all_rw=on samba_export_all_rw=on

Это решение может быть специфическим для Centos или RHEL 8. Также, если вы хотите разрешить пользователям монтировать домашние каталоги, для этого есть еще один bool.