Www-data kullanıcısı için scp / ssh öğesine izin ver


11

Ubuntu 10.04.2 kullanarak Amazon EC2'deyim

Web klasörüm www-data'ya ait olduğundan ssh ve scp için sunucumda www-data olarak oturum açmak istiyorum.

Teşekkürler!

Satırı / etc / ssh / sshd_config dosyasına eklemek işe yaramıyor gibi görünüyor.

AllowUsers www-data

Yanıtlar:


6

Ubuntu'nun dayandığı Debian'da, www-data kullanıcısının varsayılan kabuk olarak / bin / sh var. SFTP'yi etkinleştirmek için, /var/www/.ssh/authorized_keysiçinde ortak anahtar oluşturabilirsiniz . Üzerindeki izinler /var/www/.ssh700 ve yetkili_anahtarlar dosyasındaki izinler 600 olmalıdır. Bu dizine erişimi engellemek için http yapılandırmanıza aşağıdakileri eklemek istersiniz.

<Directory /var/www/.ssh>
  Order Deny,Allow
  Deny from all
</Directory>

Www-data kullanıcı ayarlarını (home dizini, kabuk, vb.) Kullanarak doğrulayabilirsiniz getent passwd www-data.

Sshd_config dosyanızın olduğundan emin olun Subsystem sftp /usr/lib/openssh/sftp-server; muhtemelen ayarlamak PasswordAuthentication noda istersiniz .


2

Bu biraz güvensiz. Başka bir kullanıcı kullanarak bir ara alana yüklemenizi ve cronzaman zaman işlerin başladığı yere taşınması ve izinlerini buna göre değiştirmesi için bir iş çalıştırmanızı öneririm .

Olarak oturum açmakta gerçekten ısrar ediyorsanız www-data, bunu yapmak için ssh özel anahtarı kullanmanız gerekir (AFAIK EC2 örnekleri yalnızca anahtar kimlik doğrulamasına izin verir). Ayrıca www-datageçerli bir kabuk /etc/passwdve geçerli bir giriş dizini olup olmadığını da kontrol etmelisiniz .

Sonunda, bu sorunun bazı çözümlerini de deneyebilirsiniz .


Bunu yapmak için ssh özel anahtar kullanmayı planlıyordum. Ama eğer dosyaları kopyalamak için cron kullanırsam, biraz yavaş olmaz çünkü cron betiğinin kopyalanmasını beklemek zorunda kalacağım. Ayrıca, dosya yükleyemezdim. Gerçekten istediğim www veri için FTP gibi ama scp gibi güvenli bir şey.
ambiguousmouse

Verdiğim diğer çözümler uygulanabilir, sadece fikri sevmiyorum.
coredump

-3

Scp için www-data olarak oturum açmak zaman kaybıdır.

Scp komutu ssh2_scp_sendiçin dosyaları aktarmak için neden kullanmıyorsunuz , basittir ve www-data kullanıcısı için ssh eklemeniz veya ortak bir anahtar oluşturmanız gerekmez

Örneğin

ssh2_scp_send($connection, '/directory/filename', '/remotedirectory/filename', 0644);

çalışmalı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.