En esta ocasión vamos a ver un pequeño script el cual permite la creación de usuarios enjaulados en SFTP:
#!/bin/bashusage(){cat << EOFUSO: $0 -G grupo -u usuario -f file systemScript para la creacion de usuarios enjaulados SFTPOPCIONES:-G Grupo-u Usuario SFTP-f file systemejemplo de uso: /usr/bin/createuser.sh -G sftp -u usersftp -f /home/usersftpEOF}#Declaramos todas las variables que se van a usar para guardar los parametrosinputgroup=inputusuario=inputfs=#Usamos el getopts para guardar los parametros en variableswhile getopts «hH:G:u:f:» OPTIONdocase $OPTION inh)usageexit 1;;G)inputgroup=$OPTARG;;u)inputusuario=$OPTARG;;f)inputfs=$OPTARG;;esacdone#Comprobamos que se han introducido los parametros obligatoriosif [ -z $inputgroup ] || [ -z $inputusuario ] || [ -z $inputfs ]thenusageexit 1fifunction SSHconfig (){if [ -f «/etc/ssh/sshd_config-bck» ]then#Comentamos lineassed -i ‘s/Subsystem/#&/’ /etc/ssh/sshd_config#Agregamos configuracioncat << EOF >> /etc/ssh/sshd_configSubsystem sftp internal-sftpMatch user $inputusuarioChrootDirectory %hX11Forwarding noAllowTcpForwarding noForceCommand internal-sftpKbdInteractiveAuthentication yesEOFelse#Si no existe el fichero de backup muestra un error y sale del scriptecho «No se encontro el fichero de configuracion /etc/ssh/sshd_config-bck»exit 1fi}# Creamos el grupogroupadd $inputgroup#Creamos el usuariouseradd -g $inputgroup -s /bin/false -d $inputfs $inputusuario#Asignamos una contraseña al usuariopasswd $inputusuariomkdir -p $inputfs/publicchmod 755 $inputfschown root:root $inputfschown $inputusuario:$inputgroup $inputfs/public#Creamos backup del fichero de configuracion de SSHcp /etc/ssh/sshd_config /etc/ssh/sshd_config-bck#Realizamos la configuracion de SSHSSHconfig#Reiniciamos el servicioservice sshd restart
Un saludo
:wq!
Una respuesta a “Script en bash para crear usuarios SFTP enjaulados”