Sudo - не правильный инструмент для этой работы. Он контролирует, какие команды вы можете запустить, а не какие файлы вы можете получить доступ.
Правильный инструмент для задания является разрешения на файл, с списками управления доступом Если Unix Tradio User / Group / другие разрешения не хватает.
Создайте группу, давайте назовем ее Webroot
, и сделайте его собственным каталогом / var / www / html
и файлы там.
sudo addgroup webroot
chgrp -R /var/www/html
chmod -R g+ws /var/www/html
S
BIT по каталогам вызывает файлы наследовать владение группой из справочника. Вам также необходимо будет обеспечить, чтобы файлы были написаны группой.
Если вы хотите иметь возможность получить доступ / var / www / html
с учетной записью, которую вы используете для загрузки файлов, добавьте эту учетную запись в группу Webroot
:
sudo adduser iusemagentonow webroot
Если у вас возникли проблемы с сохранением владения группой и групповым разрешением на запись на вновь созданные файлы, используйте ACL вместо CHGRP
.
sudo setfacl -d -R group:webroot:rwX /var/www/html
sudo setfacl -R group:webroot:rwX /var/www/html
Позаботьтесь о том, чтобы файлы в / var / www / html
не должны быть списаны пользователем пользователями и группой, запущенными Apache или любым веб-сервером, который вы используете. Пользователь, работающий на веб-сервере, не должен быть разрешен для записи любых файлов, за исключением файлов данных, которые должны быть обновлены веб-приложением. В частности, не позволяйте веб-серверу написать любой исполняемый файл, так как это имеет значение для простых эксплуатации.
wget -O - $url --append-output=logfile >> logfile
Если указать -
как имя файла для -O
, вывод будет записан в стандартный вывод.
Моя оболочка не против использования файла журнала
для обеих операций добавления. Это может сработать и для вас.
Я нашел работу вокруг
wget --no-check-certificate -O contnt -a logfile $url
cat contnt >> logfile
rm contnt
, есть ли другой лучший способ сделать это, который не включает чтение из файла и удаление файла?
Вы можете сделать это так:
wget - $url --server-response --append-output=logfile