OS X'te yalnızca bir uzak kullanıcı mı oluşturuyorsunuz?


15

OS X'te, belirli bir klasöre / yola / to / goods / klasörüne erişebilecekleri ve Mac'in geri kalanı sırasında dosyaları manuel olarak veya rsync aracılığıyla ekleyebilecek / değiştirebilecek / silebilecek uzak ssh giriş ayrıcalıklarına sahip bir kullanıcı oluşturmak istiyorum. sınırları kapalı (ana dizinin dışında).

İdeal olarak kullanıcının rsync dışında başka programları çalıştırmak için erişimi olmamalıdır.

Bu kullanıcı sadece bir yapı sunucusu tarafından giriş yapmak ve dosyaları dağıtmak için kullanılacaktır. Yapı betiği parola girişi gerektirmeyen bir genel / özel anahtar çifti kullanmak istiyorum.

Bunu nasıl başarabilirim?

Yanıtlar:


9

Bunu yapmanın en iyi yolu, kullanıcı için bir chroot hapishane oluşturmaktır. Eve geldiğimde cevabı temizleyeceğim ama çözümü bloguma gönderdim.

https://thefragens.com/chrootd-sftp-on-mac-os-x-server/

Aşağıda yukarıdaki yazıdaki talimatların çoğu bulunmaktadır.

Öncelikle, yeni kullanıcıyı Workgroup Admin'de oluşturmalı ve onlara Sunucu Yöneticisi aracılığıyla SSH için erişim ayrıcalıkları atamalı veya SSH erişim ayrıcalıklarına sahip bir gruba atamalısınız. Daha fazla tartışma aşağıdadır.

Terminalden sağdan başlayın.

sudo cp /etc/sshd_config /etc/sshd_config.bkup

sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot

Eklenen her yeni kullanıcı daha sonra aşağıdakilerin çizgileri boyunca bir şey olacaktır.

sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2

Chroot hapishanesine giden yolun sahibi olduğu her klasöre ait olmalıdır root. Klasörün hangi grupta olduğunu düşünmüyorum. Yukarıda yaptığım şey

  1. destek olmak /etc/sshd_config
  2. kök dizinin sahipliğini şu şekilde değiştir: root
  3. kök dizinin izinlerini 755 olarak değiştir
  4. chroot klasörü oluştur
  5. chroot klasörü içinde bir kullanıcı klasörü oluştur
  6. kullanıcı klasörü içinde kullanıcının değiştirebileceği bir klasör oluşturun
  7. sahiplik ve izinleri ayarlama

Şimdi /etc/sshd_configaşağıdakileri düzenlemek için.

#Subsystem  sftp    /usr/libexec/sftp-server
Subsystem   sftp    internal-sftp

Match User user
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/user

Bu, kullanıcı oturum açtığında onları klasöre bırakacakları bir cezaevi hapishanesi oluşturur /chroot/user, bu klasörde bir şeyler ekleyebilecekleri bir klasördür /chroot/user/scratchpad.

'Chroot Users' için Workgroup Admin'de bir Grup oluşturmak istiyorsanız, Workgroup Admin'de oluşturduğunuz yeni kullanıcıları Gruba ekleyin ve /etc/sshd_configdosyayı düzenlemeye devam etmeniz gerekmez . Yukarıdakilerin yerine aşağıdakileri ekleyin. Sunucu Yöneticisi'ndeki SSH erişim ACL'sine 'Chroot Users' grubunu eklediğinizden emin olun.

Match Group chrootusers
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/%u

Yukarıdakilerin çalışıp çalışmadığını test etmek için terminalden aşağıdakileri yapın.

$ sftp user@domain.com
Password:
sftp>

Sadece kendi sorunlarımı çözüyorum ve tekrar yapmam gerektiğinde belgeleme. ;-)
afragen
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.