su
(代わりに)を使用してsu -
rootとしてログインしようとするたびに、.bash_profile
user1のホームディレクトリから起動されません。
デフォルトでは、私の/var/root
ディレクトリにはそのエントリがないので、テスト用に.bash_profile
コピーを入れました。.bash_profile
/var/root
su -
また、 .bash_profile
(からvar/root
)自動的にソースを提供しません。
.bash_profile
とにかく.dllを使用するときは、rootアカウントからuser1を自動的にインポートしたいと思いますsu
。
どうすればいいですか?
(以前は動作しました!ある日ソースが出てこなかったんです!もしかしたらbash設定がちょっと変わりましたか?source .bash_profile
ログイン後に入力すると動作しますね。
私はMacとOS X Yosemiteを使用しています。
ベストアンサー1
root
OS Xのデフォルトシェルはのバージョン/bin/sh
でもありますが、sh
bash
sh
Bashという名前で呼び出されたとき:
sh
POSIX 規格に準拠しながら、記録バージョンの開始動作をできるだけ似ているように模倣します。対話型ログインシェルまたはoptionsを含む非対話型シェルで呼び出された場合は、
--login
まず試してください。からコマンドを順番に/etc/profile
読み、実行します。~/.profile
... shで呼び出されたシェルは、他の起動ファイルからコマンドを読み取って実行しようとしません。
つまり.bash_profile
全く読まない。ログインシェルで呼び出されるかどうかに関係なく。.profile
代わりに使用するか、互いにシンボリックリンクすることもできます。起動ログインシェルを使用すると、起動時にロードされますがsu -l
ロードされません。.profile
.bash_profile
あなたもできます使用dscl
ルートシェルを変更します(注/etc/passwd
:いいえOS Xでシェルを決定するために使用されます)。を使用して、ルートの現在のシェルを確認できますdscl . -read /Users/root UserShell
。ドキュメントを参照して他のものに変更する前に慎重に考えてください。
su
別のアプローチは、すぐに実行されるように呼び出しを変更することですbash
。
あなたが言ったことを考えると、おそらくシンボリックリンクをお勧めしますが、Bashの変更を見たいと思うかもしれません。POSIXモード欲しいものを作成して決定します。