Yalnızca belirli bir klasöre erişim izni olan bir ssh kullanıcısı nasıl eklenir?


17

Yalnızca belirli bir klasöre erişim izni olan bir ssh kullanıcısı nasıl eklenir?

useradd -d /var/www/xyz.com.tr/musteri  -s /bin/bash -g sshd musteri

Adlı bir kullanıcı oluşturdum musteri. Ana klasörünü ve grubunu ayarladım. Bu yüzden musterikullanıcıları "/var/www/xyz.com.tr/musteri" ile entegre etmek istiyorum . Başka bir klasöre erişmesini istemiyorum.


Kullanıcının tam kabuk erişimine veya yalnızca sftp ve rsync gibi dosya kopyalama protokollerine sahip olmasını ister misiniz?
Gilles 'SO- kötü olmayı bırak'

İkincisi, scponlybir kabuk olarak bakmak isteyebilirsiniz , muhtemelen chrootbu dizine ve başka hiçbir yere erişimini kısıtlamak için modda çalışır .
Shadur

1
@Gilles - Sftp üzerinden erişmek istiyorum. Ancak, başka bir klasöre erişmesini istemiyorum.
Cell-o

1
@ Cell-o: Kabuklara değil de yalnızca birkaç dosya aktarım protokolüne ihtiyacınız varsa chroot plus scponly veya rssh kullanın (Google scponly chrootveya rssh chrootsizi howtos'a yönlendirmelidir).
Gilles 'SO- kötü olmayı bırak'

ACL'leri kullanmaya ne dersiniz?
fpmurphy

Yanıtlar:


19

Müşterilerinizin gerçekte kabuk vermeden bir klasöre dosya aktarma erişimine sahip olmasını istediğiniz gibi görünüyor. Bu iyi bir şey çünkü binfalse'nin işaret ettiği gibi , insanlara mermilere sınırlı erişimle vermek zor çünkü kabukların sadece çalıştırmak için sisteme dağılmış her türlü şeye erişmesi gerekiyor.

SFTP'ye belirli bir klasöre erişim vermek için böyle bir şey yapabilirsiniz.

  1. Sisteme 'sftponly' deyin, yeni bir grup ekleyin.
  2. Sisteminizde bu gruba kısıtlanmış haklara sahip olması gereken kullanıcıları ekleyin. Ayrıca onlara / bin / true gibi kısıtlı mermiler de verebilirsiniz, ancak gerekli değildir.
  3. Ssh config dosyanızı (Genellikle /etc/ssh/sshd_config) bu satırlarla değiştirin
    Alt sistem sftp internal-sftp

    Maç Grubu sftponly
        ChrootDirectory% h
        TCPPForwarding no'ya izin ver
        Yönlendirme no
        ForceCommand internal-sftp

Bu, SSH içindeki sftp alt sistemini etkinleştirir ve bu sistem grubunun üyelerini oturum açarken yalnızca bu sistemi kullanmaya zorlar. Ayrıca, bunları kendi dizinlerine de bağlar. Bunu ChrootDirectory %h/musteri_sftp, sistem yöneticilerinin geri kalanını göremedikleri, ancak doğrudan ana klasörlerinin özel bir alt klasörüne giriş yapacakları gibi, ev yönetmenlerinin bir alt klasörü olarak değiştirebilirsiniz.

Kolay gelsin.


Öncelikle teşekkürler. ;) Bahsettiğiniz gibi, SFTP kurdum.Ama, iptables ile ilgili bir sorunum var.İşte benim kuralım. -> Bir RH-Güvenlik Duvarı-1-GİRİŞ -m durumu - durum YENİ -m tcp -p tcp --dport 21 -j KABUL
Cell-o

1
Birşey değil. FTP 21 numaralı bağlantı noktasını kullanırken, SFTP SSH kanalı üzerinden çalışan ftp benzeri bir protokoldür, bu nedenle varsayılan olarak 22 olan SSH bağlantı noktasını kullanacaktır.
Caleb

Önceden varolan Alt Sistem komutlarını da bulup yorumlamanız gerektiğini unutmayın (örn. Subsystem sftp / usr / lib / openssh / sftp-server)
CnrL

Sorunumu çözdü ve bazı kullanışlı Türkçe ifadeler öğrendim! Bonus!
eimajenthat

2

Bana göre bu imkansız olmasa da çok zor. Kullanıcı SSH ile bağlandığında, en azından bir kabuğa ihtiyacı vardır bash. Yürütmek için /bin/basho erişmek için izne ihtiyacı vardır /bin. (ör. ) bashöğesinden bazı şeyler okuması gerekir , bu nedenle kullanıcının da erişmesi gerekir . Kullanıcının yalnızca bu dizinde takılmak istemediğini varsayarsak, bir dosyayı okumak isteyebilir, örneğin yürütmek için de erişmesi gerekir . Bu sadece hafif bir gösteri, daha fazla bağımlılık var, örneğin kullanıcı erişemezse ne olacağını gerçekten bilmiyorum ../etc/etc/bash.bashrc/etcvim/usr/bin
/tmp

Niyetini düşünmelisin. Birisinin web hizmetinizin bir bölümüne okuma / yazma erişimi olmasını mı istiyorsunuz? Ardından, bu kullanıcıya belirli bir dizini dışa aktarmak için FTP gibi bir şey ayarlayabilirsiniz. Böylece bu dosyaları SSH erişimi olmadan okuyabilir / yazabilir.
Bir başka hoş çözüm de bir depo olacaktır. Örneğin bir GIT repo oluşturun ve kullanıcının onu klonlamasına izin verin. Değişikliklerini yerel olarak yapabilir ve size bir yama gönderebilir. Bu yamanın uygulanıp uygulanmayacağına karar verebilirsiniz, buggy yamaları için bir geri alma da çok kolaydır.


rbashtam olarak bunu yapmak için tasarlanmıştır.
Bahama

Bu şeye kısıtlı kabuk denir . Ancak Cell-o yalnızca dosya aktarımlarına izin vermek istediğinden, bu doğru araç değildir.
Gilles 'SO- kötü olmayı bırak'
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.