Невозможно удалить каталоги, скопированные из другого места centos 6

Невозможно удалить каталоги, скопированные из другого места centos 6

Один из наших пользователей по ошибке скопировал некоторые системные каталоги (например, /lib) в свой домашний каталог, используя команду cp -r /lib ., и теперь не может удалить эти каталоги. Команда rm -rf ./libвозвращает список ошибок с надписью "Permission denied" (по одной для каждого файла, я думаю). Я уверен, что обе команды копирования и удаления используют одно и то же имя пользователя, и между ними не произошло никаких изменений прав доступа.

Я, вероятно, могу удалить эти каталоги, используя привилегии root, но я хотел бы знать, почему это происходит. Это ошибка Centos 6.8, который мы используем? Или почему пользователь не может удалить каталоги, которые он создал в своем домашнем каталоге?

решение1

cp -rкопирует режимы разрешений по умолчанию. Так что если /libне был доступен для записи владельцем, ./libто и не будет доступен для записи. Попытка удалить содержимое недоступного для записи каталога приведет к отказу в разрешении, даже если вы являетесь его владельцем. Вы можете исправить разрешения с помощью chmod -R u+w ./lib.

Вот демо:

barmar@dev:~/test.dir$ mkdir subdir
barmar@dev:~/test.dir$ touch subdir/foo
barmar@dev:~/test.dir$ chmod a-w subdir
barmar@dev:~/test.dir$ cp -r subdir newsubdir
barmar@dev:~/test.dir$ rm -rf newsubdir
rm: cannot remove `newsubdir/foo': Permission denied
barmar@dev:~/test.dir$ chmod a+w newsubdir
barmar@dev:~/test.dir$ rm -rf newsubdir
barmar@dev:~/test.dir$ 

Связанный контент