Bash

Con este script podremos crear usuarios para el servicio SFTP enjaulados.

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

 

Fuente: red-orbita

¿Quién está en línea?

Hay 470 invitados y ningún miembro en línea