从文本文件创建用户组错误



我有一个脚本问题:

#!/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

最新更新