У меня есть папка, /var/www
которую я пытаюсь переместить в домашний каталог пользователя.
Сначала я запустил mv folder/ ~
и получил ошибку «отказано в доступе». Я думал, что правильно настроил разрешения, но чтобы убедиться, я запустил sudo chown -R folder/ user
там, где user был моим текущим пользователем. Затем я запустил, chmod -R u=rwx folder/
чтобы дать себе разрешения на запись и чтение (или что-то еще, что mv
может потребоваться). Однако даже после повторной попытки запуска mv
у меня все еще не было разрешений.
Что может быть причиной этого?
Полный протокол моих повторений вышеуказанного процесса:
webserver@testingweb:/var/www$ ls -la
total 12
drwxr-xr-x 3 root root 4096 Mar 18 10:29 .
drwxr-xr-x 14 root root 4096 Mar 18 10:13 ..
drwx------ 4 webserver webserver 4096 Mar 18 10:44 website
webserver@testingweb:/var/www$ sudo chown -R webserver website/
webserver@testingweb:/var/www$ ls -la
total 12
drwxr-xr-x 3 root root 4096 Mar 18 10:29 .
drwxr-xr-x 14 root root 4096 Mar 18 10:13 ..
drwx------ 4 webserver webserver 4096 Mar 18 10:44 website
webserver@testingweb:/var/www$ chmod -R 700 website/
webserver@testingweb:/var/www$ ls -la
total 12
drwxr-xr-x 3 root root 4096 Mar 18 10:29 .
drwxr-xr-x 14 root root 4096 Mar 18 10:13 ..
drwx------ 4 webserver webserver 4096 Mar 18 10:44 website
webserver@testingweb:/var/www$ mv website/ ~
mv: cannot move 'website/' to '/home/webserver/website': Permission denied
webserver@testingweb:/var/www$
Редактировать:Интересно, что когда я попытался переместить подкаталоги и файлы по отдельности, это удалось без каких-либо проблем:
webserver@testingweb:/var/www$ cd website/
webserver@testingweb:/var/www/website$ ls
git reproot
webserver@testingweb:/var/www/website$ mv git/ ~/website/
webserver@testingweb:/var/www/website$ ls
reproot
webserver@testingweb:/var/www/website$ mv reproot/ ~/website/
webserver@testingweb:/var/www/website$ ls
webserver@testingweb:/var/www/website$
решение1
У вас есть разрешение на запись в /var/www/website
, но у вас нет разрешения на запись в /var/www
. Чтобы переместиться /var/www/website
куда-либо, вам нужно разрешение на запись в /var/www
.