Oddzielni użytkownicy systemu i użytkownicy usług

8

Wszyscy wiemy, że mamy użytkowników systemu i użytkowników usług. Szukam sposobu na ich rozdzielenie jako użytkowników systemu i listy użytkowników usług.

Czy jest jakiś sposób ?

rɑːdʒɑ
źródło

Odpowiedzi:

7

Na podstawie gidużytkowników systemu i użytkowników usług można rozdzielić w następujący sposób,

/etc/passwdzawiera listę dla wszystkich użytkowników wraz z kilkoma innymi informacjami. Użytkownicy usług lub rzeczywistych użytkowników mają gid1000 lub więcej. Tak więc listę prawdziwych użytkowników można uzyskać jako,

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

gidMożna również wyodrębnić listę użytkowników systemu ( <1000), ponieważ:

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

Jak to działa

Zawartość /etc/passwdjest jak

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

Podczas używania awkz -F:nią dzieli linię na kilka pól, traktując ją :jak separator pól. Pierwsze pole zawiera nazwę użytkownika, a trzecie pole ma gid.

Dlatego, aby wyodrębnić prawdziwych użytkowników, awkpo prostu sprawdź, czy wartość trzeciego pola jest większa niż równa 1000 i nie jest to nikt użytkownik i wypisuje pierwsze pole, tj. Nazwę użytkownika.

Aby wyświetlić listę wszystkich użytkowników systemu, po prostu sprawdza, czy gidjest mniejsza niż 1000 i wypisuje nazwę użytkownika.

Edytować

Jak chcesz wyświetlić listę root(gid = 0) na prawdziwej liście użytkowników. Zdobądź prawdziwych użytkowników, ponieważ

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

Uzyskaj użytkowników systemu jako,

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

Uwaga : Zawsze ignoruję nobodyużytkownika.

souravc
źródło
Jak może zająć się użytkownikiem root?
rɑːdʒɑ
nie rozumiesz, o co ci chodzi? dostaniesz root jako użytkownik systemu. czy chcesz dołączyć roota do prawdziwej listy użytkowników?
souravc
tak, ponieważ on także jest użytkownikiem.
rɑːdʒɑ
@rajagenupula jest teraz w porządku?
souravc
Chciałbym mieć użytkownika root na prawdziwej liście użytkowników @S
rɑːdʒɑ
2

Aby wyświetlić listę lokalnych (użytkowników systemu), niż można się zalogować i mieć homedir i GID mniej niż 1000

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

Aby wyświetlić listę wszystkich innych użytkowników: (głównie użytkownicy systemu i GID poniżej 1000):

cat /etc/passwd | cut -d: -f 1,3,6 | grep -v "[1-9][0-9][0-9][0-9]"  | cut -d: -f1
Kamil
źródło
1
Identyfikator grupy użytkownika root i identyfikator użytkownika jest mniejszy niż 1000. Dziękuję za odpowiedź
rɑːdʒɑ
@rajagenupula tak na pewno. wyjątkiem jest tylko root. aw Ubuntu ogólnie root nie może się domyślnie zalogować.
kamil