で新しいユーザーを作成しましたadduser
が、そのアカウントから sudo を実行しようとすると、 というエラーが表示されましたxxxx * is not in the sudoers file. This incident will be reported.
。
そこでコマンドをいじり始めましたvisudo
...
ルート アカウントには次の構成があることがわかります。
root ALL=(ALL:ALL) ALL
しかし、新しいユーザーに対してこれを複製したくありません...
sudoを使用する場合を除いて、ユーザーxxxxにルートアクセスを許可しないようにしたい
sudo を使用する場合、xxxx ユーザーに自身のパスワードではなく、root パスワードの入力を求めるようにしたいです。
THX
debian 10
VM を使用、ssh のみ
答え1
sudo を使用する場合を除いて、ユーザー xxxx に root アクセス権を与えないようにします。
sudo
これは、実際には一般ユーザーにとっての通常の状態です。許可するコマンドを指定するためのconfigure 以外は、何もする必要はありません。
root ALL=(ALL:ALL) ALL
この行は、すでに root ユーザーに切り替えられている場合に使用を許可するために存在しますsudo
。非 root ユーザーに権限を付与する重要な行は次の行です。
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
(一部の Linux ディストリビューションでは、OS のインストール中に生成された最初の通常ユーザーがグループのメンバーになりsudo
、自動的にルート アクセスが有効になる場合があります。これは例外であり、すべてのユーザーのデフォルトではありません。)
sudoersファイルにおける権限指定の基本形式は
<who> <where>=(<as_who>) <what>
<who>
このエントリを使用できるユーザーを指定します。ユーザー、グループ (先頭に % 記号が付く)、または以前に定義された User_Alias (基本的にはユーザーやグループの長いリストの省略形) などを指定できます。<where>
ホスト名にすることもできます。これにより、このエントリが特定のシステムに制限されます。これは、集中管理された標準sudoers
ファイルをすべてのホストに適用するエンタープライズ環境では役立つ場合がありますが、ホスト名の解決が機能していない場合やシステムの構成が間違っている場合に問題を回避するために、多くの場合、これは ALL として指定されます。(<as_who>)
コマンドを実行できるユーザー アカウントを定義します。デフォルトは root ですが、たとえば、特定の非 root アプリケーション アカウントでのみ sudo を使用してコマンドを実行できるようにユーザーを制限することもできます。<what>
許可するコマンド(またはカンマで区切られた複数のコマンド)です。
sudoers
他にも様々なタグやオプションがありますが、簡単に言うと上記がファイルの重要な部分です。
sudoを使用する場合、xxxxユーザーには自分のパスワードではなくルートパスワードの入力を求めたい
これは可能ですし、非常に簡単です。sudoers
ファイルに次の行を追加します。
Defaults:xxxx rootpw,timestamp_timeout=0
xxxx ALL=(ALL:ALL) ALL
次にユーザーxxxx
(およびのみそれらの場合、sudo
コマンドはルートパスワードを要求し、毎回デフォルトの動作では、パスワードを再度要求せずにコマンドsudo
を使用できる時間が最大 15 分まで許可されますが、代わりにコマンドが使用されます。sudo
これは、ユーザーを監視し、ユーザーが必要とするときに自分でルート パスワードを入力する予定がある場合に重要です。このtimestamp_timeout=0
オプションを忘れると、ユーザーは最初に何らかの正当なアクションのためにルート パスワードの入力を求め、その後 15 分以内に何らかの気をそらすようなことをして、その間に好きなように使用できるようになりますsudo
。
しかし、ユーザーにルートパスワードを伝えれば、そのパスワードをsu
コマンドでも使用できるようになります。ただし、 にデフォルト以外の制限を適用した場合は除きますsu
。制限する典型的な (そして通常は唯一の) 方法は、ユーザーが特定のグループのメンバーになることを要求することです。そうしないと、ユーザーは をまったくsu
使用できなくなります。この制限を適用するには、編集して、先頭近くにある次の部分を見つけます。su
/etc/pam.d/su
# Uncomment this to force users to be a member of group root
# before they can use `su'. You can also add "group=foo"
# to the end of this line if you want to use a group other
# than the default "root" (but this may have side effect of
# denying "root" user, unless she's a member of "foo" or explicitly
# permitted earlier by e.g. "sufficient pam_rootok.so").
# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
# auth required pam_wheel.so
#
最後の行の先頭から を削除するだけで、su
コマンドはグループのメンバーroot
だけが使用できるようになります。