Malý úvod do administrace uživatelů v Solarisu. Snad je zde vše podstatné...
Solaris ukládá uživatelské a skupinové účty do těchto souborů:
/etc/passwd je soubor kde jsou uložené uživatelské účty
/etc/shadow - zde jsou uložená hesla v šifrované podobě
/etc/group - definuje skupiny
/etc/passwd
Uživatelský účet je uložen ve tvaru:
loginID:x:UID:GID:comment:home_directory:login_shell
LoginID - unikátní, přes něj se přihlašuje do systému. 8 znaků. a-Z,0-9. První musí být písmeno a jeden znak musí být malé písmeno. Znaky '-', '_', '.' jsou povoleny, ale nejsou doporučeny.
x - zástupný znak za heslo - to je uložené v /etc/shadow - max 256 znaků, čísel nebo speciálních znaků.
UID - unikátní číslo, které má user pod systémem. Pro uživatele rozsah od 100 to 60000. 0 až 99 jsou rezervované pro systémové účty. 60001 je pro účet nobody, 60002 je pro účet noaccess.
GID - číslo, které identifikuje skupinu do které user patří. Rozsah 100 to 60000.
Comment - komentář
Home directory - Domácí adresář do kterého je uživatel přepnut po zalogování. V tomto adresáři má povolen zápis.
Login shell - shell který je mu spuštěn po zalogování - je na výběr z Bourne shell, Korn shell, C shell, Z shell, BASH shell a TC shell.
/etc/shadow
Má nastavená práva čtení jen pro roota.
root:VsHfC3J3hdgth:6445:::::: daemon:NP:6445:::::: ...
Struktura má následující pořadí:
loginID:password:lastchg:min:max:warn:inactive:expire:
loginID - shodné s údajem v /etc/passwd
password - Zašifrované 13-ti znakové slovo. Pokud je zde " *LK* ", tak to znamená že účet je zablokovaný. NP znamená že není heslo. Heslo musí být minimálně 6 znaků, minimálně dvě písmenka a jedno číslo nebo speciální znak. Nesmí být stejné jako login a nesmí být ani opačný jako login
lastchg - Změna hesla proběhla před počtem dní v poli lastchg od 1.1.1970.
min - počet dní po který nemůže být heslo změněno
max - maximální stáří hesla - dní
warn - Uživatel dostane varování warn dní před vypršením
inactive - po pomto počtu dní kdy se uživatel nepřihlásí je účet zablokován
expire - počet dní od 1.1.1970, pak účet vyexpiruje
/etc/group
Každý uživatel náleží do skupiny dle z8znamu v /etc/passwd. Této skupině se říká primární. Uživatel může mít až 15 dalších skupin a to v souboru /etc/group
Struktura /etc/group:
groupname:group-password:GID:username-list
groupname - jméno skupiny - max 8 znaků
group-password - Je většinou prázdné.
GID - ID skupiny, čísla 0 až 99, 60001, 60002 a 65534 jsou rezervována pro systém. Využitelné 100 až 60000.
username-list - Seznam uživatelů, které do dané skupiny náleží.
/etc/default/passwd
popis jsem už udělal dříve a je zde
useradd - přidává uživatele
userdel - maže uživatele
usermod - změna uživatele
groupadd - přidává skupinu
groupdel - maže skupinu
groupmod - změna skupiny
Mimo těchto příkazů má Solaris 9 a 10 nový příkaz smuser a smgroup
Příkaz smuser má následující parametry:
add - pro přidání uživatele
modify - pro změnu uživatele
delete - smazání uživatele
list - výpis uživatele
Oproti klasickým přikazům jako useradd umí smuser a smgroup mimo lokálních účtů spravovat i vzdálené. smuser a smgroup se hodí ke scriptové administraci a příkazy by měly umět zacházet se scripty od Solaris Management Console. Odezvy smuser nepatří k nejrychlejším...
Použití useradd - příklad
# useradd -u 105 -g other -d /export/home/newuser1 -m -s /bin/ksh -c "Regular User Account" novyuser1 64 blocks
vysvětlení:
u = UID, tedy 105
g = skupina, tedy other
d = domácí adresář
m = vytvoř domácí adresář
s = shell
c = komentář
novyuser1 = jméno uživatele
Pokud něco nezadáte, tak se doplní z defaultu. Default je uložen v /usr/sadm/defadduser. Pokud tam není, tak ho pomocí příkazu useradd -D vytvoříme a pak můžeme vesele editovat.
Po založení je účet bez hesla a zablokován. Jakmile mu pomocí příkazu passwd novyuser1 nastavíte heslo, bude funkční.
Použití userdel - příklad
userdel user
jak jednoduché :)
Pokud chcete smazat i domácí adresář a data v něm, tak použijte
userdel -r user
Použití usermod - příklad
usermod -m -d /export/home/usera -l usera novyuser1
Takže příkaz udělá změnu z loginu usera na novyuser1 a zároveň změní domovský adresář a vytvoří ho.
Pro představu ta samá změna ale při použití příkazu smuser
/usr/sadm/bin/smuser modify -- -n novyuser1 -N usera -d /export/home/usera Authenticating as user: root Type /? for help, pressingaccepts the default denoted by [ ] Please enter a string value for: password :: ******** Loading Tool: com.sun.admin.usermgr.cli.user.UserMgrCli from testik.iforce.cz Login to testik.iforce.cz as user root was successful. Download of com.sun.admin.usermgr.cli.user.UserMgrCli from testik.iforce.cz was successful.
Použití groupadd, groupmod, groupdel - příklad
Vytvoříme skupinu id 101 se jménem skupinaucetnich
groupadd -g 101 skupinaucetnich
Změníme název skupiny s id 101 na skupinasefu
groupmod -g 101 skupinasefu
Smažeme skupinu
groupdel skupinasefu
Všechny zde prováděné úkony můžete samozřejmě udělat i přes klikátko smc
Pro C shell se spouští /etc/.login.
Uživatelské soubory ovlivňující proces přihlášení
Každý uživatel může mít ještě vlastní a to:
Bourne shell: $HOME/.profile
Korn shell: $HOME/.profile a $HOME/.kshrc
C shell: $HOME/.cshrc a $HOME/.login
Bash: $HOME/.bash_profile, $HOME/.bash_login, nebo $HOME/.profile.
Vzory konfiguračních souborů jsou v /etc/skel/.
Příkaz useradd nakopíruje soubory z /etc/skel do domácího adresáře.
Vypíšete je příkazem env
MANPATH=:/usr/man:/usr/share/man:/opt/SUNWvts/man:/opt/SUNWexplo/man:/opt/CTEact/man TERM=dtterm SHELL=/usr/bin/bash USER=root ...
jsou zde důležitá nastavení, která ovlivnují chování vašeho shellu, ale i programů, které pod ním spustíte.
Nastavení proměnných prostředí:
Nastavení terminálu pro Bash, Bourne a Korn
TERM=dtterm; export TERM
Pro C shell
setenv TERM dtterm