su としてログインしていない場合はバイナリファイルを実行できません

su としてログインしていない場合はバイナリファイルを実行できません

私は Linux をいじっていて、ターミナルの使用から始めています。ファイルシステムのルートにフォルダーを作成しようとしていますが、通常のユーザーにはその権限がありません。

実行時にsu root mkdir u01資格情報の入力を求められますが、ターミナルから「バイナリファイルを実行できません」というエラーが返されます。

を実行しsu rootてから を実行するとmkdir u01、コマンドは正常に動作します。

何か案は?

私はOracle Linux 6.5を使用しています

答え1

問題は への電話ですsu

別のユーザーとしてコマンドを実行するための正しい構文は次のとおりです。

su [username] -c "[command]"

コマンドを引用符で囲むことに注意してください。コマンドの他の引数が適切に実行されるようにすることが重要です。

答え2

全体的に、「通常の」ユーザーには、ファイルシステムのルートにファイルやフォルダを作成することを許可すべきではありません。これを許可すると、あらゆる種類のセキュリティ上の問題が発生します。

「su root mkdir u01」を実行すると、システムはルート パスワードを要求します。おそらく実行すべきなのは「sudo mkdir u01」で、通常のユーザー パスワードを要求します。これは、sudo がこれを許可するように適切に構成されていることを前提としていることに注意してください。

答え3

適切に設定されている場合sudo、そのディレクトリを作成する適切な方法は次のとおりです。

sudo mkdir u01

何らかの理由で sudo が機能しない場合 (またはインストールされていない場合 - 可能性は低いですが、可能性はあります)、次のようにsuコマンド パラメータを使用できます。-c

su -c "mkdir u01"

(コマンドは、 に適切に渡すために引用符で囲む必要があることに注意してくださいsu)。

sudovsの使用の重要な違いsu: パスワードを要求されたとき、sudoではユーザー アカウントのパスワードが必要ですが、 ではsuroot アカウントのパスワードが必要です。多くの Linux ディストリビューション (特に Ubuntu/Debian ファミリ) では、root アカウントのパスワードが割り当てられることすらなく、su失敗する可能性があります (事前に root アカウントにパスワードを割り当てていない限り)。

関連情報