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
- destek olmak
/etc/sshd_config
- kök dizinin sahipliğini şu şekilde değiştir:
root
- kök dizinin izinlerini 755 olarak değiştir
- chroot klasörü oluştur
- chroot klasörü içinde bir kullanıcı klasörü oluştur
- kullanıcı klasörü içinde kullanıcının değiştirebileceği bir klasör oluşturun
- sahiplik ve izinleri ayarlama
Şimdi /etc/sshd_config
aş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_config
dosyayı 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>