У меня есть сервер OpenIndiana с ZFS, который используется совместно nobody
пользователь и группа. Я не совсем понимаю разрешения ACL Solaris, но я знаю разрешения в стиле Linux. Клиент - Windows 8, сервер - OpenIndiana - oi_148.
Я не могу понять, как правильно настроить разрешение на запись для клиента Windows. Он может создавать новые файлы, но не может изменять файлы, созданные оболочкой в OpenIndiana.
Когда файл ("local file"
) создается локально как пользователь nobody
в bash и еще один файл ("smb file"
) созданный удаленно через SMB (как nobody
также), они совершенно разные по разрешениям:
# ls -V
-rw-r--r-- 1 nobody nobody 0 Dec 2 12:24 local file
owner@:rw-p--aARWcCos:-------:allow
group@:r-----a-R-c--s:-------:allow
everyone@:r-----a-R-c--s:-------:allow
-rwx------+ 1 nobody nobody 0 Dec 2 12:24 smb file
user:nobody:rwxpdDaARWcCos:-------:allow
group:2147483648:rwxpdDaARWcCos:-------:allow
В bash я могу писать на smb file
, но наоборот, клиент Windows не может писать в local file
. Это сбивает меня с толку, потому что кажется, что он должен позволить клиенту SMB писать на local file
, так как nobody
является собственником и имеет w
в ACL.
В sharesmb
настройка довольно скучная, хотя я надеюсь, что здесь можно что-то установить, похожее на umask:
sharesmb name=shared,guestok=true
Как я могу заставить эти двое работать вместе и иметь симметричную систему разрешений, в которой и SMB, и локальный пользователь выдают одинаковые разрешения?
Есть ли какой-то ACL, который можно установить в корне файловой системы, чтобы все файлы создавались аналогичным образом?
С моей настройкой было несколько проблем:
d
и D
flags установлен, что означает, что его нельзя удалить / переместить, хотя я до сих пор не понимаю, почему локальный пользователь смог удалить его, когда SMB не смог.fd
флаги.aclinherit
свойство должно быть установлено на passthrough
вместо того restricted
.например.:
# chmod A=owner@:rwxpdDaARWcCos:fd:allow /z/shared
# zfs set aclinherit=passthrough z/shared
После создания файлов из SMB и локально:
$ ls -V
total 2
-rwx------+ 1 nobody nobody 0 Dec 8 00:17 local
owner@:rwxpdDaARWcCos:------I:allow
-rwx------+ 1 nobody nobody 0 Dec 8 00:17 smb
owner@:rwxpdDaARWcCos:------I:allow
Обратите внимание I
что показывает, что ACL унаследован.
Настройки ZFS описаны в Руководство по администрированию ZFS:
ограниченный - Для новых объектов права write_owner и write_acl удаляются при наследовании записи ACL.
пройти через - Когда значение свойства установлено на сквозную передачу, файлы создаются в режиме, определяемом наследуемыми ACE. Если не существует наследуемых ACE, влияющих на режим, то режим устанавливается в соответствии с режимом, запрошенным приложением.
Теперь клиент SMB может удалять файлы, созданные локально.