Separare gli utenti del sistema e gli utenti del servizio


8

Sappiamo tutti che abbiamo utenti del sistema e utenti del servizio. Sto cercando un modo per separarli come utenti di sistema ed elenco utenti di servizi.

C'è un modo?

Risposte:


7

In base a gid, gli utenti del sistema e gli utenti del servizio possono essere separati come segue,

/etc/passwdcontiene un elenco per tutti gli utenti insieme ad alcune altre informazioni. Gli utenti del servizio o gli utenti reali hanno un valore gidmaggiore o uguale a 1000. Pertanto, è possibile ottenere un elenco di utenti reali come,

awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

È inoltre gidpossibile estrarre un elenco di utenti del sistema ( <1000) come,

awk -F: '($3<1000){print $1}' /etc/passwd

Come funziona

I contenuti di /etc/passwdsono come

    root:x:0:0:root:/root:/bin/bash
    ...
    souravc:x:1001:1001:Souravc:/home/souravc:/bin/bash

Quando si utilizza awkcon -F:esso suddivide il contenuto di una linea in diversi campi che trattano :come separatore di campo. Il primo campo contiene il nome utente e il terzo campo ha il gid.

Quindi per estrarre utenti reali awkbasta controllare che il valore del terzo campo sia maggiore di uguale a 1000 e non è nessuno utente e stampa il primo campo, cioè il nome utente.

Per elencare tutti gli utenti del sistema, controlla che gidsia inferiore a 1000 e stampa il nome utente.

modificare

Come si desidera elencare root(gid = 0) nell'elenco utenti reale. Ottieni utenti reali come,

awk -F: '($3==0)||($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

Ottieni utenti di sistema come,

awk -F: '($3<1000)&&($1!="root"){print $1}' /etc/passwd

Nota Ignoro sempre l' nobodyutente.


Come può prendersi cura dell'utente root?
rɑːdʒɑ

non hai capito il tuo punto? otterrai root come utente di sistema. desideri includere root nella lista utenti reale?
souravc,

si perché è anche utente.
rɑːdʒɑ

@rajagenupula è ok adesso?
souravc,

Vorrei avere un utente root nell'elenco degli utenti reali
@S

2

Per elencare locali (utenti del sistema) che possono accedere e avere homedir e GID meno di 1000

 cat /etc/passwd | cut -d: -f 1,3,6 | grep "[1-9][0-9][0-9][0-9]" | grep "/home" | cut -d: -f1

Per elencare tutti gli altri utenti: (principalmente utenti di sistema e GID inferiore a 1000):

cat /etc/passwd | cut -d: -f 1,3,6 | grep -v "[1-9][0-9][0-9][0-9]"  | cut -d: -f1

1
L'ID gruppo dell'utente e l'ID utente root sono inferiori a 1000 a destra. Grazie per la risposta
rʒɑdʒɑ

@rajagenupula sì, certo. l'unica radice è l'eccezione. e in Ubuntu in generale, root non può accedere per impostazione predefinita.
Kamil,
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.