O que eu preciso no meu script para poder alterar a propriedade de uma estrutura de diretório que pertence à raiz para o usuário atual executando o script bash?

2

Meu script bash tem a seguinte seção:

su root -c chown -R smithb:other /export/home/smithb/workspace/rootownsit/
exit

O diretório rootownsit e seus dois subdiretórios foram criados e pertencem a root . Eu pensei que o que eu tenho acima funcionaria, mas isso não acontece. Executando meu script bash como meu usuário, sou solicitado a fornecer a senha de root e recebo uma mensagem de uso para chown depois que eu digito a senha raiz. Eu preciso mudar a propriedade do diretório rootownsit e seus subdiretórios.

    
por DemiSheep 18.07.2014 / 16:15

1 resposta

1

Este é um problema de sintaxe simples. su recebe um único argumento de comando (opcional), que é analisado pelo shell de login do usuário de destino. Aqui, o comando que você está executando como root é o argumento de -c , que é apenas chown . Coloque o comando entre aspas no seu script para que ele se torne um único argumento.

su -c 'chown -R smithb:other /export/home/smithb/workspace/rootownsit/' root

O comando interno exit sai do script; Se você não quiser que isso aconteça, não chame exit .

    
por 19.07.2014 / 00:37