Fórum Root.cz
Hlavní témata => Software => Téma založeno: debil 16. 08. 2018, 15:53:45
-
Zdravim, vytvoril jsem takovou situaci...
Ubuntu 18.04, jinak bezne pouzivany, stabilni system na desktopu.
Chtel jsem vyvtorit noveho uzivatele, rekneme developer.
#adduser developer ...vse OK
$su - developer ...OK
developer$groups ...developer, root (?!)
ano..opravdu muze psat do g+rw souboru roota.
#gpasswd -d developer root ...
> gpasswd: user 'developer' is not a member of 'root'
# cat /etc/group |grep root
root:x:0:
# cat /etc/passwd |grep root
root:x:0:0:root:/root:/bin/bash
Cim to muze byt? A zejmena, proc je rozdil v tom, co vraci groups a co gpasswd?
Diky moc
-
Protože:
gpasswd -d developer root
odebere uživatele developer ze skupiny root... Blik!
-
Protože:
gpasswd -d developer root
odebere uživatele developer ze skupiny root... Blik!
Coze?
Mozna jsem se spatne vyjadril, ale prave v tom je problem!
gpasswd tvrdi, ze neodebere, neb tam neni.
x
groups (a systemova opravneni) tvrdi, ze je. Tj i prave po volane delete pres gpasswd.
-
Protože:
gpasswd -d developer root
odebere uživatele developer ze skupiny root... Blik!
Coze?
Vidličky a nože.
RTFM!
-d, --delete user
Remove the user from the named group.
-
RTFM!
Porad nic. Nechapu co myslis, nebo co delam blbe?
# gpasswd -d developer root
Removing user developer from group root
gpasswd: user 'developer' is not a member of 'root'
# su - developer -c groups
developer root
-
RTFM!
Porad nic. Nechapu co myslis, nebo co delam blbe?
# gpasswd -d developer root
Removing user developer from group root
gpasswd: user 'developer' is not a member of 'root'
# su - developer -c groups
developer root
Blbě děláš to, že dáš odebrat uživatele ze skupiny a divíš se, že tam následně není. Pokud tě plete hlášení, že uživatele ze skupiny odebere a nahlásí, že tedy už není členem, tak doporučuji více tekutin, to bude z horka.
-
nevim, jestli se snazis pomoct, nebo potrebujes ty tekutiny..
Koukni se, co vypisuje nasledne
su - developer -c groups
-
(https://www.lovequotesmessages.com/wp-content/uploads/2018/04/man_with_brain_stupid_meme1.jpg)
-
Blik!
Proč ta agresivita?
-
Hmmm, nemůže to být tím, že se změna skupin projevuje až po odhlášení a přihlášení? Pokud ten příkaz sahá do kernelu, mohlo by to být tím.
-
Hmmm, beru zpět, přihlašuješ se do developera přes su. Asi se taky radši jdu napít :D
-
Blbě děláš to, že dáš odebrat uživatele ze skupiny a divíš se, že tam následně není.
Diví se, že tam JE i když podle gpasswd ne!
-
Příkaz
id developer
vrací co?
Jinak mě teda ve Fedoře všechno v cajku. Co mrknout na /etc/skel, nebo kde je umístěné pravidlo, kam zařadit nového uživatele. Ve Fedoře se vytvoří stejně pojmenovaná skupina.
-
Tohle teda nepozoruji. Osobne bych odhadl, ze mas nejakou dalsi skupinu, ktera je default s gid 0?
docker run -ti ubuntu:bionic bash
root@33aa27260f3d:/# adduser developer
Adding user `developer' ...
Adding new group `developer' (1000) ...
Adding new user `developer' (1000) with group `developer' ...
Creating home directory `/home/developer' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for developer
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
root@33aa27260f3d:/# su - developer
developer@33aa27260f3d:~$ groups
developer
developer@33aa27260f3d:~$ id
uid=1000(developer) gid=1000(developer) groups=1000(developer)
developer@33aa27260f3d:~$
-
Blbě děláš to, že dáš odebrat uživatele ze skupiny a divíš se, že tam následně není.
Diví se, že tam JE i když podle gpasswd ne!
A co původní dotaz? Taky tak skončil? Rýpe do toho bez potřebných znalostí nebo troluje.
-
Příkaz id developer
vrací co?
Jinak mě teda ve Fedoře všechno v cajku. Co mrknout na /etc/skel, nebo kde je umístěné pravidlo, kam zařadit nového uživatele. Ve Fedoře se vytvoří stejně pojmenovaná skupina.
Diky, /etc/skel jeste zkusim..ale stejne, odebrat by jit melo!
# su -l - developer -c id
uid=1004(developer) gid=1004(developer) groups=1004(developer),0(root)
# gpasswd -d developer root
Removing user developer from group root
gpasswd: user 'developer' is not a member of 'root'
# echo $?
3 // jen err, ze uz tam neni. ale pro jistotu zkusim jeste
# gpasswd -a developer root
Adding user developer to group root
# gpasswd -d developer root
Removing user developer from group root
# echo $?
0 // uz OK
# su -l - developer -c id
uid=1004(developer) gid=1004(developer) groups=1004(developer),0(root)
// ...FUUUUU
@Martin Mlynar:
Diky, dobry napad s koliznim gid, ale taky ne!
# cat /etc/group | grep root
root:x:0:
# cat /etc/group | grep :0:
root:x:0:
# cat /etc/group | grep developer
developer:x:1004:developer
# cat /etc/passwd | grep developer
developer:x:1004:1004:,,,:/home/developer:/bin/bash
Tak jsem koukal do /etc/skel , u me je to slozka s obsahem:
-rw-r--r-- 1 root root 220 Sep 19 2012 .bash_logout
-rw-r--r-- 1 root root 3771 Jun 24 2016 .bashrc
drwxr-xr-x 1 root root 66 Aug 11 17:44 .config
-rw-r--r-- 1 root root 8980 Oct 4 2013 examples.desktop
-rw-r--r-- 1 root root 14965 Apr 9 19:28 .face
drwxr-xr-x 1 root root 10 Aug 11 17:44 .kde
-rw-r--r-- 1 root root 807 Apr 4 20:30 .profile
Zkousel jsem pridat uzivatele pres useradd, adduser, oba maji skupinu root.
Zkousel jsem updatovani skupin, pro ostatni, zda se, funguje:
# useradd tmpp
# gpasswd -a tmpp developer
Adding user tmpp to group developer
# su -l - tmpp -c id
No directory, logging in with HOME=/
uid=1005(tmpp) gid=1005(tmpp) groups=1005(tmpp),0(root)
# gpasswd -d tmpp developer
Removing user tmpp from group developer
# su -l - tmpp -c id
No directory, logging in with HOME=/
uid=1005(tmpp) gid=1005(tmpp) groups=1005(tmpp),0(root)
@ByCzech, netrolluju, ale mam problem, ktery neni uplne trivialni. Snazil ses pomoct..diky, ale asi neporozumnel problemu.
-
Nemas tam naky kerberos, nss nebo neco takovyho? Naky rootkit? :P
-
Diky, /etc/skel jeste zkusim..ale stejne, odebrat by jit melo!
...
Tak jsem koukal do /etc/skel , u me je to slozka s obsahem:
-rw-r--r-- 1 root root 220 Sep 19 2012 .bash_logout
-rw-r--r-- 1 root root 3771 Jun 24 2016 .bashrc
drwxr-xr-x 1 root root 66 Aug 11 17:44 .config
-rw-r--r-- 1 root root 8980 Oct 4 2013 examples.desktop
-rw-r--r-- 1 root root 14965 Apr 9 19:28 .face
drwxr-xr-x 1 root root 10 Aug 11 17:44 .kde
-rw-r--r-- 1 root root 807 Apr 4 20:30 .profile
Ej, sorry, to je mimo.
Podle man stránky k useradd tak platí, že pokud není určena skupina, tak záleží na nějakém příznaku USERGROUPS_ENAB v /etc/login.defs, případně GROUP v /etc/default/useradd. (Fedora) Mrkni, zda v tom souboru nemáš GROUP=0
-
Kerberos, nss nemam. je to normalni,pracovne-domaci ntb. Driv to fungovalo (starsi uzivatele).
Rootkit - taky si zacinam rikat, nebo chyba v "su"?
Uz jsem zkousel i restartovat, porad..
2 etc/skel ..jj, koukal jsem do /etc/defaits/useradd i do login.defs, user skupinu mam, ale vytvari se spravne s novym uzivatelem (viz id: je ve skupinach developer,root)
-
A kdyz se prihlasis bez su, tak jaky mas groupy?
-
Ja teda nss mam aj na pracovnom notebooku.., pre istotu skus poslat vystupy z `getent group | grep :0`, `getent passwd | grep developer` a `cat /etc/nsswitch.conf` ?
-
A kdyz se prihlasis bez su, tak jaky mas groupy?
Bingo!
Pri prihlaseni rovnou do toho uzivatele ma je skupinu 'developer'!
Podezreni je tedy na `su`, ktery nejak pribaluje rootovskou skupinu? :O
U me je /bin/su poskytovano balickem login,
login/bionic,now 1:4.5-1ubuntu1 amd64 [installed]
Overoval jsem md5sum a binarky sedi.
Muzete prosim nekdo na Debianu/Ubuntu/KDE Neon overit tuhle chybu?
Postup:
su - <no-root-user> -l -c id
Chyba: prida mu to skupinu 0(root)
Da se toho nejak zneuzit, krom toho, ze takto "prepnuty" user muze mazat rootovo soubory, ktere maji g+w ?
-
jeste ls -l su
-rwsr-xr-x 1 root root 44664 led 25 2018 /bin/su
ten sticky bit mit ma, ze?
-
ma
btw to su poustis jako jaky uzivatel?
-
btw to su poustis jako jaky uzivatel?
tak i tak, v obou pripadech prida roota.
-
a co zahrabane nekde kolem /etc/pam.d/su?
-
podle mě bude zakopaný pes někde v /etc/pam.d, hoď sem výpis a obsah souborů.
Také je vhodné zjistit za jakých okolností tam ten root je a kdy není, tj.
- sudo
- su
- id pod rootem
- ssh login
- login do desktopu
Mohlo by pomoc zavolat ten su s strace a hodit sem výpis, aspoň uvídime, které moduly jsou aktivní a kam kluk všude šahá.
Stejně tak se může jednat o nějakou nákazu, projít výpis lsof, mrknout na /proc/modules a ověřit grup cfg.
-
@Martin: do /etc/pam.d/su jsem se ted dival, nic mnou meneneho, ani nic podezreleho. Jestli mam prohlidnout cele pam.d, tak tam je toho dost (ne nutne podezrele, jen hodne souboru)
podle mě bude zakopaný pes někde v /etc/pam.d, hoď sem výpis a obsah souborů.
Také je vhodné zjistit za jakých okolností tam ten root je a kdy není, tj.
- sudo
- su
- id pod rootem
- ssh login
- login do desktopu
Mohlo by pomoc zavolat ten su s strace a hodit sem výpis, aspoň uvídime, které moduly jsou aktivní a kam kluk všude šahá.
Stejně tak se může jednat o nějakou nákazu, projít výpis lsof, mrknout na /proc/modules a ověřit grup cfg.
- sudo -u developer id //OK (tj neni root grp)
- su - developer -c id //spatne, je.
- #id //OK root:root:root
- ssh login //nemam povoleny
- login do desktopu //OK, jak GUI (sddm), tak TTY
Rootkit - mozne to je vzdycky, ale nemel by byt extra duvod (torrenty, hry apod nepouzivam). Volal jsem krhunter a na /bin/su nic nehlasi. Stejne tak kontrola md5sum.
Strace... vypise toho strasne moc, nejaky vhodny format, jak to mam zavolat? A taky, je tam treba neco anynimizovat?
Diky za dobry postup k debugovani!
-
jeste mozna /etc/default/su
a zkusit jinou su binarku?
naky posahany kontejnery mebo namespaces tam nemas?
-
jeste mozna /etc/default/su
a zkusit jinou su binarku?
naky posahany kontejnery mebo namespaces tam nemas?
Nejsem v kontejneru :)
login (su) jsem si zkusil skompilovat z gitu, ale nedarilo se mi slinkovat s libpam, takze su selhalo. Pak jsem nainstaloval starsi verzi z ubuntu xenial (4.2-3) a tam stejna chyba (ale jen jsem zavolal su - ..., bal jsem se restartovat, aby se neco uplne nepodelalo).
Tj., vede to, ze to neni primo v su, ale necem pod nim? (PAM?)
Jak na ten strace? bylo by zajimavy videt rozdil volani mezi tim su a sudo.
-
Bingo!
Pri prihlaseni rovnou do toho uzivatele ma je skupinu 'developer'!
Podezreni je tedy na `su`, ktery nejak pribaluje rootovskou skupinu? :O
Muzete prosim nekdo na Debianu/Ubuntu/KDE Neon overit tuhle chybu?
Postup:
su - <no-root-user> -l -c id
Chyba: prida mu to skupinu 0(root)
mas to nejake rozbite...
$ lsb_release -d
Description: Ubuntu 18.04.1 LTS
$ su - k3dar -c id
Heslo:
uid=1000(k3dar) gid=1000(k3dar) skupiny=1000(k3dar),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),110(netdev),120(lpadmin),128(sambashare),130(kvm),131(libvirt)
btw: zbytecne uvadis - a -l coz je to same "-, -l, --login" ;-)
-
Tj., vede to, ze to neni primo v su, ale necem pod nim? (PAM?)
Tak jo, vyresino! Diky vsem, co meli uzitecne komentare ! ;)
Chyba je v su & modulu pam-fscrypt.
Muzete to prosim nekdo overit?
0/ useradd developer
1/ \su - developer -c id
1.1/ vs: sudo -u developer id
2/ apt install libpam-fscrypt
2.1/ pam-auth-update --enable fscrypt
3/ ...opakovat 1/
// zpet: pam-auth-update --disable fscrypt; apt remove libpam-fscrypt
Jeste jednou diky moc vsem. A ja jdu hlasit bug.
-
ha :), zpětně se podívej do /etc/pam.d, určitě si tam kluk něco změnil. Tenhle modul neznám, je možné, že je to jeho cíl.
- #id //OK root:root:root
myslel jsem "id developer", tj. jak je vidět uživatel dříve než se přihlásí. Právě jeho "přihlášení" přes su generuje událost v rámci pam modulů a ty mohou zasahovat do v podstatě všeho.
Strace obsahuje sycally do kernelu, pokud mezi aplikací a kernelem přenášíš důvěrná data, můžeš jeho zveřejněním ty data také zveřejnit, v tomhle případě by ale v obsahu nemělo být nic citlivého. Obsahuje právě informace o souborech, ke kterým dané volání přistoupilo, chtěl jsem z toho zjistit, jestli je v pam nějaká událost přetížená a jestli tam něco zasahuje.
Jak koukám fscrypt je nějaká go aplikace, přidává vlastní .so modul do pamu, zdrojáky jsou tady https://github.com/google/fscrypt, ale na první pohled nevidím, proč přidává uživatele do skupiny root, s oprávnění a skupinami ale docela aktivně manipuluje
-
jo v /etc/pam.d/ tě nespíš budou zajímat soubory /etc/pam.d/system-auth a /etc/pam.d/system-login, kde ne přidaný pam_fscrypt.so. Vzhledem k tomu, že mají hodně aktivní vývoj a ty instaluješ z ubuntu repositáře, je možné, že máš starou chybnou verzi, kdo ví.