Я делаю оболочку bash script, и я хочу изменить группу по умолчанию, в которой создаются новые файлы. Я знаю, что вы используете umask
для изменения прав доступа. Есть ли что-то для группы?
Bash Scripting - Как настроить группу, с которой будут созданы новые файлы?
Ответ 1
newgrp
(1)
Ответ 2
Есть несколько способов сделать это:
-
Вы можете изменить группу по умолчанию для всех файлов, созданных в определенном , установив флаг setgid в каталоге (
chmod g+s _dir_
). Затем будут созданы новые файлы в каталоге с группой каталог (устанавливается с помощьюchgrp <group> <dir>
). Это относится к любой программе который создает файлы в каталоге.Обратите внимание, что это автоматически унаследовано для новых подкаталогов (начиная с Linux 3.10), однако, если подкаталоги уже присутствовали, это изменение не будут применяться к ним (используйте для этого флаг
-R
). -
Если флаг setgid не установлен, то группа по умолчанию будет установлена на текущий идентификатор группы процесса создания. Хотя это можно установить с помощью
newgrp
команда, которая создает новую оболочку, которую трудно использовать в оболочке script. Если вы хотите выполнить определенную команду (или набор команд) с измененной группой, используйте командуsg <group> <command>
.sg
не является стандартной командой POSIX, но доступен в Linux.