GNU/Linux >> Znalost Linux >  >> Linux

Chroot SFTP – Umožňuje uživateli povolit zápis do aktuálního (chroot) adresáře

Řešení 1:

Ahoj @emmdee Trvalo mi věčnost, než jsem si uvědomil, že na to existuje jednoduchý a pěkný trik. Musíte pouze učinit root vlastníkem nadřazené složky, do které chcete sFTP, a poté pomocí příkazu force sdělit konkrétnímu uživateli, aby načetl konkrétní DIR do adresáře CHROOT.

Ve vašem případě v případě, že chcete /home/sftpuser aby šlo o zapisovatelný adresář, budete muset vytvořit root vlastník /home adresář, pak pokračujte a Force Command on /sftpuser jako vstupní adresář pro daného uživatele nebo skupinu.

Vaše /etc/ssh/sshd_conf bude vypadat takto:

Match User sftpuser
    ChrootDirectory /home
    ForceCommand internal-sftp -d /sftpuser
    AllowTCPForwarding no
    X11Forwarding no

Jakmile to uděláte, musíte udělit správná oprávnění, jak bylo řečeno dříve, root by měl vlastnit nadřazený (chroot) adresář /home zatímco uživatel by měl vlastnit konečný (-d) adresář /sftpuser . Budu předpokládat, že máte skupinu uživatelů sFTP s názvem sftpusers , Pokud ne; stačí vynechat skupinu z následujících příkazů nebo ji místo toho nahradit uživateli (root v prvním a sftpusers ve druhém). Protože v příkazovém řádku pro dědění používáme -R, budete muset začít s vlastnictvím root před vlastnictvím uživatele následovně:

sudo chown -R root:sftpusers /home

pak pro uživatele můžete spustit:

sudo chown -R sftpuser:sftpusers /home/sftpuser

Nejsem si jistý, zda je to potřeba, ale vždy můžete restartovat službu sshd, abyste se ujistili, že všechna nastavení budou znovu načtena:

sudo systemctl restart sshd.service

Doufejme, že by to mělo fungovat jako kouzlo, měl jsem podobný problém a řešení bylo tam, kde se mi většinu času díval do očí.

Na zdraví!

Řešení 2:

Vím, že je to už pár let, ale tento příspěvek mě na 98 % dostal. po dlouhém hledání.

Aby bylo možné nechat uživatele chrootovat a automaticky je dostat do jejich vlastního adresáře s oprávněním k zápisu, použil jsem metodu, kterou navrhl African Idiot, a také vytvořil původní chroot adresář vlastněný uživatelem root a skupinou ftp.

Ale klíčem k tomu, abych je ponechal v této složce a nemohl .. a pokoušet se procházet složky jiných uživatelů, bylo vytvořit složku chmod 710 (rwx--x---) takže skupina ftp musela provést interní-sftp -d /%u (tj. cd do podadresáře users) a teď, když se pokusím o cd .. do horního adresáře, protože neexistuje žádné čtení pro nikoho jiného než root, selže.

drwx--x---  6 root        sftpusers   uarch  6 Feb 19 15:34 ./
drwxr-xr-x  5 root        root        uarch  5 Feb  4 09:13 ../
drwxrwx---  3 anotheruser anotheruser uarch  3 Feb 24 15:34 anotheruser/
drwxrwx---  3 ftpuser     ftpuser     uarch 12 Feb 25 10:55 ftpuser/

doufám, že to pomůže i někomu dalšímu.


Linux
  1. Přidělte uživateli přístup pro čtení/zápis do konkrétního adresáře v systému Linux

  2. Ssh – Omezení uživatele Ssh/scp/sftp na adresář?

  3. Jak změnit oprávnění z uživatele root na všechny uživatele?

  1. $pwd? (vs. aktuální pracovní adresář)?

  2. Svázat připojení uživatele SFTP po použití chrootu

  3. Kali výchozí uživatel bez root

  1. Jak obnovit soubory v domovském adresáři uživatele do výchozího nastavení v Linuxu

  2. Aktuální adresář skriptu Shell?

  3. Je možné připojit a upravit soubor zpětné smyčky bez sudo/root?