UbuntuでSudoを微調整して設定する8つの方法
Linux上のほとんどのものと同様に、sudoコマンドは非常に構成可能です。 sudoにパスワードを要求せずに特定のコマンドを実行させたり、特定のユーザーを承認されたコマンドだけに制限したり、sudoで実行したコマンドをログに記録したりすることができます。.
sudoコマンドの動作は、システム上の/ etc / sudoersファイルによって制御されます。このコマンドはvisudoコマンドを使用して編集する必要があります。このコマンドは、誤ってファイルを破壊しないように構文検査を実行します。.
Sudo権限を持つユーザーを指定します
Ubuntuのインストール中に作成したユーザーアカウントは管理者アカウントとしてマークされます。これはsudoを使用できることを意味します。インストール後に作成する追加のユーザーアカウントは、管理者アカウントまたは標準ユーザーアカウントのいずれかになります。標準ユーザーアカウントには、sudo権限はありません。.
Ubuntuのユーザーアカウントツールからユーザーアカウントの種類をグラフィカルに制御できます。開くには、パネルで自分のユーザー名をクリックして[ユーザーアカウント]を選択するか、ダッシュでユーザーアカウントを検索します。.
Sudoにパスワードを忘れさせる
デフォルトでは、sudoは入力後15分間パスワードを記憶します。 sudoで複数のコマンドをすばやく続けて実行するときに、パスワードを1回入力するだけで済みます。他の人に自分のコンピュータを使用させようとしていて、次に実行されるときにsudoにパスワードを要求させたい場合は、次のコマンドを実行すると、sudoはパスワードを忘れます。
sudo -k
常にパスワードを要求する
sudoを使用するたびにプロンプトが表示されるようにする場合(たとえば、他のユーザーが定期的にコンピュータにアクセスする場合など)は、パスワードを記憶する動作を完全に無効にすることができます。.
この設定は、他のsudo設定と同様に、/ etc / sudoersファイルに含まれています。端末でvisudoコマンドを実行して、ファイルを編集用に開きます。
スードヴィスド
その名前にもかかわらず、このコマンドのデフォルトは、Ubuntuの従来のviエディタではなく、新しいユーザフレンドリなnanoエディタです。.
ファイル内の他のDefaults行の下に次の行を追加します。
デフォルトtimestamp_timeout = 0
Ctrl + Oを押してファイルを保存し、次にCtrl + Xを押してNanoを閉じます。 Sudoは常にパスワードの入力を求めます.
パスワードタイムアウトを変更する
別のパスワードタイムアウト(30分などの長いものまたは5分などの短いもの)を設定するには、上記の手順に従いますが、timestamp_timeoutには異なる値を使用します。この数字は、sudoがパスワードを記憶する分数に対応しています。 5分間パスワードを忘れないようにするには、次の行を追加します。
デフォルトtimestamp_timeout = 5
パスワードを要求しない
sudoがパスワードを要求しないようにすることもできます - ログインしている限り、sudoをプレフィックスとするすべてのコマンドはroot権限で実行されます。これを行うには、sudoersファイルに次の行を追加します。ここで、usernameはあなたのユーザー名です。
ユーザー名ALL =(ALL)NOPASSWD:ALL
%sudo行、つまりsudoグループ内のすべてのユーザー(Administratorユーザーとも呼ばれる)がsudoを使用できるようにする行を変更して、すべてのAdministratorユーザーにパスワードを要求させないようにすることもできます。
%sudo ALL =(ALL:ALL)NOPASSWD:ALL
パスワードなしで特定のコマンドを実行する
sudoで実行したときにパスワードを要求しない特定のコマンドを指定することもできます。上記のNOPASSWDの後に「ALL」を使用する代わりに、コマンドの場所を指定してください。たとえば、次の行はあなたのユーザアカウントがパスワードなしでapt-getとshutdownコマンドを実行することを可能にします。.
ユーザー名ALL =(ALL)NOPASSWD:/ usr / bin / apt-get、/ sbin / shutdown
スクリプト内でsudoを使用して特定のコマンドを実行する場合、これは特に便利です。.
ユーザーに特定のコマンドのみの実行を許可する
特定のコマンドをブラックリストに登録して、ユーザーがsudoでそれらのコマンドを実行できないようにすることはできますが、これはあまり効果的ではありません。たとえば、ユーザーアカウントがsudoを使用してshutdownコマンドを実行できないように指定できます。しかし、そのユーザーアカウントはsudoを使用してcpコマンドを実行し、shutdownコマンドのコピーを作成し、そのコピーを使用してシステムをシャットダウンすることができます。.
より効果的な方法は、特定のコマンドをホワイトリストに登録することです。たとえば、標準ユーザーアカウントにapt-getおよびshutdownコマンドを使用する権限を与えることができますが、それ以上はできません。これを行うには、次の行を追加します。ここで、standarduserはユーザーのユーザー名です。
standarduser ALL = / usr / bin / apt-get、/ sbin / shutdown
次のコマンドは、ユーザーがsudoで実行できるコマンドを教えてくれます。
sudo -U standarduser -l
Sudoアクセスのログ記録
次の行を追加すると、すべてのsudoアクセスをログに記録できます。 / var / log / sudoは一例です。好きなログファイルの場所を使用できます.
デフォルトlogfile = / var / log / sudo
次のようなコマンドでログファイルの内容を表示します。
sudo cat / var / log / sudo
ユーザーが無制限のsudoアクセス権を持っている場合、そのユーザーはこのファイルの内容を削除または変更することができます。ユーザーは、sudoを使用してルートプロンプトにアクセスし、ログに記録されないコマンドを実行することもできます。ロギング機能は、システムコマンドのサブセットへのアクセスが制限されているユーザーアカウントと組み合わせると最も便利です。.