Почему chmod не работает в этом случае?
Я пытаюсь установить небольшой веб-сервер для личного использования. У меня фоллер /srv/http/cgi-bin/
который я хочу редактировать как пользователь, а не как суперпользователь. Я попытался chmod, как упомянуто здесь. Вот результат:
sudo chmod 755 /srv/http/cgi-bin/ -R
[yotam@myhost ~]$ echo "h" >> /srv/http/cgi-bin/h.py
bash: /srv/http/cgi-bin/h.py: Permission denied
Редактировать:
Вот некоторые данные из-за комментариев и ответов:
[yotam@myhost ~]$ sudo chmod 760 -R /srv/http/cgi-bin
Password:
[yotam@myhost ~]$ echo "hh" >> /srv/http/cgi-bin/h.py
bash: /srv/http/cgi-bin/h.py: Permission denied
[yotam@myhost ~]$ ls -ld /srv/http/cgi-bin
drwxrw---- 2 root root 4096 May 20 15:54 /srv/http/cgi-bin
Также сервер является рабочим столом Ubuntu под управлением apache2. Насколько я могу судить, я не сдерживал ни одну из пользовательских настроек, поэтому все они должны быть параметрами по умолчанию.
2 ответа
Строка режима кажется неправильной. Строка режима 755 означает, что
- Владелец файла может читать (4), писать (2) и выполнять (1) - 4+2+1 = 7
- Любой член группы файла может прочитать (4) и выполнить (1) - 4+1 = 5
- Любой другой может прочитать (4) и выполнить (1) - 4+1 = 5
Похоже, вы хотите chmod -R 766 /src/http/cgi-bin
, но это похоже на очень небезопасную настройку разрешений...
Вы можете временно сменить владельца на себя, отредактировать файл и вернуть его обратно.
sudo chown -R yotam /srv/http/cgi-bin/
редактировать файл (как пользователь, а не как суперпользователь, как вам требуется)
sudo chown -R root /srv/http/cgi-bin/