mkdir как другой пользователь на основе файла конфигурации

mkdir как другой пользователь на основе файла конфигурации

У нас есть общая среда 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

Связанный контент