这是我希望我的代码要做的总结:
if (group exists)
then
(add user to group)
else
(create group)
(add user to group)
fi
我正在使用Ubuntu虚拟机,但我在类似网站上找到的所有结果都不起作用。
答案 0 :(得分:44)
rups解决方案中的grep
语句存在一些缺陷:
E.g。如果有一个群组grepping
,则admin
群组true
可能会返回lpadmin
("群组存在")。
修复grep
- 查询
grep -q -E "^admin:" /etc/group
或使用
if [ $(getent group admin) ]; then
echo "group exists."
else
echo "group does not exist."
fi
答案 1 :(得分:15)
Grepping / etc / group有效,但只能在/etc/nsswitch.conf所拥有的机器上运行:
group: files
意味着在确定可用组时仅咨询/ etc / group。使用:
getent group <groupname>
对于更通用的解决方案,检查退出状态:0表示“存在”,非零表示“不存在”。例如,要检查组'postgres'是否存在,如果不存在则创建它(假设bash shell,作为能够创建新组的用户运行)运行:
/usr/bin/getent group postgres 2>&1 > /dev/null || /usr/sbin/groupadd postgres
答案 2 :(得分:9)
此脚本可以帮助您:
read -p "enter group name: " group
if grep -q $group /etc/group
then
echo "group exists"
else
echo "group does not exist"
fi
答案 3 :(得分:5)
我发现将andiba的解决方案组合成一个合适的函数更有用:
CREATE DATABASE bamazon
USE bamazon;
CREATE TABLE products
(
`id` int NOT NULL AUTO_INCREMENT,
`product_name` varchar(45) NOT NULL,
`department_name` varchar(45) NOT NULL,
`price` int NOT NULL,
`stock_quantity` int NOT NULL,
PRIMARY KEY (id),
);
}
这可以通过在function grpexists {
if [ $(getent group $1) ]; then
echo "group $1 exists."
else
echo "group $1 does not exist."
fi
中包含此函数来调用到您的环境中,这样您就可以使用以下符号检查组的存在:
/etc/bash.bashrc*
然后应返回以下之一:
组group_name存在。
或
group group_name不存在。
答案 4 :(得分:1)
这里有3个命令应该起作用:
group=sudo
grep -qw ^$group /etc/group || groupadd $group
usermod -aG $group $USER
或者之一,当您使用-f
/ --force
时(如果该组已经存在,则成功退出):
groupadd -f mygroup && usermod -aG mygroup $USER
答案 5 :(得分:1)
expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view
所以您可以简单地做:
$ groupadd --help
Usage: groupadd [options] GROUP
Options:
-f, --force exit successfully if the group already exists,
and cancel -g if the GID is already used
答案 6 :(得分:0)
极客的出色解决方案和指导,感谢您分享我的2美分,使我们的生活更简单或更懒惰:-)我可以用来补充一个useradd脚本,我必须一次添加几个用户。我想知道for里面的样子 循环访问多个组:group1,group2,group3 ... group6 然后用户将这样的内容添加到系统中吗?
for g in $( cat fewgroups.txt ); do
groupadd $g
echo "Group:" $g "Exist not added moving on"
else
echo "Group:" $g "added successfully!"
# Then create the users
for u in $( cat 100sofusers.txt ); do
useradd -m -g group1 -G group2,wheel -d /home/$u -c "Just anothe SiFiGeek" -s /bin/bash $u
echo "userID:" $u "added successfully!"
echo $u:$randompw | chpasswd
echo "Password for userID:" $u "changed successfully"
done