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.