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!
Citace od: ByCzech kdy 16. 08. 2018, 16:05:03
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.
Citace od: debil kdy 16. 08. 2018, 16:15:31
Citace od: ByCzech kdy 16. 08. 2018, 16:05:03
Protože:
gpasswd -d developer root
odebere uživatele developer ze skupiny root... Blik!
Coze?
Vidličky a nože.
RTFM!
Citace
-d, --delete user
Remove the user from the named group.
Citace od: ByCzech kdy 16. 08. 2018, 16:20:08
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
Citace od: debil kdy 16. 08. 2018, 16:28:32
Citace od: ByCzech kdy 16. 08. 2018, 16:20:08
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)
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
Citace od: ByCzech kdy 16. 08. 2018, 16:58:51
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:~$
Citace od: . kdy 16. 08. 2018, 17:14:48
Citace od: ByCzech kdy 16. 08. 2018, 16:58:51
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.
Citace od: BoneFlute kdy 16. 08. 2018, 17:16:53
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
Citace od: debil kdy 16. 08. 2018, 18:00:52
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` ?
Citace od: J kdy 16. 08. 2018, 19:53:41
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?
Citace od: Karel kdy 16. 08. 2018, 20:50:53
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)
Citace od: AoK kdy 16. 08. 2018, 21:59:57
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?
Citace od: Karel kdy 16. 08. 2018, 22:30:03
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.
Citace od: debil kdy 16. 08. 2018, 20:36:19
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" ;-)
Citace od: debil kdy 16. 08. 2018, 23:03:24
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.
Citace- #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í.