chroot 環境に少し問題があります。助けていただければ幸いです :)
これが私の話です:
1 - ユーザー デモを作成し (ホームは のように/home/demo
)、次のようなスクリプトのおかげで彼を chroot しました/bin/chrootshell
。
#!/bin/bash
exec -c /usr/sbin/chroot /home/$USER /bin/bash --login -i
2 - このユーザーは通常のログイン認証が無効になっているため、このユーザーsu - demo
としてログインするには使用する必要があります
すべてがうまく機能します (すべての chroot システム コマンドや私の Java 構成など)。しかし、私がユーザーデモになるたびに、私の .bashrc または /etc/profile が供給されていないようです...そして、その理由はわかりません。
しかし、手動で bash を起動すると、次のように機能します。
root@test:~# su - demo
bash-4.1$ env
PWD=/
SHELL=/bin/chrootshell
SHLVL=1
_=/bin/env
bash-4.1$ bash
bash-4.1$ env
PWD=/
SHLVL=2
SHELL=/bin/chrootshell
PLOP=export variable test
_=/bin/env
ご覧のとおり、私の$PLOP
変数 (/.bashrc == /home/demo/.bashrc で記述) は 2 番目の bash で適切に設定されていますが、その理由はわかりません。
私の問題について手がかりがあれば、事前に感謝します:)
編集:私が実際に理解していないのはなぜSHELL=/bin/chrootshell
ですか? 私のchroot環境で、デモユーザーを/bin/bash
シェルで宣言します