Uživatelské nástroje

Nástroje pro tento web


ucty-a-prava

Účty a práva


ÚČTY
whoami / echo $USER vypíše jméno uživatele odpovídající efektivnímu UID
who am i / who -m vypíše původní přihlašovací jméno uživatele, jméno terminálu a čas přihlášení
logname vypíše původní přihlašovací jméno uživatele
users vypíše právě přihlášené uživatele, jejich počet odpovídá počtu současného připojení (údaje z /var/run/utmp)
who vypíše právě přihlášené uživatele, jejich terminál a čas přihlášení (údaje z /var/run/utmp), -u včetně spuštěných procesů, -q vypíše pouze jména uživatelů a jejich počet, -m totéž jako příkaz „who am i”
w vypíše právě přihlášené uživatele, jejich počet, terminál, procesy, čas řihlášení, dobu nečinnosti, aktuální čas, čas běhu systému a jeho průměrné zatížení uživateli (údaje z /var/run/utmp a /proc)
last / last <uzivatel> vypíše časové údaje o přihlášení všech / daného uživatele do systému za poslední období (od vytvoření souboru /var/log/wtmp) včetně jména terminálu, -n <n> jen posledních n přihlášení, -d vypíše jména počítačů při vzdáleném připojení, -i vypíše IP adresy při vzdáleném připojení, -x vypíše změny úrovní běhu systému
lastb / lastb <uzivatel> vypíše časové údaje nezdařených pokusů o přihlášení všech / daného uživatele do systému za poslední období (od vytvoření souboru /var/log/btmp), -n <n> jen posledních n přihlášení, -d vypíše jména počítačů při vzdáleném připojení, -i vypíše IP adresy při vzdáleném připojení
lastlog vypíše seznam všech uživatelů v systému a čas jejich posledního přihlášení včetně jména terminálu (údaje z /var/log/lastlog), -u <uzivatel> pouze údaje daného uživatele, -t <n> údaje uživatelů přihlášených během posledních n dní
faillog vypíše pozitivní záznamy o neúspěšném přihlášení všech uživatelů (údaje z /var/log/faillog), -a všechny záznamy, -u <uzivatel> daného uživatele, -m <n> nastaví max. počet chybných přihlášení, -r vynuluje počítadlo chybných přihlášení
# faillog -u kuba -r
id / id <uzivatel> vypíše UID a GID přihlášeného / daného uživatele včetně všech jeho skupin, -u pouze efektivní UID, -g pouze efektivní GID, -n s volbou "-u" nebo "-g" vypíše jméno uživatele nebo skupiny místo číselného označení
finger <uzivatel> vypíše informace o daném uživateli - jeho domovský adresář, přihlašovací shell, čas posledního přihlášení, terminál a příp. skutečné jméno či tel. číslo
chfn / chfn <uzivatel> změní komentář (GECOS) v /etc/passwd přihlášeného / daného uživatele, -f <jmeno> skutečné jméno, -p <cislo> služební tel. číslo, -h <cislo> soukromé tel. číslo; nezadají-li se v příkazu žádné volby, pracuje interaktivně (none = prázdné pole)
chsh / chsh <uzivatel> (-s <shell>) změní přihlašovací shell přihlášeného / daného uživatele, -l vypíše seznam dostupných shellů z /etc/shells
useradd <uzivatel> vytvoří uživatele včetně jeho domovského adresáře /home/<uzivatel> (zkopíruje sem obsah adresáře /etc/skel), mailové schránky /var/spool/mail/<uzivatel> a přiřadí mu primární skupinu téhož názvu; při vytváření nového účtu se vychází z údajů uvedených v /etc/default/useradd a /etc/login.defs, -M nevytvoří domovský adresář, -d <adresar> vytvoří jakýkoliv domovský adresář, -g <skupina / GID> přiřadí existující skupinu jako primární, -G <skupina> přiřadí uživatele do dalších skupin oddělených od sebe čárkou, -u <UID> nastaví UID (jinak systém přidělí nejbližší volný), -o nastaví duplicitní UID (platí pouze s volbou „-u“), -r vytvoří systémový účet (s nižším UID, s neomezenou platností hesla a bez domovského adresáře), -s <shell> nastaví přihlašovací shell, -e <RRRR-MM-DD> nastaví konec platnosti účtu, -f <DD> nastaví životnost účtu v řádu dní po skončení platnosti hesla, -c <komentar> poskytne další informace o uživateli (tzv. pole GECOS v /etc/passwd)
# useradd -c "Jan Novak" -g users -s /bin/tcsh jan
usermod <uzivatel> změní atributy uživatele, používají se stejné volby jako u příkazu „useradd“, navíc -a spolu s volbou „-G“ přiřadí uživatele do dalších skupin oddělených od sebe čárkou, aniž by bylo nutné uvádět i všechny dříve definované skupiny (samotná volba „-G“ totiž vždy definuje všechny platné dodatkové skupiny od začátku, čímž přepíše předchozí nastavení), -l <novy_uzivatel> přejmenuje uživatele, -L uzamkne účet (vloží znak „!“ před šifrované heslo), -U odemkne účet (odstraní znak „!“ před šifrovaným heslem)
# usermod -l honza -d /home/honza jan
# usermod -c "" kuba
userdel <uzivatel> odstraní uživatele, -r včetně domovského adresáře a mailové schránky, -f i když je právě přihlášen, včetně domovského adresáře a mailové schránky
groupadd <skupina> vytvoří novou skupinu, -g <gid> nastaví GID (jinak systém přidělí nejbližší volný), -o nastaví duplicitní GID (platí pouze s volbou „-g“), -r vytvoří systémovou skupinu (s GID v rozsahu 101 - 499)
groupmod <skupina> změní atributy skupiny, stejné přepínače jako u příkazu „groupadd“, navíc existuje -n <nova_skupina> přejmenuje skupinu
groupdel <skupina> smaže danou skupinu (nelze smazat primární skupinu existujícího uživatele, ten musí být odstraněn první)
groups / groups <uzivatel> vypíše skupiny, do nichž je přihlášený / daný uživatel přiřazen
newgrp <skupina> přihlásí uživatele do jedné ze skupin povolených v /etc/group, bez parametru přidělí GID jeho primární skupiny (využití zejména při vytváření nových souborů)
passwd / passwd <uzivatel> nastaví či změní heslo přihlášeného / daného uživatele, --stdin čte heslo ze STDIN (roury), -d nastaví účet bez hesla, -n <DD> určí min. platnost hesla v řádu dní, -x <DD> určí max. platnost hesla v řádu dní, -w <DD> určí počet dní k varování uživatele před koncem platnosti hesla, -l uzamkne účet (vloží znaky „!!“ před šifrované heslo), -u odemkne účet, -S <uzivatel> vypíše informace o nastavení hesla uživatele (stav hesla: „PS“ = heslo přiřazeno, „NP“ = žádné heslo, „LK" = účet uzamčen, datum poslední změny hesla, min. a max. platnost hesla v řádu dní, varovací období před vypršením hesla a doba mezi koncem platnosti hesla a uzamčením účtu v řádu dní); výchozí hodnoty platnosti hesel uživatelů jsou uvedeny v /etc/login.defs
# for user in $(awk -F : '{print $1}' /etc/passwd); do passwd -S $user | grep LK; done
(vypíše uživatele se zamčenými účty)
mkpasswd vytvoří náhodné heslo, -l <n> určí délku hesla (implicitně 9 znaků), -C <n> určí min. počet velkých písmen (implicitně 2), -c <n> určí min. počet malých písmen (implicitně 2), -d <n> určí min. počet číslic (implicitně 2), -s <n> určí min. počet speciálních znaků (implicitně 1)
chpasswd <uzivatel>:<heslo> změní heslo daného uživatele a zašifruje ho algoritmem uvedeným v /etc/login.defs, -c <NONE|DES| MD5|SHA256|SHA512> určí odlišný šifrovací algoritmus, -e značí, že nově zadané heslo je v šifrované podobě (jinak se uvádí v čistém textu)
# for user in $(awk -F ":" '{if (length($2) > 2 && $2 !~ /^(!!)?(\$[1256]\$)/) print $1":"$2 }' /etc/shadow); do echo "$user" | chpasswd -c SHA512; done
(zašifruje nezašifrovaná hesla všech uživatelů)
chage <uzivatel> změní nastavení platnosti účtu a hesla uživatele, -d <DD> určí počet dní od 1.1.1970, kdy bylo heslo naposledy změněno, -E <RRRR-MM-DD> nastaví konec platnosti účtu („-1” = platnost účtu není omezena), -I <DD> nastaví životnost účtu v řádu dní po skončení platnosti hesla, -l vypíše údaje o platnosti účtu a hesla, -m <DD> nastaví min. platnost hesla v řádu dní („0” = uživatel smí heslo změnit kdykoliv), -M <DD> nastaví max. platnost hesla v řádu dní („-1” = platnost hesla není omezena), -W <DD> nastaví počet dní, během nichž je uživatel varován před koncem platnosti hesla; nezadají-li se v příkazu žádné volby, pracuje interaktivně; výchozí hodnoty platnosti hesel uživatelů jsou uvedeny v /etc/login.defs
# chage -d 0 jakub
(změní konec platnosti hesla daného uživatele a vyzve ho k jeho změně při prvním přihlášení)
cat /etc/passwd vypíše existující uživatele, jejich šifrované heslo (vložením znaku „*” dojde k uzamčení účtu) či znak „x" (heslo je v /etc/shadow), UID, primární GID, komentář (GECOS), domovský adresář a přihlašovací shell
$ grep 501 /etc/passwd
(vypíše všechny uživatele skupiny, jejíž GID je „501")
cat /etc/shadow vypíše existující uživatele, jejich šifrované heslo (pokud je pole prázdné, jde o účet bez hesla; vložením znaku „*”, „!“ nebo „!!" před heslo dojde k uzamčení účtu; příkaz „useradd” implicitně vytváří zamčené účty - tj. místo hesla obsahují pouze „!!"), čas poslední změny hesla v řádu dní (počítáno od 1.1.1970), min. platnost hesla v řádu dní („0” = uživatel smí heslo změnit kdykoliv), max. platnost hesla v řádu dní („-1” = platnost hesla není omezena), varovací období před vypršením hesla v řádu dní, počet dní od vypršení hesla do zablokování účtu a čas zablokování účtu v řádu dní (počítáno od 1.1.1970)
cat /etc/group vypíše existující skupiny, jejich šifrované heslo (vložením znaku „*” dojde k uzamčení účtu) či znak „x" (heslo je v /etc/gshadow), GID a neimplicitní uživatele oddělené od sebe čárkou
$ grep admin /etc/group
(vypíše GID skupiny „admin”)
cat /etc/gshadow vypíše existující skupiny, jejich šifrované heslo (vložením znaku „*” dojde k uzamčení účtu) či znak „!” (účet bez hesla), administrátory a neimplicitní uživatele oddělené od sebe čárkou
vipw edituje soubor /etc/passwd (totéž jako „vi /etc/passwd”)
vigr edituje soubor /etc/group (totéž jako „vi /etc/group”)
pwconv vytvoří soubor /etc/shadow na základě údajů z /etc/passwd a /etc/login.defs, čímž zajistí bezpečné uložení hesel uživatelských účtů
pwunconv smaže soubor /etc/shadow (opak příkazu „pwconv“)
grpconv vytvoří soubor /etc/gshadow na základě údajů z /etc/group a /etc/login.defs, čímž zajistí bezpečné uložení hesel skupinových účtů
grpunconv smaže soubor /etc/gshadow (opak příkazu „grpconv“)
pwck porovná správnost obsahu souborů /etc/passwd a /etc/shadow, příp. nesrovnalosti je uživatel vyzván opravit, -r pouze vypíše chyby, -s třídí zápis podle UID
grpck porovná správnost obsahu souborů /etc/group a /etc/gshadow, příp. nesrovnalosti je uživatel vyzván opravit, -r pouze vypíše chyby, -s třídí zápis podle GID


PRÁVA
chown <vlastnik> <soubor / adresar> změní vlastnika a/nebo skupinu vlastníků souboru / adresáře, -R rekurzivně, -c vypíše soubory, jichž se změna týká; následuje-li za označením uživatele (jeho jménem či UID) tečka nebo dvojtečka a označení skupiny (její jméno či GID), změní se zároveň i skupina vlastníků souboru; chybí-li označení skupiny (chown user: /tmp /var/tmp), nastavi se primární skupina uživatele; zadá-li se pouze tečka či dvojtečka a označení skupiny (chown :group /tmp /var/tmp), změní se jen skupina vlastníků souboru (totéž jako příkaz „chgrp”)
# chown user:group /tmp /var/tmp
chgrp <skupina> <soubor / adresar> změní skupinu vlastníků souboru / adresáře; označením skupiny se rozumí její jméno či GID, -R rekurzivně, -c vypíše soubory, jichž se změna týká
chmod <prava> <soubor / adresar> nastaví uživatelům přístupová práva k souboru / adresáři
1) v symbolickém vyjádření:
- nejdříve se definují uživatelé (u = vlastník, g = skupina, o = ostatní, a = všichni), následuje operátor (+ pro přidání, - pro odebrání a = pro nastavení práv) a specifikace práv (r = právo pro čteni, w = zápis, x = spuštění souboru / vstup do adresáře, s = SUID či SGID bit, t = sticky bit)
# chmod (a)+x script.sh
# chmod ug=rw,o-w text.txt
2) v číselném vyjádření (osmičkové soustavě):
- v pořadí (speciální atribut) - vlastník - skupina - ostatní (4 = právo pro čtení, 2 = zápis, 1 = spuštění / vstup do adresáře), hodnoty se sčítají
$ chmod 660 text.txt
# chmod 700 /usr/bin/top
u obou variant lze využít přepínače -R pro rekurzivní nastavení a -c pro výpis souborů, jejichž práva se mění; adresář musí mít vždy přiděleno právo vstupu
# chmod -R 755 /home/uzivatel/xxx
speciální atributy se týkají zejména spustitelných souborů (programy a skripty) či adresářů a mají tyto hodnoty: 4 = SUID bit (spuštěný proces běží s právy vlastníka souboru, nikoliv uživatele, který jej spustil), 2 = SGID bit (proces běží s právy skupiny vlastníků souboru; je-li SGID bit nastaven u adresáře, zajistí, že nově vytvořený obsah bude vlastnit stejná skupina vlastníků, která vlastní daný adresář), 1 = sticky bit (používá se u adresářů, jejichž obsah může mazat či přejmenovat jen daný vlastník souboru nebo adresáře, nikoliv každý, kdo má práva vstupu a zápisu v daném adresáři)
# chmod 4755 /usr/bin/passwd
# chmod 2770 /web
# chmod +t /usr/local/tmp
setfacl <volba> (:<prava>) <soubor / adresar> -m nastaví přístupová práva ACL k souboru / adresáři podle daných voleb (u:(<uzivatel>) pro daného uživatele, není-li uveden, nastavení platí pro všechny uživatele, g:(<skupina>) pro danou skupinu, není-li uvedena, nastavení platí pro všechny skupiny, o pro ostatní uživatele, d: zajistí dědění ACL práv z adresáře na jeho nově vytvořený obsah, m: změní masku), -x smaže přístupová práva ACL k souboru / adresáři podle daných voleb (u:(<uzivatel>) pro daného uživatele, není-li uveden, nastavení platí pro všechny uživatele, g:(<skupina>) pro danou skupinu, není-li uvedena, nastavení platí pro všechny skupiny), -b zruší všechna přístupová práva ACL k souboru / adresáři, -R rekurzivně
# setfacl -m u:kuba:rw /home/dookie/soubor.txt
# setfacl -x g:users /home/dookie/soubor.txt
# setfacl -m d:u:david:rwx /home/dookie
# setfacl -m o:000 /web
# setfacl -m m::rwx /web/logs
# setfacl -bR /home/dookie
getfacl <soubor / adresar> vypíše přístupová práva ACL k souboru / adresáři i pro jednotlivé uživatele a skupiny (jsou-li nastavena), -n zobrazí UID a GID místo názvu účtu, -R rekurzivně, -s vynechá soubory s běžným nastavením práv
chattr <operator><atribut> <soubor / adresar> nastaví atributy daného souboru / adresáře v SS ext2, ext3 či ext4; operátor + přidá, - odebere a = nastaví atribut; atribut a zakáže smazání a úpravu souboru (dokonce i uživateli root), povolí jen přidání nových dat na jeho konec, d zakáže zálohu souboru programem „dump“, i zakáže smazání a jakoukoliv úpravu souboru (dokonce i uživateli root); -R rekurzivně
# chattr +i /etc/inittab
lsattr / lsattr <soubor / adresar> vypíše atributy obsahu pracovního adresáře / daného souboru či obsahu daného adresáře v SS ext2, ext3 či ext4, -a zobrazí i skryté soubory, -d samotný adresář bez obsahu, -R rekurzivně
su <uzivatel> / su - <uzivatel> přihlásí pod daným uživatelem (změní efektivní UID a GID) / včetně jeho prostředí
su (root) / su - (root) přihlásí pod uživatelem root (změní efektivní UID a GID) / včetně jeho prostředí
sudo (<parametr>) (<prikaz>) povolí přihlášenému uživateli spustit příkaz s právy roota či jiného uživatele bez znalosti jeho hesla, tento uživatel musí být uveden v souboru /etc/sudoers v pořadí <uzivatel> <pocitac> = (<puvodni_uzivatel>) (<overeni>:) <prikaz> (v absolutním tvaru); na začátku souboru lze velkým písmem definovat aliasy zastupující oprávněné uživatele, původní uživatele, počítače a příkazy, přičemž výraz „ALL“ zastupuje jakoukoliv hodnotu v uvedených položkách:
dookie ALL = (root) /bin/mount -t iso9660 /dev/cdrom /mnt/cdrom, NOPASSWD: /bin/umount /mnt/cdrom
(dookie smí připojit a bez hesla odpojit mechaniku)
tim localhost = /bin/su [!-]*, !/bin/su *root*
(tim se smí na daném počítači přihlásit pod jakýmkoliv uživatelem kromě root, bez nastavení jeho prostředí)
%admin ALL = SERVICES, PROCESSES, STORAGE
(členové skupiny „admin“ smí na všech počítačích spustit všechny příkazy zastoupené danými aliasy)
-b spustí daný příkaz na pozadí, -l vypíše, zda a příp. v jakém rozsahu je přihlášený uživatel oprávněn použít „sudo“, -u <uzivatel> spustí příkaz jako jiný uživatel než root; soubor /etc/sudoers edituje pouze root příkazem „visudo“; použití příkazu „sudo“ se zapisuje do /var/log/secure
$ sudo /sbin/shutdown -h now
$ sudo -u tom ls ~tom
$ sudo sh -c "cd /home ; du -s * | sort -rn > usage"
$ sudo su - root -c /bin/bash
visudo edituje /etc/sudoers, -c kontroluje správnost souboru, -f <soubor> určí alternativní soubor misto /etc/sudoers
umask / umask <prava> vypíše / nastaví implicitní práva pro nově vytvořené soubory a adresáře v pořadí vlastník - skupina - ostatní v číselném vyjádření (osmičkové soustavě), avšak čísla uvádí práva, jež budou odebrána od stanovené systémové hodnoty 666 pro soubory a 777 pro adresáře, -S symbolické vyjádření; (trvalé nastavení se provede v ~/.bashrc nebo ~/.bash_profile, výchozí globální hodnota je 002 pro běžné uživatele a 022 pro uživatele root v /etc/bashrc)
$ umask 0027 / umask 27
(vlastník má všechna práva, skupina práva pro čtení a vstup do adresáře a ostatní nemají práva žádná)
Poslední úprava: 2017/02/04 18:53 autor: Miroslav Bernát

Nástroje pro stránku

počet návštěv: