useradd im pct-Umfeld (Syntax-Verständnis)

kangaroo72

Member
Sep 4, 2024
43
3
8
Hallo zusammen,

ich möchte ein Skript basteln, klappt soweit auch ganz gut, jedoch habe ich folgende Zeile drin, die fehlschlägt.

Code:
...
apt install -y curl nano sudo && \
'useradd -m -s /bin/bash admin' && \
echo "admin:testpilot" | chpasswd && \
usermod -aG sudo admin && \
...

Es soll der User "admin" mit der Bash-Shell angelegt werden.
Leider gibt's noch nichtmal eine Fehlermeldung. Nur der "Hinweis" zur "Usage".

Vielen Dank & beste Grüße
 
Ich habe es bei PVE noch nicht getestet, aber bei vielen Linux Distros darfst du keinen User admin anlegen, da der Name für irgend etwas reserviert ist.
Versuche es doch mal mit admintest.
 
Leider gibt's noch nichtmal eine Fehlermeldung. Nur der "Hinweis" zur "Usage".

Das Gezeigte besteht effektiv aus vier Befehlen. Führe sie doch mal einzeln - ohne Verkettung per "&&" - aus ;-)

Ein zweiter Aufruf (beim Entwickeln und Fehler suchen...) scheitert übrigens schlicht, weil der Account dann bereits existiert. Man sollte einen Account vielleicht erst anlegen, wenn man erkannt hat, dass er noch nicht existiert.

Nach meiner Auffassung sollte ein Script mit mehr als zwei Befehlen auch mehr als zwei Zeilen Fehlerbehandlung enthalten. Du hast Null Zeilen, zumindest im sichtbaren Zitat...
 
Last edited:
  • Like
Reactions: Johannes S
So - jetzt läuft's.
Hier mal mein Script...
Code:
pct create 208 /var/lib/vz/template/cache/debian-12-standard_12.7-1_amd64.tar.zst \
-arch amd64 \
-ostype debian \
-hostname pnc-test-lxc \
-cores 2 \
-memory 8192 \
-swap 512 \
-storage local-lvm \
-password xxxxxxx \
-features mount=cifs,nesting=1 \
-net0 name=eth0,bridge=vmbr0,gw=192.168.200.1,ip=192.168.200.208/24,type=veth && \
pct start 208 && \
sleep 10 && \
pct resize 208 rootfs 20G && \
pct exec 208 -- bash -c "apt update && \
apt upgrade -y && \
apt install -y curl dnsutils nano sudo wget && \
useradd -m -s '/bin/bash' admin && \
echo 'admin:xxxxxxx' | chpasswd && \
usermod -aG sudo admin && \
exit"

Thx & Gruß
 
@UdoB sein Problem war auch, dass er einen Text "'useradd -m -s /bin/bash admin'" als Kommando ausführen wollte.
Gelernt hat er nichts durch deinen Beitrag, bzgl. Ausführungsüberwachung und Fehlererkennung.