Гостевой доступ в FreeBSD
Я тут подумал и решил что будет прикольной идеей сделать мини страничку через ssh.
Однако ssh по умолчанию пускает либо по паролю либо по ключу и нужно как-то сделать чтобы он не требовал ни того ни другого.
Что нам для этого нужно сделать:
Создать пользователя без пароля(в моем случае его имя guest):
Код:
adduser -w none
Заранее создать пустой файл чтобы при входе через ssh не отображалось сообщение дня от FreeBSD:
Код:
touch /home/guest/.hushlogin
Создаём скрипт который будет исполняться при входе ибо давать доступ к sh небезопасно:
Код:
# touch /home/guest/shell.sh
# chmod +x /home/guest/shell.sh
# chsh -s /home/guest/shell.sh guest
Я решил туда просто написать мини Шелл:
Код:
#!/bin/sh
echo Welcome to Test Shell. Enter help to list commands
while true
do
read -p '# ' res
if [[ $res == "help" ]]
then
echo "Commands: help, exit"
elif [[ $res == "exit" ]]
then
exit 0
else
echo "$res: command not found"
fi
done
Теперь нам нужно как-то пускать в этот пользователя без пароля ибо при создании мы его не задали:
Добавляем в /etc/ssh/sshd следующие строки:
Код:
Match User guest
    AllowTCPForwarding no # запрещаем проброс портов
    PermitEmptyPasswords yes # разрешаем пустой пароль
Теперь нам нужно отредактировать Pam конфиг /etc/pam.d/sshd и найти там строку с pam_unix.so
Добавляем там в конце nullok и сохраняем
Теперь при входе через пользователя guest у нас не будет требовать пароль и будет выполняться скрипт shell.sh
Ответ
(26.12.2022 16:Dec)Zhbert Написал: Какая огромная дыра! Smile

Настолько огромная что мне пришлось перезагружать хост 2 раза
Рекомендую не использовать мой скрипт и выставить ограничение по сессиям
Ответ