Yalnızca sftp için nasıl kullanıcı oluşturabilirim?


15

Araçla sisteme bir kullanıcı ekledim adduser. Ardından, içinde /etc/passwd, ben değiştirmeyi denedim /bin/bashetmek /sbin/nologinveya /dev/null, ama hiçbiri çalıştı bunlardan.

Kullanıcının etkileşimli bir kabuk alma ve sadece kullanma seçeneğine sahip olmamasını istiyorum sftp. Bir yolu var mı?

Daha önce burada sorulduğunu biliyorum ama hiç kimse tatmin edici bir yanıt vermedi.


"Şanssız" demekle ne demek istiyorsun?
Paweł Brodacki

Uzak scp / sftp çalışmadı demekti. Iain tarafından önerilen scponly kabuğu kullanarak çözdüm
Toni Rosa

Yanıtlar:


9

Kabuğu değiştirmek için kullanmanız gereken komut chsh'dir . Nologin kabuğu olabilir /sbin/nologinveya /usr/sbin/nologin(bakarak bakarak kontrol /etc/shells) ama /bin/falsemuhtemelen daha iyi bir seçim olacaktır.

chsh -s /bin/false user

Tam olarak ne istediğinizi yapacak scponly gibi bir şey kurmayı düşünmelisiniz .


Cevabınız için teşekkürler. Ben hiç şanssız / etc / shell içinde kabukları ile denedim "kayıp bağlantı" verir ve / sbin / nologin "Bu hesap şu anda kullanılamıyor" döndürür. Ben bu scponly deneyeceğim
Toni Rosa

Ben scponly kabuk kullanarak çözdüm! Alkış
Toni Rosa

3
Bu cevap samandaki iğnedir! Emin olun /bin/falseve /bin/nologingerçekten kullanılabilir /etc/shells!
Afr

@ Afri Fine, ama ... gerçekten serverfault.com/questions/328395/… ' i okumak isteyeceksiniz . Bu oldukça kontrendikedir.
Reinderien

@Afr koymayın nologiniçinde /etc/shells! serverfault.com/a/328424
RobAu

9

Ayrıca, kullanıcıyı daha fazla güvenlik için ek olarak kroke edebileceğiniz OpenSSH 4.9 ve üzeri ile de yapabilmelisiniz.

Sizin /etc/ssh/sshd_config:

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

O zaman koş:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

Kullanıcı yalnızca / home / user / uploads içine yazabilir.

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory


+1 Bunu araştırmak için listeme koydum.
user9517

1
Ben kullandım ve gayet iyi çalışıyor - ayrıca kullanıcıya bir kabuk ile chroot ortamına giriş yapma seçeneği de sunabilirsiniz, ancak bu durumda minimum kütüphaneleri ve diğer bazı yardımcı programları beklediğiniz gibi kopyalamanız gerekir. Jailkit ( olivier.sessink.nl/jailkit ) bunun için kullanışlı geliyor.
Eduardo Ivanec

Teşekkürler, ForceCommand bir ipucuydu. Chroot'a ihtiyacım yok, ancak SFTP'ye hizmet hesaplarıyla giriş yapmak istiyorum.
AnrDaemon


1

-s /bin/falseKabuklarını devre dışı bırakmak için bir kullanıcı ekleyebilirsiniz , ancak kurmaya gerçekten bakmanız gereken bir kroşe sftp hesabıdır. Bu, bir kullanıcıyı kendi dizinine "hapseder" ve chroot dizininin dışındaki herhangi bir dosyaya veya dizine erişmesini veya bunları değiştirmesini engeller.


Cevabınız için teşekkürler, ama işe yaramıyor gibi görünüyor. Kabuk / bin / false kullanarak bir kullanıcı denediğimde "kayıp bağlantı" alıyorum.
Toni Rosa
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.