gpt4 book ai didi

linux - 用于区分 linux 中的服务帐户和用户帐户的脚本

转载 作者:太空宇宙 更新时间:2023-11-04 12:06:41 25 4
gpt4 key购买 nike

除了打印用户的其他详细信息外,我还需要编写一个小的 Linux 脚本来区分 service 帐户和 normal user 帐户。

一切对我来说都很好,除了我怀疑我的方法是否是一个用户或服务帐户是完整的证据。

到目前为止,这是我在脚本中所做的简单检查:

awk -F":" '{OFS=":";print $2,$6,$NF}' /etc/passwd | sort | uniq > passwd_processed
reg=".*/[nologin|false]"
while IFS=":" read -r user dir lshell;do
if [[ "$lshell" =~ $reg ]]; then
utype="Service"
else
utype="User"
fi
....
...
done < passwd_processed
...

所以基本上是检查登录 shell。如果它包含 nologinfalse(考虑到服务帐户没有实际的 shell 来登录,因此 shell 是 /[usr]/bin/false/[usr]/bin/nologin), 在 shell 字段中,将它们声明为 Service accounts else User accounts.

这个检查够了吗?或者是否有一些更明确的方法来了解和使用脚本来区分 Linux 中的 ServiceUser 帐户?

最佳答案

正如@chepner 提到的,一些操作系统为系统或普通用户/组保留范围。

如果您使用的是基于 Debian 的发行版,您可能需要查看 /etc/adduser.conf:

# FIRST_SYSTEM_[GU]ID to LAST_SYSTEM_[GU]ID inclusive is the range for UIDs
# for dynamically allocated administrative and system accounts/groups.
# Please note that system software, such as the users allocated by thebase-passwd
# package, may assume that UIDs less than 100 are unallocated.
FIRST_SYSTEM_UID=100
LAST_SYSTEM_UID=999

FIRST_SYSTEM_GID=100
LAST_SYSTEM_GID=999

# FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of dynamically
# allocated user accounts/groups.
FIRST_UID=1000
LAST_UID=59999

FIRST_GID=1000
LAST_GID=59999

关于linux - 用于区分 linux 中的服务帐户和用户帐户的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50468599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com