Назад | Перейти на главную страницу

Как я могу удалить принадлежащий мне каталог, если он содержит подкаталоги, принадлежащие другому пользователю?

Я создал каталог /home/web/test на сервере Debian с использованием базовой непривилегированной учетной записи web. Другой аккаунт - tomcat - затем создал несколько подкаталогов и файлов в этой папке (как вы могли догадаться, tomcat это веб-приложение).

Я бы хотел удалить эту тестовую папку сейчас, но не могу, потому что tomcat владеет каталогами и файлами в нем. я получил Доступ запрещен ошибки, когда я пытаюсь. Вот как это устроено:

ls -l / главная / сеть

drwxrwxrwx 3 web users 4096 2011-04-19 12:06 test

ls -l / главная / веб / тест

drwxr-xr-x 46 tomcat tomcat 4096 2011-04-19 12:06 www

ls -l / главная / веб / тест / www

-rw-r--r-- 1 tomcat tomcat  9939 2011-04-19 12:44 test1.html
-rw-r--r-- 1 tomcat tomcat 16346 2011-04-19 12:44 test2.html
...

rm -rf / главная / веб / тест

rm: cannot remove `/home/web/test/www/test1.html': Permission denied
rm: cannot remove `/home/web/test/www/test2.html': Permission denied
...

Есть ли способ удалить /home/web/test папку с помощью web аккаунт - то есть без входа как tomcat или root?

В конце концов, я владею /home/web/testРазве я не могу делать с ним все, что хочу?

Одна папка

~/test с участием drwxr-xr-x принадлежит gompels группа gompels
~/test/test0r с участием -rw-r--r-- принадлежит root группа root

gompels@stonewall:~$rm -Rf test и грязь папка пропала!

Вложенная папка

~/test с участием drwxr-xr-x принадлежит gompels группа gompels
~/test/test2/ с участием drwxr-xr-x принадлежит root группа root
~/test/test2/test0r с участием -rw-r--r-- принадлежит root группа root

gompels@stonewall:~$rm -Rf test и rm: cannot remove 'test/test2/test0r': Permission denied потерпеть поражение :(

Таким образом, если вы являетесь владельцем папки, вы можете удалять в ней файлы других людей, но не их папки.

Насколько я могу судить, вы не можете. Вы разрешили пользователю tomcat хранить свои файлы в вашем каталоге, но их файлы принадлежат им. Вы не можете изменять или удалять файлы, если вы не являетесь их владельцем или членом их группы (и вы не используете расширенные ACL).

Их расположение в файловой системе в любом случае не имеет значения, поскольку на один и тот же индексный дескриптор можно ссылаться несколько раз в разных местах. Это просто не то, как работают разрешения Unix - они основаны на индексах, а не на местоположении.

РЕДАКТИРОВАТЬ: Это интересное наблюдение @ syserr0r. Причина этого в том, что вы, как владелец каталога, можете вносить изменения в его список файлов, включая удаление файла из этого списка (если в файле не осталось жестких ссылок, операционная система удаляет индексный дескриптор). Итак, мой ответ неверен: для создания и удаления важны разрешения родительского каталога, а не связанные с индексным дескриптором.