上記の質問は、次のように書き直すこともできます。what is the use of the sudo command?
man
Bash シェルのページにはsudo
次の説明があります。
sudo, sudoedit - execute a command as another user.
これは私には意味がありません。root
端末からインストールするにはユーザーになる必要はありませんか?コマンドsudo
の前に使用するとyum install
役に立ちますか?
答え1
すでにroot権限を持つシェルにいる場合は、使用しても意味がありませんsudo
。ただし、sudo
root でコマンドを実行できますいいえルートとしてログインします。
元su
の(ユーザー切り替え)コマンドを使用すると、他のユーザーとしてプログラムを実行できます。すべてまたは専務というアプローチが必要です。ユーザーのパスワードを知っている場合(またはすでにrootユーザーである場合)、必要なものは何でもできます。パスワードがわからないと何もできません。
新しいsudo
コマンドがよりスマートになりました。特定のコマンドのみを許可するように構成できます。必要に応じて構成することもできます。あなたの他のユーザーのパスワードではなくパスワードです(su
要求された場合)。 (実はこれがsudo
一般的な構成です。)
答え2
yum install [...]
それなしで動作する場合は、sudo
rootとして実行されています。この場合、sudo
使用の意味はありません。
あなたができることは、sudo
高い権限で別のことを実行することです。一般ユーザーアカウントからルートのパスワードではなく、通常のユーザーパスワードを使用してください。
常に一般ユーザーとしてシステムを使用し、sudo
より多くの権限で特定のコマンドを実行する必要がある場合は、真剣に考慮する必要があります。
答え3
sudo コマンドは setuid ビットを設定します。常にファイルを所有するユーザーの権限が付与されます。(あなたが何かを台無しにしない限り、それは常にルートです)。したがって、root権限がなくてもsudoはroot権限を取得します。 setuidを使用するすべてのプログラムは、脆弱性を防ぐために特に注意深く書かれています。
Sudoを読むSudoersファイルを使用して、選択したコマンドをrootとして実行できるかどうか、およびパスワードの入力を求めるかどうかを決定します。コマンドの実行が許可され、パスワードが正しい場合(必要な場合)、sudoにroot権限があるため、その子孫(yumやインストールスクリプトなど)もその権限を取得します。
これは、多数のユーザーがメインフレームを使用し、rootアクセス権を持つユーザーが信頼できる少数のユーザーが一般的で危険性の低いコマンドを実行できるようにするために数年前に特に重要でした。最近では、すべてのコマンドは通常sudoアクセスを許可します(少なくともホームデスクトップでは)。