У нас есть общая среда Linux, где большинство файлов смонтированы на многих машинах на общем ресурсе NFSv3, который мы не контролируем. Поскольку у нас есть только базовые разрешения файловой системы (без ACL), мы ищем способ разрешить людям запускать mkdir на общем диске, не предоставляя всей группе разрешения на запись в корневой каталог общего ресурса.
Например, двоичный файл с установленным битом setuid и владельцем двоичного файла, установленным на владельца общего ресурса, может прочитать файл конфигурации, который определит, каким пользователям или группам разрешено создавать каталог в указанном общем каталоге. Затем он может решить, разрешено ли пользователю, запускающему двоичный файл, создавать каталог в общем ресурсе.
Разрешения для общего ресурса верхнего уровня будут следующими:
drwxr-x--- 1 owner group …
Итак, идея в том, что есть оболочка для mkdir, которая затем запускается как владелец общего ресурса, проверяет файл конфигурации и создает запрошенный каталог, если файл конфигурации это позволяет. Таким образом, пользователи не могут просто запустить встроенный mkdir.
Созданный каталог будет выглядеть примерно так:
drwx------ 1 normaluser group 4096 Nov 3 18:14 newdir
Это лучший подход? Или мы изобретаем велосипед?
решение1
Устанавливать umask
при входе каждого пользователя в систему:
umask 002
После этого группа будет иметь те же права, что и пользователь:
mkdir newdir
ls -ld newdir
drwxrwxr-x+ 1 roaima roaima 0 Nov 3 22:04 newdir
Если это не то, что вам нужно, то создайте псевдоним для mkdir
alias md='mkdir -m 775'
md newdir