Szeretném tudni, mi a legnagyobb valós UID a rendszerben. Jelenleg erre a következő parancsot használom:
cut -f 3 -d: /etc/passwd | sort -n | tail -n 2 | head -n 1
Ez elég ronda, és vélelmezi, hogy egy nem valós user van a rendszerben, 65500 feletti id értékkel.
Valami szebbet szeretnék, ami akkor is működik, ha véletlen nincs, vagy több 65500 feletti nem valós user is van. Vagy ezt biztosan elvárhatom, hogy mindig csak 1 ilyen lesz, de ez mindig lesz?
- 1422 megtekintés
Hozzászólások
Szerintem azt kellene definiálnod, hogy mi számít valós usernek.
Nálam pld. van valós user milliós userid-vel is.
- A hozzászóláshoz be kell jelentkezni
Ezt azért a /etc/login.defs fájl elég jól definiálja helyettem.
Az UID_MIN és UID_MAX közötti userekről van szó.
- A hozzászóláshoz be kell jelentkezni
Ezt a fájlt még nem láttam, de az UID_MAX a komment szerint csak useraddra vonatkozik. Nálam ez 60000, miközben van sokkal nagyobb UID (de nem passwdben).
- A hozzászóláshoz be kell jelentkezni
Általános esetben cat /etc/passwd helyett getent passwd.
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ezt nem tudtam.
- A hozzászóláshoz be kell jelentkezni
Én inkább awk
-val (vagy ilyesmivel) szűrném ki azokat, ami az adott értéknél nagyobbak, és csak ez után (a maradékot) rendezném sorba.
- A hozzászóláshoz be kell jelentkezni
Köszönöm, így már valamivel szebb lett:
getent passwd | cut -f 3 -d: | awk '{ if($1 <= 60000) { print }}' | sort -n | tail -n 1
- A hozzászóláshoz be kell jelentkezni
Es akkor ezt most csak AWK-val, mert ez igy kettes ala :)
- A hozzászóláshoz be kell jelentkezni
getent passwd | awk -F: '($3<=60000) && ($3>muid) { muid=$3; } END { print muid; }'
- A hozzászóláshoz be kell jelentkezni
Köszönöm. Nem vagyok egy awk mester, mondhatni most először használtam.
A Tiéd valóban szebb változat.
- A hozzászóláshoz be kell jelentkezni
sub
--
"Csak webfejlesztést ne..." -ismeretlen eredetű szállóige-
- A hozzászóláshoz be kell jelentkezni
Mit értesz valós user alatt? Amúgy a wikin fenn is van mi az és miért annyi.
- A hozzászóláshoz be kell jelentkezni