Serverovny.cz/Fórum/Jak napsat skript pro vytvoření nového uživatelského účtu na Linuxu?

Jak napsat skript pro vytvoření nového uživatelského účtu na Linuxu?

Zdravím všechny, mám takovou otázku ohledně psaní skriptu v Linuxu. Chtěl bych se naučit, jak napsat jednoduchý skript, který mi pomůže vytvořit nový uživatelský účet. Jsem nováček v oblasti správy serverů a zatím jsem používal jen základní příkazy v terminálu, ale uvědomuji si, že když budu mít víc uživatelů, tak se to začíná komplikovat. Mám na mysli něco jako automatizaci procesu, abych nemusel pořád psát příkaz adduser nebo useradd ručně a vyplňovat všechny potřebné informace. Chci, aby byl skript co nejjednodušší a snadno použitelný. Třeba bych mohl zadat jméno uživatele a heslo jako argumenty skriptu, který by pak udělal vše potřebné za mě. Myslím, že by bylo super mít možnost také přidat uživatele do nějaké skupiny nebo nastavit domovský adresář. Je možné to udělat pomocí shell skriptu nebo musím použít něco složitějšího? Jak bych měl začít? Mohl by někdo poskytnout příklad nebo alespoň nasměrovat, kde hledat informace o tom, jak takový skript napsat? Jaké příkazy bych měl použít a jakým způsobem je kombinovat? A co třeba bezpečnostní aspekty, na co si dát pozor při vytváření uživatelských účtů tímto způsobem? Doufám, že se najde někdo, kdo má s tímto zkušenosti a pomůže mi rozklíčovat tu problematiku. Díky moc!

197 slov
2 minut čtení
14. 1. 2025
Lenka Švandová

Tvorba skriptu pro vytváření nových uživatelských účtů na Linuxu je fakt jednoduchá. Můžeš použít bash skript, který vezme jako argumenty jméno uživatele, heslo a případně i skupinu. Tady je základní příklad, jak by to mohlo vypadat:

#!/bin/bash

if [ $# -ne 3 ]; then
  echo "Použití: $0 jméno_heslo_skupina"
  exit 1
fi

UŽIVATEL=$1
HESLO=$2
SKUPINA=$3

# Přidání uživatele
echo "$HESLO" | sudo pwgen -s 12 1 | passwd --stdin $UŽIVATEL 

echo "Uživatel $UŽIVATEL byl vytvořen s heslem $HESLO"

# Přidání do skupiny
groupadd $SKUPINA || echo "Skupina $SKUPINA už existuje"
sudo usermod -aG $SKUPINA $UŽIVATEL

Nezapomeň, že pro spuštění skriptu potřebuješ mít práva správce, takže ho spouštěj jako sudo. Bezpečnost je důležitá, takže si dej pozor na to, jakým způsobem ukládáš hesla a kdo má přístup k tvému skriptu. Zároveň se ujisti, že heslo není hardcodované ve skriptu nebo něco podobného.

Pokud si nejsi jistý s nějakou částí, tak se mrkni na dokumentaci k příkazům adduser, passwd, a usermod. Ty ti dají více informací o tom, co všechno můžeš skriptovat. Tak hodně štěstí!

161 slov
1.6 minut čtení
19. 1. 2025
Natálie Němcová

K tomu, co chceš udělat, se dá napsat jednoduchý bash skript. Můžeš použít adduser nebo useradd pro vytvoření uživatelského účtu. Tady je základní příklad, jak by takový skript mohl vypadat:

  1. Otevři terminál a vytvoř nový skript:
    nano create_user.sh
    
  2. Zkopíruj do něj tohle:
    #!/bin/bash
    if [ $# -ne 3 ]; then
        echo "Použití: $0 jméno_uzivatela heslo skupina"
        exit 1
    fi
    
    USERNAME=$1
    PASSWORD=$2
    GROUP=$3
    
    # Vytvoření uživatele s domovským adresářem a přidání do skupiny
    sudo useradd -m -G $GROUP $USERNAME
    echo "$USERNAME:$PASSWORD" | sudo chpasswd
    echo "Uživatel $USERNAME byl vytvořen a přidán do skupiny $GROUP."
    
  3. Ulož a zavři editor. Pak dej skriptu spustitelné oprávnění:
    chmod +x create_user.sh
    
  4. Skript pak můžeš spustit následovně:
    ./create_user.sh novyuzivatel heslo uzivatelska_skupina
    

Bezpečnostní aspekty: dej pozor na to, jakým způsobem zpracováváš hesla a kdo má práva spouštět skripty jako root. Je dobrý nápad omezit uživatelské vstupy, aby nedošlo k injekcím příkazů.

Tady je to v kostce! Pokud budeš potřebovat víc funkcí, můžeš to rozšířit podle potřeby.

218 slov
2.2 minut čtení
19. 1. 2025
Tereza Vrbová
Serverovny.cz/Články/Skriptovací jazyky
Jak psát efektivní skripty pro správu uživatelských účtů na Linux serverech?Objevte tipy a triky, jak psát efektivní skripty pro správu uživatelských účtů na Linux serverech. Ulehčete si administraci a údržbu s našimi praktick...
1000 slov
10 minut čtení
28. 11. 2024
Martin Kovář
Přečíst článek
Podobné otázky