Você está tentando alterar o conteúdo de /opt/Folder
para seu próprio ID do usuário, não é você.
Aqui está o seu comando mais uma vez:
sudo chown -R $USER:$USER /opt/Folder
Isso funciona na linha de comando porque a variável $USER
é avaliada antes da execução do comando e, portanto, é executada como esta (supondo que seu nome de usuário seja george
):
sudo chown -R george:george /opt/Folder
Por outro lado, quando você executa um comando com sudo
, entre outras coisas, a variável $USER
recebe o valor do usuário de destino, que neste caso é root
. Portanto, executando sudo bash mysetup.sh
, você está executando mysetup.sh
como root, então o comando é executado com $USER
definido como root
e é avaliado como este
sudo chown -R root:root /opt/Folder
A solução no seu caso é evitar a execução de todo o script em sudo
e permitir que o script use sudo
, quando necessário, para executar comandos específicos com privilégios elevados. Em outras palavras, use bash mysetup.sh
em vez de sudo bash mysetup.sh
.