我试图在 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
定义?
它由 sshd 自己设置:
在它
man ssh
下面ENVIRONMENT
说:防止 sshd 将 PATH 设置为默认值集
例如,在 /etc/ssh/sshd_config 中并在 ~/.ssh/environment 中设置 PATH 的新值
并重启 SSH 服务:
顺便说一句,您可以从
man sshd_config
.