web-dev-qa-db-ja.com

通常のユーザーにrootパスワードを変更する権限を与える方法

理由は聞かないでください、でもできますか?

p/s:それは良いことではないことを私は知っています、コンピュータの知識がないトップマネジメントの誰かがサーバー上である種のcontrolを望んでいるとしましょう。

2
Amree

そうしないでください... rootのパスワードを与えるか、Sudo passwd rootを実行できます(これは、Sudoがユーザーのパスワードを使用するかパスワードを使用しないように設定されており、passwdがSudoが承認したコマンドであることを前提としています)そのユーザーによって実行されます)。

11
xenoterracide

Sudoは、カスタマイズされた権限を持つスイスアーミーナイフです。ユーザーに実行を依頼できます

Sudo /usr/bin/passwd root

これがどのように有効になるかを確認するために、sudoers(5)マンページの関連する例を次に示します。

pete           HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

The user pete is allowed to change anyone's password except for root on the 
HPPA machines.  Note that this assumes passwd(1) does not take multiple 
usernames on the command line.

もちろん、目的を達成するにはロジックを逆にする必要があります。したがって、visudoを実行し、次のような行を追加します。

user ALL = /usr/bin/passwd root

to /etc/sudoers

6
Hari

たぶん、この行をsudoerファイルに追加して(visudoを使用)、phuneheheをユーザー名に置き換えることができます。

phunehehe localhost = NOPASSWD: /usr/bin/passwd

それがあなたの「普通のユーザー」の状態を壊すかどうかはわかりませんが、その後は彼/彼女は非常に強力です。

編集:xenoterracideのコメントによると:)

3
phunehehe

Rootアカウントの所有者を信頼しない場合、そのrootユーザーがこの特別な権限を削除するのを防ぐ方法はおそらくありません。 rootユーザーを信頼する場合は、現在のパスワードを尋ねるだけです。

システムが pam_tcb(tcb-/etc/shadowの代替) を使用している場合(したがって、ユーザーごとにユーザーのパスワードファイルがあります)、ファイルのアクセス許可とグループを管理することで、目的を達成することもできます(たとえば、rootのパスワードファイルを所有するグループにこのユーザーを追加します)。

この場合、Sudo-ソリューションと比較して結果に主な違いは見られません(もちろん、Sudoを信頼する準備ができている場合)。そのユーザーに最高の特権を与えます。

しかし、他の場合には、pam_tcbは、柔軟性とセキュリティを強化します。まず、Sudopasswdを信頼しないでください。ユーザーが、不要な方法で特権を悪用することはありません。次に、特定の同様の構成を実現するためにユーザーに与える必要のある特権が少なくなります(setUID-rootプログラムはまったく必要ありません)-たとえば、同様の質問を参照してください: [別の]ユーザーのパスワードをリセットせずにルート

ランレベル1を使用してrootパスワードを変更することはできませんか?

私が心に留めているのは

  1. すべてのユーザーが起動時に実行レベルを変更できるわけではないように、grubパスワードを設定します。
  2. このパスワードは、将来rootパスワードを変更する必要がある可能性のある通常のユーザーに与えられます。
  3. これで、rootパスワードを変更する必要が生じた場合、起動時にgrubパラメーターを変更できます。 'a'を押し、grubパスワードを指定してから、1を指定すると、マシンが実行レベル1で起動します。
  4. 実行レベル1に入ると、彼はrootパスワードを変更できます。

この手順の明らかな欠点は、マシンを再起動する必要があり、実行レベル1にある間はオフラインになることです。

この手順で見つけた欠陥について言及してください。

3
Andrew-Dufresne

そのユーザーを信頼してrootパスワードを変更する権限を持っている場合は、最初に現在のrootパスワードをユーザーに与えるのが安全です。

1
mouviciel

そのユーザーがSudoアクセス権を持っている場合、Sudo passwdrootが作業を実行します。 Sudoアクセスがない場合は、パスワードの入力を再度求められます。パスワードがわかっていれば、作業を行うことができます。

0
monu