Ketika saya menggunakan sudo untuk melakukan beberapa aktivitas dengan file, file ini mengubah kepemilikan. Bagaimana saya bisa menggunakan perintah dengan sudo tanpa mengubah pemilik file?
Contoh file archivos35.sh berasal dari apache tapi saya menggunakan sed (dengan usr admin sudo)
$ ls -l
-rwxr-xrw-. 1 apache apache 181 Aug 5 11:56 archivos35.sh
Pengguna admin
dengan sudo ---
sudo sed -i s/old/new/g archivos35.sh
Tetapi melakukan perintah itu dengan sudo mengubah pemilik file
$ ls -l
-rwxr-xrw-. 1 admin apache 181 Aug 5 11:56 archivos35.sh
Bagaimana saya bisa menghindari menggunakan perintah dengan sudo untuk mengubah pemilik file? Saya hanya ingin membuat perubahan pada file tanpa memodifikasi pemiliknya.
Jawaban:
Jika Anda perlu menggunakan
sudo
untuk memodifikasi file, maka gunakan untuk beralih ke pengguna yang tepat. Anda tidak perlu beralih ke root, itu hanya default. Jadi, dalam kasus Anda, Anda ingin melakukan:Itu akan menjalankan
sed
perintah sebagai penggunaapache
.sumber
Anda tidak benar-benar mengubah kepemilikan file, melainkan menghapus file lama dan membuat yang baru. Ketika Anda melakukan itu, file baru dibuat milik uid pembuatnya. Untuk menghindari ini, Anda harus memodifikasi file di tempat. Edit menggunakan editor teks yang menyimpan dengan menimpa file asli di tempat. Atau jalankan perintah sed Anda dengan output ke file temp dan kemudian salin file temp ke file asli.
sumber
-i
opsi alias--in-place
akan benar-benar memodifikasi inplace ...ed
atauex
atauvi
/vim
.