Pisahkan pengguna sistem dan pengguna layanan

8

Kita semua tahu bahwa kita memiliki pengguna sistem dan pengguna layanan. Saya mencari cara untuk memisahkan mereka sebagai pengguna sistem dan daftar pengguna layanan.

Apakah ada cara?

rɑːdʒɑ
sumber

Jawaban:

7

Berdasarkan gid, pengguna sistem dan pengguna layanan dapat dipisahkan sebagai berikut,

/etc/passwdberisi daftar untuk semua pengguna bersama dengan beberapa informasi lainnya. Pengguna layanan atau pengguna nyata memiliki gidlebih dari atau sama dengan 1000. Jadi daftar pengguna nyata dapat diperoleh sebagai,

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

Juga daftar pengguna sistem ( gid<1000) dapat diekstraksi sebagai,

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

Bagaimana itu bekerja

Isinya /etc/passwdseperti,

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

Saat menggunakannya awkdengan -F:itu membagi isi garis menjadi beberapa bidang yang memperlakukan :sebagai pemisah bidang. Bidang pertama berisi nama pengguna dan bidang ketiga memiliki gid.

Oleh karena itu untuk mengekstrak pengguna nyata awkhanya memeriksa nilai bidang ketiga lebih besar dari sama dengan 1000 dan bukan siapa - siapa pengguna dan mencetak bidang pertama yaitu, nama pengguna.

Untuk daftar semua pengguna sistem, periksa saja gidkurang dari 1000 dan cetak nama pengguna.

Edit

Seperti yang Anda inginkan daftar root(gid = 0) dalam daftar pengguna nyata. Dapatkan pengguna nyata sebagai,

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

Dapatkan pengguna sistem sebagai,

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

Catatan Saya selalu mengabaikan nobodypengguna.

souravc
sumber
Bagaimana cara merawat pengguna root?
rɑːdʒɑ
tidak mengerti maksudmu? Anda akan mendapatkan root sebagai pengguna sistem. apakah Anda ingin memasukkan root dalam daftar pengguna nyata?
souravc
ya karena dia juga pengguna.
rɑːdʒɑ
@rajagenupula sudah oke sekarang?
souravc
Saya ingin memiliki pengguna root dalam daftar pengguna nyata
@S
2

Untuk daftar lokal (pengguna sistem) daripada yang bisa login dan memiliki homedir dan GID kurang dari 1000

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

Untuk membuat daftar semua pengguna lain: (terutama pengguna sistem dan memiliki GID kurang dari 1000):

cat /etc/passwd | cut -d: -f 1,3,6 | grep -v "[1-9][0-9][0-9][0-9]"  | cut -d: -f1
kamil
sumber
1
User root ID kelompok dan pengguna ID kurang dari 1000 right.thank kasih atas jawaban
rɑːdʒɑ
@rajagenupula ya pasti. hanya root yang merupakan pengecualian. dan pada umumnya ubuntu, root tidak bisa login secara default.
kamil