Quiero restringir todos los comandos para el usuario excepto el comando ssh.

Quiero restringir todos los comandos para el usuario excepto el comando ssh.

Soy un usuario root y no quiero que los usuarios puedan ejecutar todos los comandos de Linux excepto ssh. Sólo tienen que usar el comando ssh en su usuario. ¿Como hacer eso? por favor alguien ayude.

Respuesta1

Hay algunos enfoques diferentes que puede adoptar para lograrlo. Aquí hay algunas opciones:

Utilice el modo restringido integrado del shell bash: puede iniciar el shell de un usuario en modo restringido ejecutando bash -r o rbash. Esto evitará que el usuario ejecute la mayoría de los comandos, incluido cambiar directorios, configurar variables de entorno y ejecutar comandos con /bin/sh. Sin embargo, el usuario aún podrá ejecutar comandos integrados en el shell bash, como cd, echo y exit.

Utilice el comando alias del shell bash: puede utilizar el comando alias para definir comandos personalizados que el usuario puede ejecutar. Por ejemplo, podrías crear un alias para ssh como este:

alias ssh='/usr/bin/ssh'

Esto permitirá al usuario ejecutar el comando ssh, pero no podrá ejecutar ningún otro comando.

Utilice el comando integrado del shell bash: el comando integrado le permite ejecutar un comando como si se ejecutara desde la línea de comandos, en lugar de ejecutarlo como una función o integrado. Puede usar esto para permitir que el usuario ejecute comandos específicos y al mismo tiempo evitar que ejecute otros comandos. Por ejemplo:

command ssh

Esto permitirá al usuario ejecutar el comando ssh, pero no podrá ejecutar ningún otro comando.

Utilice la habilitación incorporada del shell bash: la habilitación incorporada le permite habilitar o deshabilitar comandos o comandos integrados de shell específicos. Puede usar esto para permitir que el usuario ejecute comandos específicos y al mismo tiempo evitar que ejecute otros comandos. Por ejemplo:

enable -n ssh

Esto deshabilitará el comando ssh, por lo que el usuario no podrá ejecutarlo.

Utilice el comando de exportación del shell bash: puede utilizar el comando de exportación para establecer variables de entorno que el usuario no puede cambiar. Por ejemplo:

export PATH=/usr/bin:/usr/sbin

Esto configurará la variable de entorno PATH del usuario para que solo incluya los directorios /usr/bin y /usr/sbin, por lo que solo podrá ejecutar comandos que se encuentren en esos directorios.

Utilice un shell personalizado: puede crear un shell personalizado que solo permita al usuario ejecutar comandos específicos. Por ejemplo, podría crear un script de shell llamado ssh-only que se vea así:

#!/bin/bash

# Check if the first argument is "ssh"
if [ "$1" == "ssh" ]; then
  # If it is, run the ssh command
  /usr/bin/ssh "$@"
else
  # If it's not, print an error message
  echo "Command not allowed"
fi

Luego, configure el shell del usuario en /path/to/ssh-only usando el comando chsh. Esto permitirá al usuario ejecutar el comando ssh, pero no podrá ejecutar ningún otro comando.

información relacionada