Я хочу ограничить все команды для пользователя, кроме команды ssh.

Я хочу ограничить все команды для пользователя, кроме команды ssh.

Я пользователь root и не хочу, чтобы пользователи могли выполнять все команды linux, кроме ssh. Они должны использовать только команду ssh в своем пользователе. Как это сделать? пожалуйста, кто-нибудь, помогите.

решение1

Есть несколько разных подходов, которые вы можете использовать для достижения этого. Вот несколько вариантов:

Используйте встроенный ограниченный режим оболочки bash: вы можете запустить оболочку пользователя в ограниченном режиме, запустив bash -r или rbash. Это не позволит пользователю выполнять большинство команд, включая смену каталогов, установку переменных окружения и запуск команд с помощью /bin/sh. Однако пользователь по-прежнему сможет выполнять команды, встроенные в оболочку bash, такие как cd, echo и exit.

Используйте команду псевдонима оболочки bash: Вы можете использовать команду псевдонима для определения пользовательских команд, которые разрешено запускать пользователю. Например, вы можете создать псевдоним для ssh следующим образом:

alias ssh='/usr/bin/ssh'

Это позволит пользователю выполнить команду ssh, но он не сможет выполнить никакие другие команды.

Используйте встроенную команду оболочки bash: встроенная команда позволяет вам запускать команду так, как будто она запускается из командной строки, а не как функция или встроенная команда. Вы можете использовать это, чтобы разрешить пользователю запускать определенные команды, не давая ему запускать другие команды. Например:

command ssh

Это позволит пользователю выполнить команду ssh, но он не сможет выполнить никакие другие команды.

Используйте встроенную функцию enable оболочки bash: Встроенная функция enable позволяет вам включать или отключать определенные встроенные функции или команды оболочки. Вы можете использовать это, чтобы разрешить пользователю запускать определенные команды, не давая ему запускать другие команды. Например:

enable -n ssh

Это отключит команду ssh, и пользователь не сможет ее запустить.

Используйте команду экспорта оболочки bash: Вы можете использовать команду экспорта для установки переменных среды, которые пользователь не может изменять. Например:

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

Это позволит настроить переменную среды PATH пользователя так, чтобы она включала только каталоги /usr/bin и /usr/sbin, поэтому пользователь сможет выполнять только команды, расположенные в этих каталогах.

Используйте пользовательскую оболочку: вы можете создать пользовательскую оболочку, которая позволяет пользователю выполнять только определенные команды. Например, вы можете создать скрипт оболочки под названием ssh-only, который выглядит следующим образом:

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

Затем установите оболочку пользователя на /path/to/ssh-only с помощью команды chsh. Это позволит пользователю запустить команду ssh, но он не сможет запустить никакие другие команды.

Связанный контент