Я создал каталог /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. Причина этого в том, что вы, как владелец каталога, можете вносить изменения в его список файлов, включая удаление файла из этого списка (если в файле не осталось жестких ссылок, операционная система удаляет индексный дескриптор). Итак, мой ответ неверен: для создания и удаления важны разрешения родительского каталога, а не связанные с индексным дескриптором.