Как запретить пользователям переименование файлов при предоставлении разрешений на запись в Linux

Для некоторых специальных целей я хочу запретить пользователям без полномочий root Server изменять или переименовывать имена файлов. Однако они могут изменять и записывать содержимое файла. Как это сделать из командной строки.

Чтобы переименовать файл, права на запись в файл не имеют значения, переименование файла – это изменение в каталоге, а не в файл. Это изменяет запись в каталоге, чтобы иметь другое имя, указывающее на файл.

Итак, все, что вам нужно сделать, это изменить права доступа к каталогу. Например:

 chown root: . chmod 755 . 

Это не позволит пользователям переименовывать файлы там, но также и от создания или удаления файлов. Если вы все еще хотите, чтобы они могли это сделать, вы могли бы сделать каталог доступным для записи, но также установить бит t . С установленным битом пользователи (кроме владельца каталога, который не ограничен) могут только удалять или переименовывать файлы, которыми они владеют.

 chown root:people-who-can-create-file-here . chmod 1775 . chown root:people-who-can-modify-the-files file1-that-must-not-be-rename ... chmod 664 file1-that-must-not-be-rename ...