Почему я получаю разные разрешения при создании файла с другой группой и как его настроить?

Когда я создаю файлы с другой группой, я вижу, что разрешения разные

Я сделал это как root:

groupadd stack useradd stack1 gpasswd stack (choose a password) su stack1 touch testfile I did ls -l and I see permissions rw-rw-r-- newgrp stack (enter the password I previously created for that group) touch test2 I did ls -l and I see permissions of file test2 rw-r--r-- 

И где я могу изменить этот параметр, я думаю, что это связано с umask, но я не уверен.

Благодарю.

Как вы знаете, разница обусловлена ​​разными значениями umask. Когда вы создаете файл, вы указываете максимальные разрешения, которые должен иметь файл. Для touch это будет rw-rw-rw- . Затем umask используется для уменьшения разрешений.

В общем случае вы должны использовать su - stack1 для переключения на пользователя.

newgrp – сложная программа для записи. Обычно это suid, так как ему нужно манипулировать группами. В идеале он будет встроен в оболочку, например, umask, поэтому он изменит группы для текущего процесса, но это несовместимо с тем, что он является suid. Таким образом, обычно это двоичный файл suid, который запрашивает пароль, и если проверка прошла успешно, он заменит себя оболочкой. Эта оболочка может запускать свой код запуска.

Если ваш файл ~ / .bashrc имеет в нем команду umask, прямо или косвенно, это объясняет разницу в значениях.