User in home dirc. eisperren

Gast #7292095
Lesenswert?

Hi,

ich habe auf einem Ubuntu 20.04 Server vsftpd installiert und einen User 
angelegt. Ich möchte, dass er, wenn ich mit Filezilla (sftp) zugreife, 
dass der User NICHT außerhalb von /home/user rumschnüffeln kann. Stand 
jetzt, er springt bei Filezilla zwar in das gewünschte Verzeichnis, kann 
aber sich aber überall außerhalb dieser Directory aufhalten. In der 
/etc/vsftpd.conf habe ich
' chroot_local_user=YES ' und ' local_root=/home/sammy/ftp ' 
eingetragen/auskommentiert. Leider mache ich das zum ersten mal und die 
"Erklärungen" im Netz haben zu nix geführt. Vielleicht verstehe ich da 
fundamental etwas nicht. Kann ich das in der vsftpd.conf überhaupt 
festlegen? Wenn nein/ wie genau mache ich das? Ich bin kein Linux-guy, 
bitte kein link oder syntax-Fetzen, wenn dann mit einer kleinen 
Erläuterung.

Sorry schonmal im voraus.
Beitrag #7292102 wurde von einem Moderator gelöscht.
#7292103
Lesenswert?

Das themaverfehlende Schlaumeier-Geschreibsel einfach ignorieren.

falls der Zugriff über den sshd läuft:
in der /etc/ssh/sshd_config:

>> Subsystem sftp internal-sftp
und ein
1
Match User sonstwer
2
  ChrootDirectory sonstwo
3
  ForceCommand internal-sftp
4
  AllowTcpForwarding no
5
  X11Forwarding no

Weil du dem ja auch keine Shell oder Portweiterleitungen erlauben 
willst...
Gast #7292146
Lesenswert?

Εrnst B. schrieb:
> Match User sonstwer
>   ChrootDirectory sonstwo
>   ForceCommand internal-sftp
>   AllowTcpForwarding no
>   X11Forwarding no

Hi,

danke für die schnelle Antwort. Das hatte ich in der Tat auch schon

Match User sammy
   ChrootDirectory /home/sammy/ftp
   ForceCommand internal-sftp
   AllowTcpForwarding no
   X11Forwarding no

Dann schlägt aber die Anmeldung in Filezilla fehl.
Gast #7292174
Lesenswert?

1
testftp systemd[1]: Stopping OpenBSD Secure Shell server...
2
Dec 20 14:55:15 testftp systemd[1]: ssh.service: Succeeded.
3
Dec 20 14:55:15 testftp systemd[1]: Stopped OpenBSD Secure Shell server.
4
Dec 20 14:55:15 testftp systemd[1]: Starting OpenBSD Secure Shell server...
5
Dec 20 14:55:15 testftp systemd[1]: Started OpenBSD Secure Shell server.
6
Dec 20 14:55:19 testftp multipathd[654]: sda: add missing path
7
Dec 20 14:55:19 testftp multipathd[654]: sda: failed to get udev uid: Invalid argument
8
Dec 20 14:55:19 testftp multipathd[654]: sda: failed to get sysfs uid: Invalid argument
9
Dec 20 14:55:19 testftp multipathd[654]: sda: failed to get sgio uid: No such file or directory
10
Dec 20 14:55:24 testftp multipathd[654]: sda: add missing path
11
Dec 20 14:55:24 testftp multipathd[654]: sda: failed to get udev uid: Invalid argument
12
Dec 20 14:55:24 testftp multipathd[654]: sda: failed to get sysfs uid: Invalid argument
13
Dec 20 14:55:24 testftp multipathd[654]: sda: failed to get sgio uid: No such file or directory
14
Dec 20 14:55:29 testftp multipathd[654]: sda: add missing path
15
Dec 20 14:55:29 testftp multipathd[654]: sda: failed to get udev uid: Invalid argument
16
Dec 20 14:55:29 testftp multipathd[654]: sda: failed to get sysfs uid: Invalid argument
17
Dec 20 14:55:29 testftp multipathd[654]: sda: failed to get sgio uid: No such file or directory
18
Dec 20 14:55:30 testftp kernel: [ 6594.846440] [UFW BLOCK] IN=ens160 OUT= MAC=xxx SRC=xxx DST=xxx LEN=36 TOS=0x00 PREC=0x80 TTL=1 ID=154 PROTO=2
19
Dec 20 14:55:34 testftp multipathd[654]: sda: add missing path
#7292192
Lesenswert?

Dein Syslog-Schnipsel enthält keinen Login-Versuch.

Allerdings hat ChrootDirectory noch ein paar Anforderungen an den Pfad, 
z.B. dürfen alle Pfadelemente nur von Root beschreibbar sein, erst 
Unterordner darunter dürfen dann Schreibrechte für "sammy" haben.

Insofern wirst du deine Verzeichnisstruktur etwas anpassen müssen.
Gast #7292197
Lesenswert?

Εrnst B. schrieb:
> Dein Syslog-Schnipsel enthält keinen Login-Versuch.
>
> Allerdings hat ChrootDirectory noch ein paar Anforderungen an den Pfad,
> z.B. dürfen alle Pfadelemente nur von Root beschreibbar sein, erst
> Unterordner darunter dürfen dann Schreibrechte für "sammy" haben.

ja, genau das möchte ich. Dann habe ich das mit Match User und 
ChrootDirectory darunter nicht verstanden.

> Insofern wirst du deine Verzeichnisstruktur etwas anpassen müssen.

Ach du lieber Himmel. Wie macht man das?
Beitrag #7292229 wurde von einem Moderator gelöscht.
Gast #7292854
Lesenswert?

Εrnst B. schrieb:
> Troll, M.Sc. schrieb:
>> Ach du lieber Himmel. Wie macht man das?
>
> Versuch erstmal ein
> ChrootDirectory /home
>
> Dann sieht der User zwar die anderen Homedirectories, aber sollte darauf
> keine Rechte haben. Wenn das geht, kannst du weiterschauen, ob du das
> Datenverzeichis, auf das er Zugriff haben soll, woanders hinlegen
> willst.

Leider das gleiche Ergebnis, dann komme ich nicht mehr rein
Moderator Persönliche Seite #7294085
Lesenswert?

Troll, M.Sc. schrieb:
> Kann ich das in der vsftpd.conf überhaupt festlegen?

HowTo dazu: https://linuxhint.com/vsftpd_chroot_home_dir/

Da wird das Vorgehen Schritt für Schritt erklärt. Der Parameter 
chroot_local_user ist schon der richtige Weg dafür.

Denke auch daran, jegliche Änderung in der Konfigurtationsdatei dem 
FTP-Dienst durch
1
sudo systemctl restart vsftpd
bekanntzugeben. Sonst bekommt der eine Anpassung der Einstellungen 
überhaupt nicht mit.
Gast #7304579
Lesenswert?

Gesundes Neues!

Frank M. schrieb:

HowTo dazu: https://linuxhint.com/vsftpd_chroot_home_dir/

Ich kenne den Link. Es funktioniert nicht!

Denke auch daran, jegliche Änderung in der Konfigurtationsdatei dem FTP-Dienst durchsudo systemctl restart vsftpd bekanntzugeben. Sonst bekommt der eine Anpassung der Einstellungen überhaupt nicht mit.

Hahaha, so dumm bin ich nun auch wieder nicht.

#7304589
Lesenswert?

Troll, M.Sc. schrieb:

Ich kenne den Link. Es funktioniert nicht!

Natürlich funktioniert das. Aber: das ist ein FTP Server, alles was du darin konfigurierst betrifft nur FTP Clients.

Du willst einen SFTP Client verwenden. Also musst du den SFTP Server konfigurieren, und der ist i.A. als Subsystem im SSHD enthalten.

Also, Grundproblem: Verstehe die Unterschiede zwischen SFTP, FTP und FTPS.

Gast #7305339
Lesenswert?

Ok, habe ich jetzt so gemacht. Beim Anmelden über sftp erscheint jetzt:

"Anmeldungsprotokoll (siehe Sitzungsprotokoll für Details): Benutzername „useruser“ wird verwendet.

Anmeldung fehlgeschlagen. "

Gast #7305485
Lesenswert?

Problem jetzt ob über SFTP in Filezilla oder root in Ubuntu: permission denied. Ich werde wie gewünscht ins Directory geschmissen und komme sonst nirgends hin. Ich kann aber weder daten dort reinlegen oder runterladen.

Ich habe dann folgendes gemacht:

chmod u+w+r /opt/ftp (Besitzer soll schreiben und lesen können

chown ftpuser:ftp /opt/ftp (die Gruppe ftp und der User ftpuser sind jetzt Besitzer dieser Directory)

das führt dazu, dass ich nicht mehr in Filezille damit durchkomme.

log: "fatal: bad ownership or modes for chroot directory "/opt/ftp""

#7305519
Lesenswert?

Direkt das Chroot - Verzeichnis schreibbar machen geht mit dem openssh-sftp nicht.

Meine Lösung wäre: /opt und /opt/sftp nur schreibrechte für Root /opt/sftpd/sammy mit Schreibrechten für sammy.

Optional: in der sshd-config ein "default"-Verzeichnis angeben. Viele (nicht alle) SFTP-Programme starten dann automatisch in dem Verzeichnis.

Die Verzeichnisangabe ist relativ zum ChrootDirectory und wird als "-d" Parameter zum internal-sftp-Command angegeben.

Also in der sshd-config: ForceCommand internal-sftp -d /sammy

(oder statt hardcodiertem Pfad: "/%u", das %u wird zum Usernamen)

Alternative: Dem user "sammy" in der /etc/passwd ein HOME-dir von "/sammy" einstellen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren