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
.