Como você sabe, a diferença é devido aos diferentes valores de umask. Quando você cria um arquivo, especifica as permissões máximas que o arquivo deve ter. Por touch
, isso seria rw-rw-rw-
. O umask é então usado para reduzir as permissões.
Em geral, você deve usar su - stack1
para alternar para um usuário.
O newgrp é um programa difícil de escrever. Normalmente é suid porque precisa manipular os grupos. Idealmente, seria integrado ao shell como umask, portanto, alteraria os grupos para o processo atual, mas isso é incompatível com o suid. Então, normalmente é um binário suid que solicita a senha e, se a validação for bem-sucedida, ela será substituída por um shell. Este shell pode executar seu código de inicialização.
Se o seu arquivo ~ / .bashrc tiver um comando umask, direta ou indiretamente, isso explicaria a diferença nos valores.