Я запускаю скрипт Ruby, который содержит
unless File.writable?(".")
problems << ["Directory /path/to/htdocs needs write access"]
проблема в том, что только если я установлю
chmod 777 /путь/к/htdocs
это работает, хотя я читал, что на самом деле не стоит ничего 777-ить.
Как же обойти эту проблему, чтобы код запускался с кодом 755 вместо 777?
решение1
Никогда не нужно использовать 777. Однако вы можете выяснить, в чем проблема:
- если работает с 777 и не работает с 770, значит вы используете неизвестного пользователя в своей среде. Измените на известного пользователя, и все заработает с 770.
- если работает с 770 и не работает с 700, значит, в вашей среде используется неизвестная группа. То же самое исправление: установите среду на известную группу.
Итак, apache2, nginx или что бы вы ни использовали для выполнения скриптов, в его конфигурации будут установлены пользователь и группа. Найдите используемого пользователя и группу и измените свой скрипт на этого пользователя и группу, и все, что вам понадобится, это 700 или 750.