Fórum:
# grep systemuser /etc/passwd /etc/shadow
/etc/passwd:systemuser:x:123:1000::/home/systemuser:/bin/false
/etc/shadow:systemuser:*:17974:0:99999:7:::
# getent group sudo | cut -d: -f4
katica
# sudo -l -U systemuser
Matching Defaults entries for systemuser on pc:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin,
pwfeedback
User systemuser may run the following commands on pc:
(root) NOPASSWD: /usr/lib/linuxmint/mintUpdate/checkAPT.py
# cat /usr/lib/linuxmint/mintUpdate/checkAPT.py | grep shell=True
comnd = Popen(' '.join(cmd), shell=True)
Igaza van ennek az oldalnak és tényleg aggályos ez a kód?
https://bugs.launchpad.net/linuxmint/+bug/1525636

A sudo parancsra vonatkozó jogokról van szó ...
Beküldte kimarite -
Értékelés:
Ez a kódrészlet listázza a Rendszergazda (elnevezésű) felhasználó sudo parancsra vonatkozó jogait (azzal vagyok belépve [$USER], azaz az elsőként létrehozott felhasználó a „rendszergazda”):
sudo -l -U $USER Matching Defaults entries for kim on kim-hp: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, pwfeedback User rendszergazdinak lehetségesen futtathatóak az alábbi parancsok a gépnév szerint: (ALL : ALL) ALL <-- minden parancsnál használhatja a sudo parancsot, de be kell gépelni a felhasználói jelszót minden esetben. (root) NOPASSWD: /usr/lib/linuxmint/mintUpdate/checkAPT.py <-- a Frissítéskezelő alkalmazás frissítési folyamatának indításához (a rendszer indításakor, és a beállított időközönként: 2 óra az alap) nem kell begépelni a felhasználói jelszót. Vagyis kizárólag a checkAPT Python parancsfájl indításához, futtatásához nem kell jelszó. Érdekes lenne, ha kéne ..., ez kényelmi beállítás. Telepítés nem történhet, csak a forráslista frissítése.A checkAPT.py parancsfájl részlete mutatja, hogy konzolon és nem grafikusan fut a frissítés a kiemelt parancsok tekintetében:
def refresh_cache(self): if os.getuid() == 0 : if "--use-synaptic" in sys.argv: window_id = int(sys.argv[2]) from subprocess import Popen cmd = ["sudo", "/usr/sbin/synaptic", "--hide-main-window", "--update-at-startup", "--non-interactive", "--parent-window-id", "%d" % window_id] comnd = Popen(' '.join(cmd), shell=True) comnd.wait() else: self.cache.update()... a Synapticot régebben is használta a Frissítéskezelő, azonban jobban ráépült, mint manapság. Ha az automatikus frissítés van beállítva, akkor nyilván nem fog jelszót kérni telepítéshez sem. Nem értem egészen, mire gondolt az ürge a sebezhetőség kapcsán egészen pontosan. A shadow és a passwd fájl miért van belekeverve a dologba, azt végképp nem értem. Te érted? Az egészet.
A sudo kézikönyvéből:
Nyilván „a mindenhez” jog kell, erre való!
NAME sudo, sudoedit — execute a command as another user -l, --list If no command is specified, list the allowed (and forbidden) commands for the invoking user (or the user specified by the -U option) on the current host. A longer list format is used if this option is specified multiple times and the security policy supports a verbose output format. ##### Listázás (parancsoké, melyeket a lekért felhasználó használhat) If a command is specified and is permitted by the security policy, the fully-qualified path to the command is displayed along with any command line arguments. If command is speci‐ fied but not allowed, sudo will exit with a status value of 1. -U user, --other-user=user Used in conjunction with the -l option to list the privileges for user instead of for the invoking user. The security pol- icy may restrict listing other users' privileges. The sudoers policy only allows root or a user with the ALL privi‐ lege on the current host to use this option. ##### A lekért felhasználó megnevezéseEnnek nem sok értelme van (de most fentebb éppen a kapcsolókat magyarázom):
# sudo -l -U systemuser
Mert a # prompt eleve a root felhasználóé. Akkor ide minek a sudo? Mert az a felhasználói, azaz a $ promtnál használjuk! Nincs értelme ennek .. . A „systemuser” gondolom „nálad” az a felhasználó, aki sudozhat. Vagy ki?
Root prompt a kifejezés valódi értelmében az Ubuntu-alapú rendszeren, azaz a Linux Mint rendszeren nincs, mert nincs a root felhasználónak jelszava (nem azt jelenti, hogy üres..vagy semmi). A root felhasználó nincs használva, helyette van a sudo: "superuser do".
Távolról nehezen törnek fel egy Linuxos gépet, de fizikai hozzáféréssel is valamennyire érteni kell hozzá ..., másrészt lehet védekezni a fizikai hozzáférés ellen.
Szerinted, mi a probléma, mit szűrtél le?
Popen, Pip, Python
Beküldte kimarite -
Értékelés:
Persze, lehetséges, hogy van valamilyen veszélyei a hívásnak,
http://man7.org/linux/man-pages/man3/popen.3.html
https://pubs.opengroup.org/onlinepubs/009695399/functions/popen.html
és mivel Launchpad bugként van jelentve, javítani is fogják.
Mint a többit is. A csákesz az oldal alján írja, hogy már javítva lett a legtöbb „insecure api call”.