перезапись стандартного $PATH

Я пытаюсь заблокировать обычных пользователей на установке Raspbian. Для этого я буду использовать rbash.

Я хочу изменить файл PATH так, чтобы можно было запускать только файлы ~/bin.

Я удалил $PATH из /etc/profile/:

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH=""
fi
export PATH

Я удалил $PATH из /etc/login.defs:

# cat /etc/login.defs | grep PATH=
ENV_SUPATH      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH        PATH=""

Файл /etc/environment пуст:

~ # cat /etc/environment
~ #

Файл локального пользователя . profile файл содержит только следующее:

$ cat .profile
# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin"
fi

Это прекрасно работает при выполнении ssh user@host:

$ free
-rbash: free: command not found
$ uname
-rbash: uname: command not found
$ echo $PATH
/home/user/bin

Однако при выполнении ssh -t user@host bash --noprofile .profile не выполняется, и я по-прежнему получаю доступ к полностью рабочему $PATH:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games
$ uname
Linux

Что я здесь упускаю? Где еще определен файл $PATH?

1
задан 26 February 2021 в 13:07
1 ответ

Он устанавливается самим sshd:

$ strings /usr/sbin/sshd | grep games
/usr/local/bin:/usr/bin:/bin:/usr/games

В man ssh в разделе ENVIRONMENT говорится:

 ssh will normally set the following environment variables:
 (...)
 PATH                  Set to the default PATH, as specified when compiling ssh.

Чтобы предотвратить установку PATH для sshd в значение по умолчанию, установите

PermitUserEnvironment yes

в /etc/ssh/sshd_config и задайте новое значение PATH в ~/.ssh/environment, например

PATH=~/bin

И перезапустить службу SSH:

sudo service ssh restart

BTW, вы можете получить всю эту информацию из man sshd_config.

2
ответ дан 24 April 2021 в 00:39

Теги

Похожие вопросы