Подтвердить что ты не робот

Bash Scripting - Как настроить группу, с которой будут созданы новые файлы?

Я делаю оболочку bash script, и я хочу изменить группу по умолчанию, в которой создаются новые файлы. Я знаю, что вы используете umask для изменения прав доступа. Есть ли что-то для группы?

4b9b3361

Ответ 2

Есть несколько способов сделать это:

  • Вы можете изменить группу по умолчанию для всех файлов, созданных в определенном , установив флаг setgid в каталоге (chmod g+s _dir_). Затем будут созданы новые файлы в каталоге с группой каталог (устанавливается с помощью chgrp <group> <dir>). Это относится к любой программе который создает файлы в каталоге.

    Обратите внимание, что это автоматически унаследовано для новых подкаталогов (начиная с Linux 3.10), однако, если подкаталоги уже присутствовали, это изменение не будут применяться к ним (используйте для этого флаг -R).

  • Если флаг setgid не установлен, то группа по умолчанию будет установлена ​​на текущий идентификатор группы процесса создания. Хотя это можно установить с помощью newgrp команда, которая создает новую оболочку, которую трудно использовать в оболочке script. Если вы хотите выполнить определенную команду (или набор команд) с измененной группой, используйте команду sg <group> <command>.

    sg не является стандартной командой POSIX, но доступен в Linux.