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