Причина, по которой вы видите смену владельца, скорее всего, ваш редактор не изменяет файл. Вместо этого он создает новый файл (обязательно принадлежащий вам), который заменяет существующий.
GNU sed -i
использует эту модель, поэтому редактирование файла приведет к смене владельца:
$ ls -l foo
-rwxrwxrwx 1 bob ourgroup 26 Nov 5 18:10 foo
$ sed -i 's/foo/bar/g' foo
(no output)
$ ls -l foo
-rwxrwxrwx 1 alice ourgroup 26 Nov 5 18:10 foo
Чтобы сохранить право собственности, просто используйте редактор, который будет перезаписывать, а не заменять. nano
и vim
являются интерактивными редакторами, которые делают это, в то время как ed
является скриптовым.
Обратите внимание, что если в файле установлен бит suid u + s, файл не может быть изменен кем-либо еще при сохранении этого разрешения.