[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: uso di GID molto alti



On 12/19/19 9:12 PM, Davide Prina wrote:
On 19/12/19 10:11, Federico Di Gregorio wrote:
Linux usa uid di 32 bit. Non c'è alcuna differenza nello scegliere come id 5 oppure 19711019. (Ovviamente non puoi andare oltre 2^31-1)

$ grep UID_T /usr/include/bits/typesizes.h
#define __UID_T_TYPE        __U32_TYPE

$ davide:~# grep '#define __U32_TYPE' /usr/include/bits/types.h
#define __U32_TYPE        unsigned int

---8<----8<----8<----8<- a.c ---8<----8<----8<----8<----8<-
#include <sys/types.h>
#include <stdio.h>

int main( void )
  {
  printf("uid_t: %d bytes (%d bits)\n", sizeof(uid_t), sizeof(uid_t) * 8);
  }
---8<----8<----8<----8<----8<----8<----8<----8<----8<----8<-

$ gcc a.c
$ ./a.out
uid_t: 4 bytes (32 bits)

quindi non dovrebbe essere 2^³²-1?

Si, ma _mi sembra_ di ricordare che in alcuni punti venga usato un signed int. Non trovo i riferimenti, roba vecchia di anni.

Però andando a leggere in giro ho trovato che:

$ cat /etc/login.defs | grep UID
UID_MIN             1000
UID_MAX            60000

Quindi il massimo UID per l'utente è impostato a 60.000 di default.

$ man 5 login.defs

In ogni caso puoi cambiare i valori in login.defs oppure utilizzare direttamente i parametri --uid e --gid:

# grep UID_MAX /etc/login.defs
UID_MAX			60000

# adduser --uid 19711019 test
Adding user `test' ...
Adding new group `test' (19711019) ...
Adding new user `test' (19711019) with group `test' ...
Creating home directory `/home/test' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully

(Tutto funziona)

# deluser --remove-home test
Looking for files to backup/remove ...
Removing files ...
Removing user `test' ...
Warning: group `test' has no more members.
Done.

L'importante è verificare che nessun'altra parte del sistema (tipo volumi di rete o sistemi di virtualizzazione) utilizzino gli uid alti.

In ogni caso se dovessi mettere su un sistema con tutta questa granularità utilizzerei gli attributi estesi del file system: imposti i permessi su di una directory e fai in modo che tutti i file le sotto-directory li dentro li ereditino, così non hai bisogno di un numero assurdamente alto di gruppi.

[snip]

federico

--
Federico Di Gregorio                         federico.digregorio@dndg.it
DNDG srl                                                  http://dndg.it
                 Ma nostro di chi? Cosa abbiamo in comune io e te? -- Md


Reply to: