Вы управляете сервером DHCP? Действительно ли возможно определить эти единицы своего рода префиксом MAC и предоставить их определенную установку DNS? Я знаю, что у ISC-DHCPD есть функция, посредством чего можно определить единицы и рассматривать их по-другому (т.е. диапазон IP, опции DHCP, и т.д.).
Простой пример в dhcpd.conf файле мог бы быть похожим:
class "embedded" {
match if substring(hardware,1,3) = XX:XX:XX;
}
pool {
allow members of "embedded";
... other options here ...
}
Это позволило бы Вам указывать эти единицы с другим сервером DNS, не имея необходимость получать встроенное микропрограммное обеспечение / программное исправление. Я не знаю, имеет ли сервер DHCP Microsoft какой-либо подобный вид возможности (если это - то, что Вы используете), или если у Вас даже есть доступ к серверу DHCP в этой способности, но что-то вроде этого могло бы быть опцией..
На Debian, на основе которого Ubuntu, у www-пользователя-данных есть/bin/sh как оболочка по умолчанию. Для включения SFTP можно создать /var/www/.ssh/authorized_keys
с Вами открытый ключ в нем. Полномочия на /var/www/.ssh
должен быть 700, и полномочия на authorized_keys файле должны быть 600. Вы захотите добавить следующее к своей http конфигурации для запрещения доступа к этому каталогу.
<Directory /var/www/.ssh>
Order Deny,Allow
Deny from all
</Directory>
Можно проверить настройки www-пользователей-данных (домашний dir, оболочка, и т.д.) использование getent passwd www-data
.
Удостоверьтесь, что Ваш sshd_config имеет Subsystem sftp /usr/lib/openssh/sftp-server
, и Вы, вероятно, захотите установить PasswordAuthentication no
также.
Это довольно небезопасно. Я предложил бы, чтобы Вы загрузили на промежуточную область с помощью другого пользователя и выполнили a cron
работайте время от времени для перемещения материала, где он belogs и изменяет свои полномочия соответственно.
Если Вы действительно настаиваете на том, чтобы входить в систему как www-data
, необходимо использовать ssh закрытый ключ, чтобы сделать это (экземпляры AFAIK EC2 только позволяют ключевую аутентификацию). Необходимо также проверить это www-data
имеет допустимую оболочку на /etc/passwd
и допустимый домашний dir.
В конце можно также попробовать некоторые решения этого вопроса.
Вход в систему как www-data для scp - пустая трата времени.
Для команды scp, почему вы не используете ssh2_scp_send
для передачи файлов, это просто и не работает. Вам не нужно добавлять-ssh или создавать открытый ключ для пользователя www-data
, например
ssh2_scp_send ($ connection, '/ directory / filename', '/ remotedirectory / filename', 0644);
должно работать
Более чистый способ сделать это, не полагаясь на задания cron
для фактической работы по размещению файлов в корневом каталоге, состоит в том, чтобы сделать вашу «обычную» учетную запись SSH членом www-data
group
# add your current user to www-data group
sudo usermod -a -G www-data myusername
# restore standard user/group ownership on your webserver documentroot
sudo chown -R root:www-data /path/to/your/webserver/documentroot
Таким образом, пользователь myusername
будет иметь доступ на чтение/запись к корневому каталогу веб-сервера.