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

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

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

решение1

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

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

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 ...

Связанный контент