如何解决从文本文件创建用户组时出错
我的脚本有问题:
#!/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
我不知道还能做什么来让它运行
最好的问候...
弗兰克
解决方法
我是这样解决的:
#!/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
archivogrupo="/tmp/grupos.txt"
archivousuario="/tmp/usuarios_flex.txt"
if [ $tipo = "usuario" ]; then
for linea in $(cat $archivousuario | tr " " _ | tr -d '\r')
do
nombre=`echo $linea|cut -d,-f1`
usuario=`echo $linea|cut -d,-f2`
grupo=`echo $linea|cut -d,-f3`
if [ $accion = "crear" ]; then
useradd $usuario -c $nombre -m -G $grupo
else
userdel $usuario -r -f
fi
done
echo "----- Usuarios procesados ----"
exit 0
elif [ $tipo = "grupo" ]; then
for grupo in $(cat $archivogrupo)
do
if [ $accion = "crear" ]; then
groupadd $grupo
else
groupdel $grupo
fi
done
exit 0
echo "----- Grupos procesados ----"
fi
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。