Quando uso o sudo para fazer algumas atividades com arquivos, esses arquivos mudam de propriedade. Como posso usar comandos com o sudo sem alterar o proprietário dos arquivos?
O arquivo de exemplo archivos35.sh é do apache, mas eu uso sed (com usr admin sudo)
$ ls -l
-rwxr-xrw-. 1 apache apache 181 Aug 5 11:56 archivos35.sh
Usuário admin
com sudo ---
sudo sed -i s/old/new/g archivos35.sh
Mas fazer esse comando com sudo altera o proprietário do arquivo
$ ls -l
-rwxr-xrw-. 1 admin apache 181 Aug 5 11:56 archivos35.sh
Como evitar o uso do comando com sudo para alterar o proprietário do arquivo? Eu só quero fazer alterações no arquivo sem modificar seu proprietário.
Respostas:
Se você precisar
sudo
modificar o arquivo, use-o para alternar para o usuário certo. Você não precisa mudar para o root, esse é apenas o padrão. Então, no seu caso, você gostaria de fazer:Isso executará o
sed
comando como usuárioapache
.fonte
Você não está realmente alterando a propriedade do arquivo, mas sim removendo o arquivo antigo e criando um novo. Quando você faz isso, o novo arquivo é criado, de propriedade do uid do criador. Para evitar isso, você deve modificar o arquivo no local. Edite-o usando um editor de texto que salva substituindo o arquivo original no local. Ou execute seus comandos sed com saída para um arquivo temporário e copie o arquivo temporário sobre o arquivo original.
fonte
-i
opção aka--in-place
seria realmente modificar inplace ...ed
ouex
ouvi
/vim
.