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