Você sempre pode sudo -u username touch filename quando seu script é executado como root . Geralmente não requer senha, dependendo da configuração do sudoers .
Como alternativa, execute su username -c touch filename . Os argumentos adicionais são fornecidos para o shell do usuário, e a opção -c para o shell executa os comandos especificados por convenção.
Alguns comandos (como mkdir ) suportam argumentos para especificar as permissões:
mkdir -m 0700 foo
Por padrão, as operações de arquivo respeitam o umask definido para o shell. Define quais permissões são negadas . Um umask de 0022 , por exemplo, não define permissões de gravação para grupos e outros. Defina como 0077 para evitar que o grupo e outras pessoas recebam permissões.
Você pode definir os setgid nos diretórios para que todos os arquivos criados herdem sua associação ao grupo:
chmod g+s someDir
Alguns Unixes suportam o mesmo comportamento de setuid ( chmod u+s ), mas não o Linux.