Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas Proyectos Sobre

Script en bash para crear usuarios SFTP enjaulados

Read in English
Script en bash para crear usuarios SFTP enjaulados

Tabla de contenidos

En esta ocasión vamos a ver un pequeño script el cual permite la creación de usuarios enjaulados en SFTP:

javascript
#!/bin/bash
usage()
{
cat << EOF
USO: $0 -G grupo -u usuario  -f file system
Script para la creacion de usuarios enjaulados SFTP
OPCIONES:
-G      Grupo
-u      Usuario SFTP
-f      file system
ejemplo de uso: /usr/bin/createuser.sh -G sftp -u usersftp -f /home/usersftp
EOF
}
#Declaramos todas las variables que se van a usar para guardar los parametros
inputgroup=
inputusuario=
inputfs=
#Usamos el getopts para guardar los parametros en variables
while getopts «hH:G:u:f:» OPTION
do
case $OPTION in
h)
usage
exit 1
;;
G)
inputgroup=$OPTARG
;;
u)
inputusuario=$OPTARG
;;
f)
inputfs=$OPTARG
;;
esac
done
#Comprobamos que se han introducido los parametros obligatorios
if [ -z $inputgroup ] || [ -z $inputusuario ] || [ -z $inputfs ]
then
usage
exit 1
fi
function SSHconfig (){
if [ -f «/etc/ssh/sshd_config-bck» ]
then
#Comentamos lineas
sed -i ‘s/Subsystem/#&/’ /etc/ssh/sshd_config
#Agregamos configuracion
cat << EOF >> /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match user $inputusuario
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
KbdInteractiveAuthentication yes
EOF
else
#Si no existe el fichero de backup muestra un error y sale del script
echo «No se encontro el fichero de configuracion /etc/ssh/sshd_config-bck»
exit 1
fi
}
# Creamos el grupo
groupadd $inputgroup
#Creamos el usuario
useradd -g $inputgroup  -s /bin/false -d $inputfs $inputusuario
#Asignamos una contraseña al usuario
passwd $inputusuario
mkdir -p $inputfs/public
chmod 755 $inputfs
chown root:root $inputfs
chown $inputusuario:$inputgroup $inputfs/public
#Creamos backup del fichero de configuracion de SSH
cp /etc/ssh/sshd_config /etc/ssh/sshd_config-bck
#Realizamos la configuracion de SSH
SSHconfig
#Reiniciamos el servicio
service sshd restart
Un saludo
:wq!

Comentarios