/etc/profile、~/.bashrc、およびその他の構成ファイルはユーザーには提供されず、ルートにのみ提供されます。

/etc/profile、~/.bashrc、およびその他の構成ファイルはユーザーには提供されず、ルートにのみ提供されます。

サーバーをDebian 8から9にアップグレードした後、bashで奇妙な動作が発生しました。 SSH経由でログインすると、設定ファイルはロードされず、次のメッセージが表示されます。

Linux myserver 4.9.0-7-amd64 #1 SMP Debian 4.9.110-1 (2018-07-05) x86_64
Last login: Mon Jul 16 22:37:12 2018 from x.x.x.x
-bash-4.4$

return -bashを実行しますecho $0。呼び出された時点を確認するために、/etc/profile、~/.bashrcに1行を入れましecho "sourcing ..."たが、その行はまったく表示されません。ただし、ファイルを手動でインポートするとテキストが表示され、ファイルは正常にインポートされます。

使用追跡(ここで発見)どのファイルが開いているかを確認するには、すべてのプロファイルが開いていることを確認できます。 echo exit | strace bash -li |& less | grep '^open'

次の結果が表示されます。

...
open("/etc/profile", O_RDONLY)          = 3
open("/etc/bash.bashrc", O_RDONLY)      = 3
open("/etc/profile.d/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/etc/profile.d/bash_completion.sh", O_RDONLY) = 3
...
open("/home/myuser/.bash_profile", O_RDONLY) = 3
open("/home/myuser/.bash_history", O_RDONLY) = 3
open("/home/myuser/.bash_history", O_RDONLY) = 3
...
open("/home/myuser/.bash_logout", O_RDONLY) = 3
open("/etc/bash.bash_logout", O_RDONLY) = -1 ENOENT (No such file or directory)
...

この問題は、一般ユーザーとしてログインした場合にのみ発生します。 rootに設定すると、設定ファイルが正常にロードされます。今はルートだけがこのファイルにアクセスできると思います。しかし、私が確認したすべてがそうする必要があるので、私自身が狂っています。

どんなヒントやアイデアにも感謝します。

ベストアンサー1

権限に関連すると疑われる解決策が見つかりました。とにかくsetgidビットは/ bin / bashに設定されています。

左側のシステムは問題のあるシステム、右側は機能するシステムです。 解決策

問題を解決するために、次のコマンドを実行しました。

   sudo chmod g-s /bin/bash

おすすめ記事