Como criar um arquivo em um local específico para cada usuário?

3

Eu estou executando uma instalação do Ubuntu LTSP em uma escola com cerca de 60 usuários únicos. Ocasionalmente, precisamos compartilhar um documento, criar um diretório ou colocar um arquivo de configuração na conta de cada usuário. Obviamente, não é eficiente fazer isso de cada vez.

Eu sei que posso colocar um arquivo no diretório pessoal de todos os usuários com:

ls /home/ | xargs -n 1 sudo cp -i <file>

Mas e se eu precisar colocá-lo em algum lugar específico, como ~/.config/autostart ?

Ou se eu precisar criar o diretório ~/Desktop/foo/ para cada usuário?

Obrigado pela sua ajuda, e se alguém puder sugerir recursos para eu aprender mais, seria fantástico.

    
por user244998 19.06.2015 / 16:19

1 resposta

5

cp tem uma opção para especificar o diretório de destino separadamente: -t . Então você pode fazer:

for u in /home/*
do
    sudo cp -t "$u/.config/autostart" -i <file>
    sudo mkdir "$u/Desktop/foo"
done

Em geral, não há uma maneira simples de gerenciar os diretórios pessoais do usuário. Você pode especificar o que é criado nele quando o diretório inicial é criado pela primeira vez, mas depois disso, cada usuário é o próprio usuário.

Então, você teria que usar algum tipo de script. Neste caso, usei scripts de shell. Confira os guias do TLDP em Bash e scripting no Bash . Mesmo com ferramentas como Puppet, esta não é uma tarefa trivial .

    
por muru 19.06.2015 / 16:28