【发布时间】:2021-04-26 06:21:44
【问题描述】:
我的脚本有问题:
#!/bin/bash
# El argumento tipo corresponde a usuario o grupo.
# El argumento accion corresponde a crear o eliminar cualquiera de los anteriores.
tipo=$1
accion=$2
if [ $tipo = "usuario" ]; then
while IFS=, read -r nombre usuario grupo
do
if [ $accion = "crear" ]; then
useradd "$usuario" -c "$nombre" -m -G "$grupo"
else
sudo userdel "$usuario" -r -f
fi
done < /tmp/usuarios_fles.txt
echo "----- Usuarios procesados ----"
exit 0
else
while IFS= read -r grupo
do
if [ $accion = "crear" ]; then
groupadd "$grupo"
else
groupdel "$grupo" -f
fi
done < /tmp/grupos_fles.txt
exit 0
echo "----- Grupos procesados ----"
fi
文件:
/tmp/groups_fles.txt
它只包含这些文本字符串:
adminuser
readwriteuser
readuser
它在 Suse 11.3 上给我以下错误,我在 Fedora 33 上测试它并没有显示错误:
'.oupadd: Invalid group name `adminuser
'.oupadd: Invalid group name `readwriteuser
'.oupadd: Invalid group name `readuser
我不知道还有什么办法让它运行
最好的问候...
弗兰克
【问题讨论】:
-
openSUSE 11.3????那是一个11岁和9年过时的版本??但是,我怀疑您的问题是由于组已经存在。使用
groupadd -f "$grupo"(并解释为什么不需要sudo?)也就是说,您的问题是“我如何使用groupadd?”在Super User 或Unix & Linux 上询问哪个更好。您可能会在正确的 StackExchange 网站上获得更多回复。 -
(我认识 11.3,因为我从 SuSE 7.0 开始使用 SuSE/openSUSE -- 以及 Archlinux 和 Debian...)
-
sudo 用于测试,但细节是创建组时,未创建组,脚本尝试创建它们并给出错误,为什么它在 Fedora 中有效?我在 Suse 中而不是在 OpenSuse 中运行它。
-
请参阅Stack Overflow 'bash' Info page 的“在询问有问题的代码之前”部分。特别是,检查您的脚本或数据是否具有 DOS 样式的行尾字符。一定要检查
/tmp/grupos_fles.txt。