Біти дозволу не виконуються на частці 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 до * nix через samba (у такому випадку чому samba, а не nfs)
ксенотеррацид

@xenoterracide, я торкаюсь файлу на папці за допомогою клієнта Linux; У цьому випадку я переходжу від * nix до * nix. Існує суміш машин Windows, Mac та Linux, які підключаються до цієї послуги samba.
Джонатан Уотні

Ви впевнені, що ваші маски хороші? створити маску, маску безпеки, маску каталогу. Документи не зрозумілі по погоді, "0" сам по собі справедливий для масок. Крім цього ... як це не дивно.
габе.

Відповіді:


2

Дозволи на самбу працюють лише на клієнтах мережі 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]$

Дякую. Нарешті, був шанс спробувати це, але, на жаль, проблема залишається.
Джонатан Уотні

Цікаво, чи це може бути твій умаск?
Девід Аллан Фінч

Мій umask - 0022. Будь-які інші ідеї? :)
Jonathon Watney

Мені потрібно спробувати це на моїй скриньці Linux. Ще не встигли. До речі, ми використовуємо NFS Unix для Linux тощо, а не SMB.
Девід Аллан Фінч
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.