Qual è il significato di GID inferiore a 0


1

Mentre lavoravo su una scatola di yosemite ho scoperto che due gruppi di utenti avevano un valore GID inferiore a 0.

$ dscl -plist . -readall /Groups PrimaryGroupID

<dict>
    <key>dsAttrTypeStandard:PrimaryGroupID</key>
    <array>
        <string>-2</string>
    </array>
    <key>dsAttrTypeStandard:RecordName</key>
    <array>
        <string>nobody</string>
        <string>BUILTIN\Nobody</string>
    </array>
</dict>
<dict>
    <key>dsAttrTypeStandard:PrimaryGroupID</key>
    <array>
        <string>-1</string>
    </array>
    <key>dsAttrTypeStandard:RecordName</key>
    <array>
        <string>nogroup</string>
    </array>
</dict>

È valido? Ha un significato speciale?

Risposte:


1

Gli ID utente e gruppo non sono firmati, ovvero sempre positivi. Tuttavia, sui sistemi a complemento a due , un valore con segno -1 è rappresentato allo stesso modo del valore senza segno più grande possibile - 65535 (0xFFFF) nei campi a 16 bit, 4294967295 (0xFFFF'FFFF) nei campi a 32 bit.

In alcuni sistemi operativi l'utente "nobody" ha il più grande UID possibile - non speciale nel sistema operativo, scelto semplicemente come l'opposto completo di root con 0. Alcuni programmi scelgono di scrivere questo UID come -1 o (uid_t) -1invece di 4294967295.

(Ciò crea confusione quando altri programmi usano lo stesso valore per indicare "nessun UID impostato" ...)


grazie, ha senso per -1. Qualche idea sul -2? Nel frattempo l'ho trovato anche su userID (nessuno)
mh-cbon

È la stessa cosa
gravità
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.