bashにrootとして次のコマンドを入力すると、su -s /bin/bash
エラーは発生しません。
と入力するとsu -s /bin/bash -m [MyUserName]
エラーが発生します。Permission denied.
私が知る限り、これは文書化に関連しています/etc/bashrc
。
読みました:/etc
許可があります、許可が754
あります/etc/bashrc
544
ファイルの実行を許可する権限を変更するコマンドがたくさんあります。 Q:実行権限が必要ですか?なぜ?それともこの問題を解決する他の方法はありますか?
編集する
一部はより多くの情報を要求しました。だから彼らは:
このコマンドはコマンドsu -s /bin/bash -m [MyUserName]
全体から抽出されたものですsu -s /bin/bash -m [MyUserName] /some/path/tomcat/bin/startup.sh -[some] [args]
。
最初はこれがTomcatと関係があると思いましたが、su -s /bin/bash -m [MyUserName]
Tomcat部分なしで入力できる場合、問題はTomcat部分ではありません。私が知る限り、コマンド全体は特別なユーザーとしてコマンドを実行するために使用されます。
答え1
問題はあなたの権限です/etc
。これらはなければならず755
、そうではありません754
。
完全なエラーテキストは次のとおりです。
su -s /bin/bash -m roaima
Password: _
bash: /etc/bash.bashrc: Permission denied
I have no name!
これは、システムが/etc/passwd
ホームディレクトリ、フルネームなどの詳細を読み取ることが困難であることを示しています。
権限を変更する/etc
と、問題は自然に解決されます。
答え2
マニュアルページの使用:
-m, -p, --preserve-environment
Preserves the whole environment, ie does not set HOME, SHELL,
USER nor LOGNAME.
したがって、rootとして 'su -m'を実行すると、bashは〜/ .bashrcを読み込み、保存された環境のために/ root / .bashrcに拡張され、ユーザー権限がありません。 /etcおよび/etc/bashrc権限も間違っています。 /etcの権限は755で、/etc/bashrcの権限は644でなければなりません。