To pytanie ma już odpowiedź tutaj:
- Usuwanie katalogów innego użytkownika z moich 2 odpowiedzi
Mam katalog w moim katalogu domowym, który udostępniam grupie UNIX, ale teraz chcę go usunąć.
Jeśli w tym katalogu znajduje się plik należący do innego użytkownika, mogę go usunąć za pomocą rm, ponieważ katalog jest własnością mnie. Nie dotyczy to podkatalogów, które są własnością innych użytkowników. Nie mogę ich usunąć za pomocą rm -rf lub 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
Jak w ogóle pozbyć się tego folderu współdzielonego? Bez pomocy roota lub innego użytkownika?
Lub zadać pytanie w inny sposób: Jak mogę naprawdę zrobić rmdir niepustego katalogu bez konieczności rekurencyjnego rm -rf wszystkich zawartych w nim rzeczy?
Edytować:
Aby usunąć katalog (z rm -r), należy usunąć całą jego zawartość rekurencyjnie. Wymaga to posiadania uprawnień do odczytu i zapisu oraz wykonywania uprawnień do tego katalogu (jeśli nie jest pusty) i rekursywnie do wszystkich niepustych podkatalogów (jeśli takie istnieją). Uprawnienia do odczytu są potrzebne, aby wyświetlić zawartość katalogu w celu ich usunięcia. Czasami prowadzi to do dziwnej sytuacji, w której niepustego katalogu nie można usunąć, ponieważ nie ma się do niego uprawnień do zapisu, a zatem nie można usunąć jego zawartości; ale gdyby ten sam katalog był pusty, można by go usunąć.
Czy to naprawdę prawda?
lsof
, może to mówi prawdziwy powódOdpowiedzi:
Uzyskaj użytkowników, którzy są właścicielami podkatalogów, aby umożliwić Ci pisanie w nich:
... po czym będziesz mógł je usunąć.
Lub poproś kogoś z dostępem do konta root.
źródło
Wydaje się, że jest to możliwe tylko przez rootowanie lub użycie rozszerzonych atrybutów pliku (patrz dyskusja tutaj ).
źródło