FTP User erstellung Automatisieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Success
Beiträge: 288
Registriert: 01.06.2013 21:23:15

FTP User erstellung Automatisieren

Beitrag von Success » 28.02.2014 22:54:33

Hallo

Ich habe einen Raspberry Pi mit proftpd als FTP Server. Er läuft ganz gut nur ist das User erstellen bisschen aufwändig. Da ich im Scripten ziemlich schlecht bin, und keine Vorstellung habe, wie ich da überhaupt vorgehen soll wollte ich fragen wie man sowas am besten lösen kann.

Der Befehl für einen User erstellen sieht so aus

Code: Alles auswählen

# Erstelle Rootverzeichnis für den neuen User
mkdir /media/ext/ftp/user
# Erstelle den neuen User mit der Shell /bin/false (Denke mal eine Pseudo Shell mit der man nichts anfangen kann) und dem Homeverzeichnis das mit Schritt 1 angelegt wurde
adduser user -shell /bin/false -home /media/ext/ftp/user
# Füge den neuen Benutzer zur Gruppe ftp hinzu. Das muss ich tun weil sonst kann proftpd mit dem User nichts anfangen
adduser user ftp
# Ändere den Besitzer des in Befehl angelegten Ordners von Root auf den neu angelegten User
chown -R user:user /media/ext/ftp/user
# Ändere die Berechtigung des Ordners damit der User auch schreiben und ausführen (Verzeichnis wechseln) kann
chmod -R 770 /media/ext/ftp/user
Ich hab mich bereits in /etc/skal eingelesen aber das scheint nur eine Vorlage für zukünftige Home Verzeichnisse zu sein

Ich will nur den neuen User und das Passwort eingeben müssen. Würde das funktionieren?

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: FTP User erstellung Automatisieren

Beitrag von Cae » 28.02.2014 23:01:45

Naja, im Grunde ersetzt du user durch eine Variable:

Code: Alles auswählen

#!/bin/sh

if [ 1 != $# ]; then
	echo "Usage: ${0##*/} {new user}"
	exit 1
fi

user="$1"
# Erstelle Rootverzeichnis für den neuen User
mkdir /media/ext/ftp/"$user"
# Erstelle den neuen User mit der Shell /bin/false (Denke mal eine Pseudo Shell mit der man nichts anfangen kann) und dem Homeverzeichnis das mit Schritt 1 angelegt wurde
adduser "$user" -shell /bin/false -home /media/ext/ftp/"$user"
# Füge den neuen Benutzer zur Gruppe ftp hinzu. Das muss ich tun weil sonst kann proftpd mit dem User nichts anfangen
adduser "$user" ftp
# Ändere den Besitzer des in Befehl angelegten Ordners von Root auf den neu angelegten User
chown -R "$user:$user" /media/ext/ftp/"$user"
# Ändere die Berechtigung des Ordners damit der User auch schreiben und ausführen (Verzeichnis wechseln) kann
chmod -R 770 /media/ext/ftp/"$user"

passwd "$user"
Ob das mit der Gruppe $user so richtig ist, musst du selbst gucken. Im adduser davor verwendest du ftp als Gruppe.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Success
Beiträge: 288
Registriert: 01.06.2013 21:23:15

Re: FTP User erstellung Automatisieren

Beitrag von Success » 28.02.2014 23:26:01

danke hat funktioniert

Welche Programmiersprache ist das eigentlich?

tHoRax
Beiträge: 560
Registriert: 22.12.2014 17:23:26

Re: FTP User erstellung Automatisieren

Beitrag von tHoRax » 28.02.2014 23:46:27

ich würd' sagen Shellscripting... :wink:
siehe :arrow:
#!/bin/sh
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM

uname
Beiträge: 12403
Registriert: 03.06.2008 09:33:02

Re: FTP User erstellung Automatisieren

Beitrag von uname » 01.03.2014 11:30:37

Genauer verweist /bin/sh z.B. auf /bin/dash oder auf /bin/bash, was ähnlich aber keinesfalls gleich wäre. Wie man sieht nutze ich /bin/dash, was wohl bei Debian mittlerweile Standard für /bin/sh ist.

Code: Alles auswählen

readlink /bin/sh
dash

readlink -f /bin/sh
/bin/dash

Success
Beiträge: 288
Registriert: 01.06.2013 21:23:15

Re: FTP User erstellung Automatisieren

Beitrag von Success » 07.10.2014 14:32:29

Hallo

sorry das ich nochmal nachfrage aber ich möchte gerne das Script so erweitern das der erstellte User ein quotavolumen von soft 2097152 (genau 2 GB?) und hard 2621440 (genau 2,5 GB?) hat. Das Problem ist dass die aquota.user nur ein

Code: Alles auswählen

ÀÙ    €:	 €:	                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               `                      !           L!           àT                    è          €           @”                   é          C     (      h                    2                       a                    ë              (                   =T                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
ausgibt. Im Notepad steht oft [NUL] dabei was man hier irgendwie nicht sieht. Und in der /etc fand ich auch nicht mit quota oder ähnlichem was man automatisieren kann.

Antworten