Вопрос 000 для одного файла не работает [дубликат]


На этот вопрос уже есть ответ:

Я установил 000 разрешение для одного файла, записывающего этот код:

sudo chmod 000 ./Desktop/*.gif

Но этот файл можно удалить и переименовать (но не читать).

Хотя этот код:

sudo chmod 000 ./Desktop/Directory_name

делает каталог недоступным (чтение, запись, исполнение защищено).

Что не так ?


10
2017-12-15 04:51


происхождения


Это довольно хорошо рассмотрено в вопросе Unix & Linux Почему rm удаляет файлы только для чтения? - G-Man
Постскриптум Я призываю вас не указывать имена файлов со звездочками в них; особенно короткие, такие как *.gif, (В вашем вопросе указывается, что у вас есть «один файл» *.gif.) Кроме того, вам не нужно ./ в начале пути. - G-Man
@ G-Man, хорошее предложение. На самом деле у меня был только файл .gif на рабочем столе, поэтому я выбрал один файл (мне жаль, что это неоднозначно для других) - partho
Вам не нужно использовать sudo для изменения разрешений для ваших собственных файлов. Следовательно, chmod 000 Desktop/*.gif будет делать то же самое. - Paddy Landau


ответы:


Что не так?

Ничего. Удаление всех разрешений из файла не препятствует удалению или переименованию - они контролируются разрешениями содержащего каталога (Desktop, в этом случае). Если вы хотите предотвратить удаление или переименование, удалите права на запись из каталога:

chmod a-w Desktop

Или сделайте файлы неизменяемыми:

sudo chattr +i Desktop/*.gif

rm спросит вас, хотите ли вы удалить неизменяемый файл, но он не может:

$ rm foo
rm: remove write-protected regular file ‘foo’? y
rm: cannot remove ‘foo’: Operation not permitted

24
2017-12-15 04:54



Реальная аналогия: вам не нужно снимать кого-то в голову, чтобы удалить их из телефонной книги. - Jörg W Mittag
Хотя люди, как правило, не умирают от того, что их не перечисляют в каких-либо телефонных книгах. - jwodder
@cjm Я читал это как двойное отрицательное. Может быть, я должен был прочитать это еще несколько раз ... - Canadian Luke