Domů » Administrace uživatelů ve FreeBSD a Solarisu

Administrace uživatelů ve FreeBSD a Solarisu

Administrace uživatelů ve FreeBSD
Kde je to uloženo

FreeBsd ukládá uživatelské a skupinové účty do těchto souborů:

/etc/passwd – zde jsou uloženy informace o uživatelích
/etc/master.passwd – stejný jako passwd plus obsahuje zašifrovaná hesla
/etc/pwd.db – databázová verze souboru passwd (Berkeley DB Hash file)
/etc/spwd.db – databázová verze souboru master.passwd (Berkeley DB Hash file)
/etc/group – definuje skupiny
/etc/master.passwd
Uživatelský účet je uložen ve tvaru:

uziv_jmeno:password:uid:gid:trida:platnost_hesla:
platnost_uctu:full_name:domov_adresar:shell

uziv_jmeno – max. počet znaků uživatelského jména je ve FreeBSD omezen na 16 znaků a nesmí začínat „-“ (spojovníkem). Rovněž některé protokoly limitují počet znaků na 8, např. NIS.

password – v /etc/passwd prázdné, v /etc/master.passwd hash hesla

UID – unikátní číslo, které má user pod systémem. Pro uživatele rozsah od 0 to 65535. 0 až 99 jsou rezervované pro systémové účty.

GID – číslo, které identifikuje skupinu do které user patří. Rozsah 0 to 65535. 0 až 99 jsou rezervované pro systémové účty.

trida – rozšíření mechanismu skupin, který poskytuje další flexibilitu při přizpůsobení systému pro různé uživatele.

platnost_hesla – ve výchozím nastavení FreeBSD nenutí uživatele měnit svá hesla pravidelně, lze nastavit.

platnost_uctu – ve výchozím nastavení FreeBSD nevyprší účty, lze nastavit kdy účet vyprší.

full_name – Skutečné plné jméno uživatele

domov_adresar – Domácí adresář do kterého je uživatel přepnut po zalogování. V tomto adresáři má povolen zápis.

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.
V případě že editujete master.passwd ručně (není doporučeno) je potřeba pro přenesení změn do passwd provést

pwd_mkdb -p /etc/master.passwd
/etc/group
Každý uživatel náleží do skupiny dle záznamu v /etc/master.passwd. Této skupině se říká primární. Členství uživatele v dalších skupinách je
dáno přiřazením v souboru /etc/group

Struktura /etc/group:

groupname:group-password:GID:username-listgroupname

groupname – jméno skupiny
passwd    hash encrypted password.
GID – ID skupiny, čísla 0 až 99, 60001, 60002 a 65534 jsou rezervována pro systém. Využitelné 100 až 60000.
username-listgroupname – Seznam uživatelů, které do dané skupiny náleží.

- jméno skupiny – max 8 znaků
- group-password – Je většinou prázdné.
- max počet uživatelů v grupě je 200
- příkaz passwd nezmění heslo pro grupu

Administrace uživatelů – programy pro práci

Základní příkazy

adduser – přidává uživatele
rmuser  – maže uživatele
chpass – flexibilní nástroj pro změnu databáze uživatelů.
passwd – jednoduchý nástroj pro změnu uživatelských hesel.
pw – výkonný a flexibilní nástroj pro úpravu všech vlastností uživatelských účtů.

Použití adduser – příklad

# adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : jru
Password   : ****
Full Name  : J. Random User
Uid        : 1001
Class      :
Groups     : jru wheel
Home       : /home/jru
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
#

Do domovského adresáře pro nového uživatele, zkopírujte soubory ve výchozí konfiguraci („dotfiles“) z /usr/share/skel

Použití rmuser – příklad

# rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user’s home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru – personal group is empty) done.
Removing user’s incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
#

Odstraní crontaby uživatele (pokud existují), všechny joby a provede kill procesů ve vlastnictví uživatele, odstraní domovský adresář
uživatele (pokud je ve vlastnictví uživatele), příchozí poštu soubory patřící k uživateli z /var/mail, odstraní všechny soubory
vlastněné uživatelem z dočasného oblasti ukládání souborů, jako je /tmp a odstraňuje uživatelské jméno ze všech skupin, do které
patří v /etc/group. Poznámka: Je-li skupina prázdná a název skupiny je stejný jako uživatelské jméno, je odstraněna skupina, vytvořená
adduser. Rmuser nelze použít k odstranění superuser účtu.

Použití chpass – příklad

Změna uživatelských databasových informací pro superuživatele

Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

Normální uživatel může pro sebe měnit menší část informací

Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

Použití passwd – změna hesla uživatele jru příklad

# passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database…
passwd: done

Sám uživatel si mění heslo stejně bez jména uživatele v příkazu passwd

Použití pw – příklady

Seznam přepínačů příkazu pw
# man pw
pw [user|group|lock|unlock] [add|del|mod|show|next] [help|switches/values]

Přidat uživatele
# pw useradd -n tom -s /bin/csh -m
# passwd tom

-n : username
-s : shell
-m : vytvoření home directory

Smazat uživatele

# pw userdel -n tom -r

-r smaže home directory včetně jeho obsahu

Přidat skupinu

# pw groupadd teamtwo
# pw groupshow teamtwo
teamtwo:*:1100:

Smazat skupinu
# pw group del mygroup

Přidat uživatele do skupiny

# pw groupmod teamtwo -M jru
# pw groupshow teamtwo
teamtwo:*:1100:jru

-M nastavit členy skupiny
-m přidat člena skupiny

Přidat uživatele do existujících skupin
# pw usermod tom -G ftpusers,wwwusers

Přidat nového uživatele do skupiny
# pw useradd jerry -G sales

Zamknutí a odemknutí uživatelského účtu
# pw lock jerry
# pw unlock jerry

Administrace uživatelů pod Solarisem
Kde je to uloženo

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:

uziv_jmeno:x:UID:GID:comment:home_directory:login_shell – 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 záznamu 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-listgroupname – 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ží.

Administrace uživatelů – programy pro práci

Základní příkazy

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.

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 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 username
Pokud chcete smazat i domácí adresář a data v něm

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, pressing  accepts 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

Soubory ovlivňující proces přihlášení

Přihlášení ovlivňují následující soubory:
Pro shelly Bourne, Korn, a BASH je zde soubor /etc/profile, který se spouští při loginu

Pro C shell se spouští /etc/.login.

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.
Proměnné prostředí:

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 TERMPro C shell

setenv TERM dtterm

Zamknutí a odemknutí uživatelského účtu

# passwd -l jerry
# passwd -u jerry

 

 


Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*