vsftpd - local_root = / var / www / sites / $ USER wird nicht interpretiert?

11

Wenn ich versuche, eine Verbindung zum FTP-Server herzustellen, wird Folgendes angezeigt : "500 OOPS: Verzeichnis kann nicht geändert werden: / home / $ USER / public_html"

  • Wenn ich $ USER wiederhole, erhalte ich den richtigen Benutzernamen
  • Anscheinend wird $ USER nicht in meiner /etc/vsftpd.conf interpretiert
  • Wenn ich "local_root = / var / www / sites / $ USER" entferne, funktioniert alles reibungslos.

Ich verwende vsftpd 2.2.2 und Ubuntu 10.04.1 LTS Release: 10.04 Codename: lucid

Pawel
quelle

Antworten:

20

Was Sie verwenden müssen, ist eine Kombination aus user_config_dir und local_root. In der Hauptkonfigurationsdatei /etc/vsftpd/vsftp.conf haben Sie einen Eintrag wie:

chroot_local_user=YES
user_config_dir=/etc/vsftpd/users

In diesem Verzeichnis (/ etc / vsftpd / users) befindet sich eine Konfigurationsdatei mit demselben Namen wie der Benutzer (in Ihrem Fall $ USER). In dieser Datei befindet sich:

local_root=/var/www/sites/USER
dirlist_enable=YES
download_enable=YES
write_enable=YES

... wobei USER der tatsächliche Name ist (nicht wörtlich USER oder $ USER).


quelle
2
Der wichtige Durchgang hierbei ist die Verwendung von : user_sub_token=$USER, wodurch die ursprüngliche Posterkonfiguration funktioniert, da die Variable $ USER einen verwendbaren Wert erhält. Siehe meinen Kommentar in der anderen Antwort.
user3450548
5

Sie müssen einstellen user_sub_token:

user_sub_token=$USER
local_root=/var/www/sites/$USER
Michaël Witrant
quelle
2
Spaß, dass dies die eigentliche Lösung ist, was das Originalplakat eigentlich wollte, war anwendbar. Sie können es auch in dem anderen vorgeschlagenen Beispiel verwenden, müssen es jedoch nicht unbedingt aktivieren user_config_dir. Sie können es tun oder nicht, je nach Ihrem Geschmack. Der wichtige Pass hier ist user_sub_token=$USER, weil dies derjenige ist, der die $USERVar mit etwas füllt, das in der Conf verwendbar ist. Siehe die user_sub_tokenBeschreibung in der Manpage: "Diese Option wird auch wirksam, wenn local_root user_sub_token enthält."
user3450548