GNU/Linux >> Znalost Linux >  >> Linux

Účinky přidávání uživatelů do systému Linux

Tento článek popisuje mou cestu poznávání architektury souborového systému Linuxu a používání mých znalostí k napsání skriptu shellu pro vytváření uživatelů Linuxu. Ve druhém ročníku vysoké školy jsem se dozvěděl o souborovém systému Linux, když mě napadl koncept uživatelů. Snažil jsem se vytvořit uživatele v operačních systémech založených na Linuxu.

Skript je navržen pro operační systémy založené na Red Hat a lze jej s drobnými úpravami použít i pro jiné distribuce Linuxu. Všimněte si, že používá ksh .

[ Také by se vám mohlo líbit: Základy správce systému Linux:Správa uživatelských účtů ]

Zaměření je na soubory umístěné v /etc adresář, ve kterém jsou uloženy informace o konfiguraci systému. Ukážu, jak pracovat se systémovými soubory a jak vytvořit nového uživatele. Podmínkou je přístup root.

Zde jsou soubory, které se změní při vytváření nového uživatele v Linuxu:

  1. /etc/passwd
  2. /etc/shadow
  3. /etc/group
  4. /etc/gshadow
  5. /home/USER
  6. /var/spool/mail/USER

Systém přidává zabezpečení domovského adresáře a poštovní schránky uživatele (USER) nastavením vlastnictví na uživatele a na uživatelskou skupinu.

/etc/passwd

Tento soubor ukládá informace o uživateli, jako je uživatelské jméno, ID uživatele, ID skupiny, celé jméno (komentář) a prostředí. Data jsou uložena v následujícím formátu: UserName:Link:UserID:GroupID:Comment:HomeDirectory:Shell

Každý řádek souboru obsahuje následující informace o uživatelích:

  • Uživatelské jméno:Označuje uživatelské jméno poskytnuté uživateli pro snadný přístup.
  • Odkaz:Představuje, že heslo uživatele je uloženo v /etc/shadow soubor. Pokud x je odstraněn, heslo nebude zkontrolováno a uživatel se nebude moci přihlásit.
  • ID uživatele:Běžně známé jako UID a používá se k jedinečné reprezentaci uživatele. Pohybuje se od 0 do 65 535.
    • UID =0 -> účet uživatele root
    • UID =1 000 až 60 000 -> účty jiné než root/obecné
    • UID =1 až 999 a 60 001 až 65 535 -> Uživatelé systému
  • GroupID:Stejné jako UserID, ale používá se k jedinečné reprezentaci skupiny.
  • Komentář:Další informace o uživateli. Obvykle celé jméno uživatele.
  • HomeDirectory:Umístění domovského adresáře uživatele.
  • Shell:Výchozí prostředí uživatele.

/etc/shadow

Tento soubor uchovává informace o heslu uživatele a obsahuje heslo v zašifrované podobě.

Data jsou uložena v následujícím formátu:

UserName:EncryptedPassword:LastPasswordChange:MinPwdAge:MaxPwdAge:WarningPeriod:InactivityPeriod:ExpirationDate:Unused

  • Uživatelské jméno:Označuje uživatelské jméno poskytnuté uživateli.
  • Šifrované heslo:Heslo je zašifrováno pomocí hashovacích algoritmů, jako je sha256, sha512, md5 atd., a uloženo v souboru.
  • Poslední změna hesla:Ukládá datum epochy od poslední změny hesla.
  • Minimální stáří hesla:Ukládá počet dní do příští změny hesla.
    • Ve výchozím nastavení je 0 -> Žádný minimální věk
  • Max Password Age:Ukládá maximální počet dní, po kterých musí uživatel změnit heslo.
    • Ve výchozím nastavení 99 999 -> Žádný maximální věk
  • Výstražná doba:Počet dní, po kterých se zobrazí upozornění na změnu hesla.
    • Ve výchozím nastavení je NULL
  • Doba nečinnosti:Určuje počet dní po vypršení platnosti uživatelského hesla, než bude účet deaktivován.
  • Datum vypršení platnosti:Datum epochy do deaktivace účtu.
  • Nepoužité:Vyhrazeno pro budoucí použití.

Další soubory

  • /etc/group a /etc/gshadow soubory jsou pro skupiny v Linuxu a ukládají data ve formátu GroupName:Link:GroupID:MemberList a GroupName:Password:Reserved:MemberList respektive.
  • Domovský adresář uživatele má být vytvořen v /home adresář s daty z /etc/skel složka.
  • Poštovní schránka vytvořená v /var/spool/mail adresář.

Skript

Následuje skript shellu, který jsem napsal za účelem vytvoření nových uživatelů rozdělených na části:

uname=$1
 
id -u $uname&>/dev/null

Nejprve zkontroluje, zda uživatel již existuje:

if [ $? -ne 0 ]
then
for i in {1000..60000}
do 
id -u $i&>/dev/null & id -g $i&>/dev/null
if [ $? -ne 0 ]
then
break
fi
done
uid=$i
echo "$uname:x:$uid:$uid::/home/$uname:/bin/bash">>/etc/passwd
lastpwdchange=$(datediff 1970-01-01 `date +"%Y-%m-%d"`)
echo "$uname::$lastpwdchange:0:99999:7:::">>/etc/shadow
echo "$uname:x:$uid:">>/etc/group
echo "$uname:!::">>/etc/gshadow
mkdir /home/$uname
cp -a /etc/skel/. /home/$uname/
chown $uname:$uname /home/$uname/ -R
chmod 0700 /home/$uname/ -R
touch /var/spool/mail/$uname
chown $uname:$uname /var/spool/mail/$uname
 
echo "User successfully created"
else
echo "User already exists : try using a unique username">&2
fi

Pokud uživatel již existuje, ukončete program nebo uživatele vytvořte.

Celý kód je veřejně dostupný na GitHubu.

Spusťte skript prostředí

[ Poznámka redakce:I když se tento skript může zdát docela jednoduchý,  vždy se ujistěte, že rozumíte všem skriptům, které najdete, a důvěřujte jim, než je nainstalujete nebo eskalujete jejich oprávnění ve vašem systému. ]

1) Umístěte skript shellu do adresáře /usr/bin/ aby byl přístupný jako příkaz.

2) Přidejte oprávnění ke spouštění pro uživatele root:

# chmod u+x /usr/bin/ksh_useradd

3) Spusťte příkaz s uživatelským jménem jako argumentem:

ksh_useradd USERNAME

4) Skript vytvoří uživatelský účet. Před prvním přihlášením musíte pro nového uživatele nastavit heslo.

[ Bezplatný online kurz:Technický přehled Red Hat Enterprise Linux. ] 

Sbalit

Tento skript může usnadnit proces vytváření uživatelů, než si pamatovat přepínače pro useradd příkaz. Jistě, můžete použít useradd příkaz k vytvoření uživatelů, nastavení oprávnění a vytvoření poštovní schránky uživatele, ale tento skript provádí stejné akce jako useradd a pomůže vám zjistit, co se děje v zákulisí vašeho souborového systému. Doufám, že výše uvedená vysvětlení vám pomohou porozumět konfiguračním souborům souvisejícím s vytvářením uživatelů a jejich polím trochu jasněji.


Linux
  1. Jak změnit identitu systému Linux

  2. Seznam uživatelů v Linuxu – Nejlepší metoda

  3. Jaká je aktuální úroveň běhu systému Linux?

  1. Jak vytvořit více uživatelských účtů v Linuxu

  2. Správa uživatelů Linuxu a skupin Linuxu

  3. Zobrazení uživatelů systému v Linuxu

  1. Jak přidat uživatele do skupiny v Linuxu

  2. Zkontrolujte zatížení systému v systému Linux

  3. Proč se nejvýkonnější uživatel v systému Unix/Linux nazývá „root“?