Биты разрешений не применяются к общему ресурсу samba

12

У меня проблема, когда биты разрешений не применяются к общему ресурсу samba с помощью клиента Linux. Я настроил samba на сервере для принудительной установки определенного пользователя, группы и битов разрешений, и это работает, как и ожидалось, пока я не коснусь файла или он не станет целью перенаправления ввода-вывода.

Вот что происходит:

user@linuxbox:~-->ls -l ~/archive/foo.txt
ls: cannot access /home/user/archive/foo.txt: No such file or directory
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rw-rw-r-- 1 archive archive 0 2010-09-13 20:29 /home/user/archive/foo.txt
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rwxrwxrwx 1 archive archive 0 2010-09-13 20:30 /home/user/archive/foo.txt

Обратите внимание, когда я касаюсь существующего файла, его биты разрешения равны 0777. Предполагается, что они равны 0664, как при первом создании. Как я могу применить 0664 к существующему файлу?

У меня версия 3.0.24 на сервере и версия 3.4.7 на клиенте. Вот мой smb.conf:

[global]
interfaces = egiga0
unix charset = UTF8
workgroup = workgroup
netbios name = foo
server string = Foo
security = USER
map to guest = bad user
host msdfs = no
encrypt passwords = yes

[archive]
comment = File Archive
path = /home/archive
force user = archive
force group = archive
read only = yes
write list = @archive
guest ok = yes
create mask = 0
force create mode = 0664
security mask = 0
force security mode = 0664
directory mask = 0
force directory mode = 0775
directory security mask = 0
force directory security mode = 0775
Джонатон Уотни
источник
Что находится в вашем smb.conf?
Grizly
Я поместил содержимое моего файла smb.conf. Честно говоря, я не уверен, что мне потребуются все явные биты режима и маски.
Джонатон Уотни
@Jonathon все твои файлы, touchпохоже, в системе * nix ... это система, в которой ты создаешь файл в windows? или вы создаете файл из системы Windows? или это * nix to * nix через samba (в этом случае почему samba, а не nfs)
ксенотеррацид
@xenoterracide, я касаюсь файла на общем ресурсе с помощью клиента Linux; В этом случае я собираюсь * nix * nix. Существует множество компьютеров под управлением Windows, Mac и Linux, подключающихся к этому сервису samba.
Джонатон Уотни
Вы уверены, что ваши маски хороши? создать маску, маску безопасности, маску каталога. В документах нет ясности о погоде, само по себе «0» действительно для масок. Кроме этого ... как странно.
таращиться

Ответы:

2

Разрешения samba работают только на сетевых клиентах SMB (т.е. Windows). Если вы хотите применить это на сервере (и любых клиентах NFS), вам нужно установить бит закрепления для всех каталогов.

Сначала исправьте файлы, которые там есть:

chown -R archive /home/archive 
chgrp -R archive /home/archive 
find /home/archive -type d -exec chmod 0775 {} \;
find /home/archive -type f -exec chmod 0664 {} \;

затем закрепите это с помощью группового залипания

find /home/archive -type d -exec chmod g+s {} \;

Это не навязчиво, но решает 99% проблем такого рода.

С уважением DaveF

Результат на моей коробке Solaris:

davef@dalek[10]$ cd /proj/ftptmp
davef@dalek[11]$ ls -ld .
drwxrwsr-x  60 root     ftpusers     377 Oct  5 09:31 ./
davef@dalek[12]$
davef@dalek[12]$ ls -l foo.txt
foo.txt: No such file or directory
davef@dalek[13]$ touch foo.txt
davef@dalek[14]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[15]$ touch foo.txt
davef@dalek[16]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[17]$
davef@dalek[17]$ umask
2
davef@dalek[18]$
Дэвид Аллан Финч
источник
Благодарю. Наконец-то был шанс попробовать это, но, к сожалению, проблема остается.
Джонатон Уотни
Интересно, это может быть твой Умаск?
Дэвид Аллан Финч
Мой Маска 0022. Есть еще идеи? :)
Джонатон Уотни
Мне нужно попробовать это на моем компьютере с Linux. Еще не успел. Кстати, мы используем NFS Unix для Linux и т. Д. Не SMB.
Дэвид Аллан Финч