Por que há um resultado diferente ao executar como user1 e su-user1 -c “command”?

0

Ao executar como user1 no mesmo diretório ( / home / user1 / WWW )

[user1@server1 WWW (master)]# touch c

Cria o arquivo c dentro do diretório.

[root@server1 WWW (master) ACCEPTATIE SERVER]# su - user1 -c "touch c"

dá o erro

touch: cannot touch 'c': Permission denied

Por que isso pode ser?

    
por Thomas 15.08.2018 / 15:13

1 resposta

4

Quando você executa su - username , realiza um login completo como aquele usuário, o que significa que você é transferido para o diretório pessoal do usuário. Ao executar touch c dessa forma, você tenta executar esse comando no diretório pessoal do usuário.

Em vez disso, elimine o - da linha de comando:

su user1 -c "touch c"

Isso executaria touch c as user1 no diretório atual .

Especulação:

O comando su - original falhou porque já existe um arquivo chamado c no diretório pessoal de user1 de propriedade de outro usuário.

    
por 15.08.2018 / 15:27

Tags