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

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

4
задан 3 October 2013 в 12:37

2 ответа

Цитируя Стефана Шазеля из , этот ответ на Unix & amp; Linux SE .

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

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

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 ...
0
ответ дан 3 October 2013 в 12:37

chmod +t [FILE]

Устанавливает фиксированный бит , который делает именно то, что вы описываете.

РЕДАКТИРОВАТЬ: Ну, чтобы быть более конкретным, он мешает другим пользователям переименовать файл. Так что зависит от того, что вы хотите, именно.

0
ответ дан 3 October 2013 в 12:37

Другие вопросы по тегам:

Похожие вопросы: