chroot dizini bileşeni için hatalı sahiplik veya modlar


56

MY_USER kullanıcısını yarattım. Ev dizinini, kısıtlanması gereken yol olan / var / www / RESTRICTED_DIR konumuna getirin. Sonra sshd_config dosyasını düzenledim ve ayarladım:

Match user MY_USER
  ChrootDirectory /var/www/RESTRICTED_DIR

Sonra ssh'yi yeniden başlattım. MY_USER sahibi (ve grup sahibi) RESTRICTED_DIR'yi oluşturdu ve 755'e chmodded. Anladım

Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER

2 satırı sshd_config'den çıkardıysam kullanıcı başarılı bir şekilde giriş yapabilir. Tabii ki tüm sunucuya erişebilir. Sorun ne? Hatta RESTRICTED_DIR'ı kökten boğmaya bile çalıştım (birisinin bunu yaparken aynı sorunu çözdüğü bir yerde okuduğum için). Şanssız..

Yanıtlar:


73

Gönderen sayfa :man

ChrootDirectory
Kimlik doğrulamasından sonra için chroot (2) yapılacak bir dizinin yol adını belirtir. Yol adının tüm bileşenleri, başka herhangi bir kullanıcı veya grup tarafından yazılamayan kök dizinine ait dizinler olmalıdır . Chroot'tan sonra, sshd (8) çalışma dizinini kullanıcının giriş dizinine değiştirir.

Tahminime göre, yoldaki dizinlerden biri veya birkaçı bu gereksinimleri karşılamıyor ( wwwşüphem root kullanıcısına ait değil, web kullanıcısı tarafından yazılıyor).
Geri dönün ve yönergeleri izleyin, yukarıdaki kalın harflerin italik olarak karşılandığından emin olun.


Bu beni deli ediyor. "Chown root: root -R / var / www" yazdım; "chmod 775 -R / var / www /"; "usermod -a -G kök www-veri". Ama hala MY_USER ile giriş yapamıyorum
MultiformeIngegno

1
Gereklilik Yolu Bileşenlerinin üzerindedir ( /, /var, /var/www, ve /var/www/RESTRICTED_DIRher şeyden önce güvenlik gereksinimlerini karşılaması gerekir). Bu gerçek bir chroot (man sayfasını inceleyin) - kullanıcının ana dizininin chroot içinde olması gerekir, olması gerektiği gibi /binve kullanıcının ihtiyaç duyacağı diğer tüm şeyler ...
voretaq7 28.03

2
Tamam! Çözüldü. Chrooted dir 'i bir seviyeye yükselttim. Sonra orijinal chrooted_dir için 777 izin verdim. Çalışıyor :)
MultiformeIngegno

1
Manpage'in söylediklerine rağmen ve hatta 'root' olarak ayarlanmış olan grupta bile, işe yaramadan önce gw iznini ayarlamak zorunda kaldım (Ubuntu 14.04). Manpage , yol adının tüm bileşenlerinin, başka herhangi bir kullanıcı veya herhangi bir grup tarafından yazılamayan köksudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
dizinli

3
Bunun oldukça eski olduğunu biliyorum, ancak /var/wwwapache'yi kırabilecek yolun doğrudan izinlerini değiştirmek yerine, sftp dizininizi başka bir yola koyup ardından Apache'de URL eşlemesini kullanarak diğer dizine gitmekten çok daha iyi olurdu . Buradaki belgeleri inceleyin httpd.apache.org/docs/2.4/urlmapping.html altındaFiles Outside DocumentRoot
Daniel

32

ChrootDirectory dizini root tarafından sahiplenilmeli ve 755 moduna sahip olmalıdır:

sudo chown root:root /var/www/RESTRICTED_DIR
sudo chmod 755 /var/www/RESTRICTED_DIR

Tamam, şimdi içine tüm dosyaları /var/www/RESTRICTED_DIRait olması gerekir MY_USERait olmalıdır, www-databu gibi grup izinleri izin grubu ve 775 modu vardır:

sudo usermod -a -G www-data MY_USER
sudo chown MY_USER:www-data /var/www/RESTRICTED_DIR/*
sudo chmod 775 -R /var/www/RESTRICTED_DIR/*

NOT: Apache'yi yapılandırıyorsanız, sadece bir htdocs klasörüne erişime izin vermenin iyi bir uygulama olduğunu unutmayın.


3
sudo usermod -a -G www-data MY_USERGrubun sonra gelmesi gerektiği gibi olduğundan eminim-G
sMyles

Bu işe yarar ancak dizine yeni dosyalar yükleyemiyorum, yalnızca önceden kök hesap ve kullanıcı sahipliği ile oluşturulan dosyaları değiştirebiliyorum.
dlopezgonzalez

3

Bugün bazı sorunların giderilmesinden sonra, kökün dizinlere de yazabilmesi gerektiğini fark ettim .

Aşağıdaki işe yaramadı:

$ ls -ld /mnt/synology03/files/
dr-xr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
$ ls -ld /mnt/synology03
drwxr-xr-x 7 root root 4096 Oct  1 21:26 /mnt/synology03
$ ls -ld /mnt
drwxr-xr-x 6 root root 4096 Feb  8 10:01 /mnt
$ ls -ld /
drwxr-xr-x 24 root root 4096 Jan 14 09:22 /

Bunu düzelttikten sonra chroot çalışmaya başladı.

$ sudo chmod 755 /mnt/synology03/files/
$ ls -ld /mnt/synology03/files/
drwxr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
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.