ホームページ » の仕方 » UbuntuでSudoを微調整して設定する8つの方法

    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を使用してルートプロンプトにアクセスし、ログに記録されないコマンドを実行することもできます。ロギング機能は、システムコマンドのサブセットへのアクセスが制限されているユーザーアカウントと組み合わせると最も便利です。.