Dependendo de quão experientes são seus usuários, você pode querer que eles copiem o arquivo em vez de forçar o arquivo em suas contas, ou você pode instalá-lo centralmente como sugerido por mariaczi nos comentários .
O arquivo precisa ser copiado para o diretório pessoal de cada usuário, se eu o entendi corretamente. E eu estou supondo que você está fazendo isso como root. Após a conclusão da operação, presumo que as cópias não apenas residam no diretório inicial de cada usuário, mas também sejam de propriedade desse usuário e pertençam ao grupo users
com permissões 0644.
Isso pode ser feito por install
em um loop (supondo que os diretórios base estejam localizados em /home
). O utilitário install
funciona um pouco como cp
, mas permite definir a propriedade do usuário e do grupo, bem como permissões de uma só vez.
for homedir in /home/*/; do
user=${homedir%/} # remove '/' from end of $homedir
user=${user#/home} # remove '/home' from start of $user
install -b -o "$user" -g users -m 644 ~/baz.desktop "$homedir"
done
install -b
criará um backup do arquivo no destino, se já existir. Alternativamente, você pode pular a instalação do arquivo completamente se ele já existir:
for homedir in /home/*/; do
if [ ! -e "$homedir/baz.desktop" ]; then
user=${homedir%/} # remove '/' from end of $homedir
user=${user#/home} # remove '/home' from start of $user
install -o "$user" -g users -m 644 ~/baz.desktop "$homedir"
fi
done
Relacionados:
- Por que * não * analisar 'ls'?
- O manual de
install
no seu sistema.