Возвращает ли «rm -rf $ dir» когда-либо значение false?

Разрешения, которые получает файл, могут быть уменьшены только с помощью umask, поэтому нет, вы не можете использовать его для добавления разрешений. Кроме того, в отличие от ваших утверждений, разрешения перед уменьшением маскированных битов не равны 0666 или 0777, а зависят от того, что устанавливает рассматриваемая программа. Обычный обычай - создавать обычные файлы с режимом 0666 и каталоги с 0777 и позволять umask обрабатывать ограничение доступа для других пользователей, но программа, которая создает особенно личные файлы, будет использовать 0600 в качестве начальных разрешений.

Если вам нужно приложение для создания файлов с определенными разрешениями, вам нужно исправить это на уровне приложения. Для Subversion см. свойство svn:executable.

0
12.12.2016, 19:08
2 ответа

Конечно, если какая-то часть удаления приведет к нарушению разрешений. Например,

$ mkdir -p p/q
$ sudo chown root p p/q
$ sudo chmod 700 p p/q
$ rm -rf p
rm: cannot remove 'p': Permission denied
$ echo $?
1

Однако обратите внимание, что вы можете удалить каталог, который не принадлежит вам, из каталога, которым он является. Таким образом, приведенное выше не потерпит неудачу, если я попробую только с p без «содержимого».

2
28.01.2020, 02:19

Да, если у вас нет разрешения на удаление $dir, то rm будет неудачным, с -r Я предполагаю, что он будет неудачным, если вообще ничего не может быть удалено.

For example,

$ mkdir test_dir
$ sudo chown root.root test_dir
$ cd test_dir # we no longer have write permission to .
$ sudo mkdir new_dir
$ rm -rf new_dir
rm: cannot remove 'new_dir': Permission denied
$ echo $?
1
2
28.01.2020, 02:19

Теги

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