3

У меня есть каталог в моем домашнем каталоге, который я разделяю с UNIX-группой, но теперь хочу удалить.

Если в этом каталоге есть файл, принадлежащий другому пользователю, я могу удалить его с помощью команды rm, поскольку этот каталог принадлежит мне. Не так с подкаталогами, которые принадлежат другим пользователям. Я не могу удалить их с помощью rm -rf или rmdir.

me@unix:~/blub.git$ ll
total 3
drwxrwxr-x 5 me collab 5 Nov 30 13:32 objects
me@unix:~/blub.git$ cd objects/ && ll
total 8
drwx------ 2 bob collab 3 Nov 30 13:31 bb
drwx------ 2 bob collab 3 Nov 30 13:31 cf
drwx------ 2 bob collab 3 Nov 30 13:32 e6
me@unix:~/blub.git/objects$ rm -rf bb
rm: cannot remove `bb': Permission denied

Как мне вообще избавиться от этой общей папки? Без помощи рута или другого пользователя?

Или задать вопрос по-другому: как я действительно могу rmdir не пустой каталог без необходимости рекурсивно rm -rf все вещи в нем?

Редактировать:

Википедия:

Чтобы удалить каталог (с помощью rm -r), необходимо рекурсивно удалить все его содержимое. Для этого необходимо, чтобы у вас были права на чтение и запись и выполнение для этого каталога (если он не пустой) и всех непустых подкаталогов рекурсивно (если они есть). Разрешения на чтение необходимы для просмотра содержимого каталога с целью их удаления. Это иногда приводит к странной ситуации, когда непустой каталог не может быть удален, потому что у него нет разрешения на запись в него, и поэтому он не может удалить его содержимое; но если бы тот же каталог был пустым, его можно было бы удалить.

Это правда?

2 ответа2

1

Либо получите пользователей, которые владеют подкаталогами, чтобы вы могли писать им:

chmod -R 777 directoryname

... после чего вы сможете удалить их.

Или попросите кого-нибудь с рут-доступом помочь вам.

0

Похоже, что это возможно только для пользователя root или с использованием расширенных атрибутов файла (см. Обсуждение здесь).

Хотя это немного удивительно :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .