首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查一个组是否存在,并在Linux脚本中添加它是否不存在

如何检查一个组是否存在,并在Linux脚本中添加它是否不存在
EN

Stack Overflow用户
提问于 2015-03-16 09:19:51
回答 8查看 93.5K关注 0票数 61

以下是我希望我的代码所做的工作的总结:

代码语言:javascript
运行
复制
if (group exists)
then

  (add user to group)

else

  (create group)

  (add user to group)

fi

我正在使用Ubuntu虚拟机,但我在类似站点上发现的所有结果都不起作用。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-03-16 09:36:55

此脚本可能会帮助您:

代码语言:javascript
运行
复制
   read -p "enter group name: " group
   if grep -q $group /etc/group
    then
         echo "group exists"
    else
         echo "group does not exist"
    fi
票数 25
EN

Stack Overflow用户

发布于 2016-03-21 12:36:38

grep语句在rups解决方案中存在一些缺陷:

例如,组grepping admin在存在组lpadmin时可以返回true (“组存在”)。

要么修复grep-query

代码语言:javascript
运行
复制
grep -q -E "^admin:" /etc/group

或使用

代码语言:javascript
运行
复制
if [ $(getent group admin) ]; then
  echo "group exists."
else
  echo "group does not exist."
fi
票数 94
EN

Stack Overflow用户

发布于 2017-09-04 15:46:53

Grepping /etc/group工作,但仅在/etc/nsswitch.conf具有:

代码语言:javascript
运行
复制
group: files

这意味着在确定可用组时只会咨询/etc/group。使用其中任何一种(按名称或按gid):

代码语言:javascript
运行
复制
getent group <groupname>
getent group <groupid>

对于更一般的解决方案,检查退出状态:0表示“存在”,非零表示“不存在”。例如,要检查组'postgres‘是否存在,如果不存在,则创建它(假设bash shell,以能够创建新组的用户身份运行)运行:

代码语言:javascript
运行
复制
/usr/bin/getent group postgres 2>&1 > /dev/null || /usr/sbin/groupadd postgres
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29073210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档