找出Linux中所有真實(shí)用戶的命令詳解
接觸過(guò) Linux 的小伙伴們都知道在 Linux (或者說(shuō)類 Unix)中,有三種類型的用戶:
- 超級(jí)用戶(UID 為 0):即 root 用戶,擁有最高權(quán)限。
- 系統(tǒng)用戶(UID 為 1~999):系統(tǒng)內(nèi)建用戶,用于運(yùn)行系統(tǒng)服務(wù)和守護(hù)進(jìn)程。
- 普通用戶(UID 為 1000~60000):為了讓使用者能夠使用 Linux 系統(tǒng)資源而建立的,用戶新建的賬號(hào)一般就是普通賬號(hào)。
那么現(xiàn)在問(wèn)題來(lái)了,如何快速找出 Linux 中的真實(shí)用戶(root 用戶和普通用戶)?
正式開始之前,我們先介紹一個(gè)工具——getent
getent 命令
getent 其實(shí)是 "get entries" 的縮寫,功能是用于查看系統(tǒng)數(shù)據(jù)庫(kù)中(包括 /etc/passwd
、/etc/shadow
、/etc/group
、/etc/hosts
等)的記錄信息,它可以根據(jù)指定的數(shù)據(jù)庫(kù)類型和鍵來(lái)檢索條目。
1、查看本地的主機(jī)文件(/etc/hosts
)中包含的指定域名信息。
[root@localhost ~]# getent hosts 127.0.0.1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2、查看本地密碼文件(/etc/passwd
)中指定用戶信息。
[root@localhost ~]# getent passwd user1 user1:x:1000:1000::/home/user1:/bin/bash
3、從 /etc/group
數(shù)據(jù)庫(kù)中檢索指定組信息。
[root@localhost ~]# getent group user1 user1:x:1000:
我們回到問(wèn)題上來(lái):如何快速找出 Linux 中的真實(shí)用戶(root 用戶和普通用戶)?
方法一:
getent passwd | awk -F: '$3 >= 1000 && $3 < 65344 || $3 == 0 {print $1}'
getent passwd
用于檢索/etc/passwd
數(shù)據(jù)庫(kù)中的所有用戶信息awk
命令:-F:
:指定字段分隔符為冒號(hào) (:
)$3 >= 1000 && \$3 < 65344
:表示判斷第三個(gè)字段(用戶 ID)大于或等于 1000 且小于 65344。\$3 == 0
:表示判斷第三個(gè)字段(用戶 ID)等于 0{print $1}
:打印第一個(gè)字段(用戶名)
總結(jié)一下:這條命令將檢索 /etc/passwd
數(shù)據(jù)庫(kù)中的所有用戶信息,并打印出用戶 ID 大于或等于 1000 且小于 65344,或者用戶 ID 等于 0 的所有用戶的用戶名。
但是有的小伙伴看到這么一長(zhǎng)串的命令就犯難了,"我文本三劍客掌握的不是很好,這條命令尤其是里面的判斷看的我頭都暈了,還有沒(méi)有更簡(jiǎn)單的方法呢?"
方法二:
getent passwd 0 {1000..60000} | awk -F: '{print $1}'
getent passwd 0 {1000..60000}
命令用于檢索系統(tǒng)中用戶 ID 為 0 以及范圍從 1000 到 60000 的所有用戶信息awk -F: '{print $1}
:表示對(duì)前面輸出的內(nèi)容進(jìn)行處理——打印第一個(gè)字段
這里補(bǔ)充一下:getent passwd 0 {1000..60000}
命令使用花括號(hào)擴(kuò)展 ({1000..60000}
) 來(lái)生成一個(gè) 0 和從 1000 到 60000 的數(shù)字序列。
然后,getent passwd
命令使用這些數(shù)字作為參數(shù),以檢索系統(tǒng)中用戶 ID 為 0 和從 1000 到 60000 的用戶信息。
以上就是找出Linux中所有真實(shí)用戶的命令詳解的詳細(xì)內(nèi)容,更多關(guān)于找出Linux真實(shí)用戶的命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
shell一鍵部署Zabbix的實(shí)現(xiàn)步驟
本文主要介紹了shell一鍵部署Zabbix的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02Idea使用Bashsupport插件編輯Shell腳本的方法
這篇文章主要介紹了Idea插件之——Bashsupport編輯Shell腳本的相關(guān)知識(shí),功能非常齊全有檢查錯(cuò)誤并且還可以在idea中直接運(yùn)行shell腳本,本教程帶領(lǐng)大家一步步演示插件的安裝和配置,需要的朋友可以參考下2021-05-05Linux實(shí)現(xiàn)定時(shí)備份MySQL數(shù)據(jù)庫(kù)并刪除30天前的備份文件
這篇文章主要介紹了Linux實(shí)現(xiàn)定時(shí)備份MySQL數(shù)據(jù)庫(kù)并刪除30天前的備份文件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01Linux服務(wù)器無(wú)法登陸問(wèn)題的解決方法
下面小編就為大家?guī)?lái)一篇Linux服務(wù)器無(wú)法登陸問(wèn)題的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03Shell腳本中單引號(hào)(‘)和雙引號(hào)(“)的使用區(qū)別
這篇文章主要介紹了Shell腳本中單引號(hào)(‘)和雙引號(hào)(“)的使用區(qū)別,主要探討了變量在單引號(hào)和雙引號(hào)中的不同,需要的朋友可以參考下2014-06-06