У меня есть пара файлов, которые я не могу удалить с помощью rf -Rf
команды. Я являюсь владельцем этого файла, и группа, назначенная этим файлам, также является группой, в которую входит мой пользователь. Что еще более странно, так это то, что я могу редактировать их содержимое и изменять разрешения для них, но я не могу переместить или удали их.
ls -al
total 12
dr-xr-xr-x 3 rayell pg1083760 4096 2010-10-10 10:00 .
drwxr-xr-x 3 rayell pg1083760 4096 2011-09-02 04:33 ..
-rwxrwxrwx 1 rayell pg1083760 0 2011-09-02 06:38 default.settings.php
drwxrwxrwx 2 rayell pg1083760 4096 2011-09-02 04:33 files
-rwxrwxrwx 1 rayell pg1083760 0 2011-09-02 06:38 settings.php
rm -Rf *
rm: cannot remove `default.settings.php': Permission denied
rm: cannot remove directory `files': Permission denied
rm: cannot remove `settings.php': Permission denied
Кто-нибудь может сказать мне, что происходит?
linux
filesystems
file-permissions
rm
RaYell
источник
источник
Ответы:
Чтобы удалить один файл, вам нужно разрешение на запись в каталог, содержащий этот файл.
Здесь права доступа
dr-xr-xr-x 3 rayell pg1083760 4096 2010-10-10 10:00 .
Итак, никто (кромеroot
) не может удалять файлы в этом каталоге. Владелец должен использовать вchmod
первую очередь.-
1. Есть довольно веские причины для этого. «Удаляя» файл с помощью
rm
, вы фактически пытаетесь отсоединить его от каталога (копии с жесткими ссылками не будут удалены).источник
У меня была та же проблема, и
chmod
один не справился. Сначала мне пришлось сменить владельца (пользователя и группу) файлов, которые я хотел удалить.Объяснение:
sudo
: убедитесь, что у вас есть соответствующие праваchown
: Команда Linux для смены владельца файла-hR
: изменить владельца каталога и всех его подкаталогов. Я нашел это здесь .root
: имя нового пользователяadmin
: название новой группыЯ уже изменил модификаторы на 777; Я не знаю, было ли это необходимо или нет.
источник
chown
вы не были ни владельцем каталога, ни членом группы, владеющей каталогом.Другой возможный вопрос - это атрибут
Эта команда покажет вам атрибут файла, и файл с атрибутом «i» не может быть изменен (и может быть удален)
поэтому проверьте атрибут вашего файла и удалите атрибут «i», если атрибут установлен
источник
Причина в том, что родительский каталог имеет
chmod 705
или что-то подобное. Вы можетеchmod
родительский каталог с помощью следующей команды:После этого вы можете удалить этот каталог и содержащиеся в нем файлы.
источник