suコマンドを使用するときにパスワードを入力するには、rootが必要です。

suコマンドを使用するときにパスワードを入力するには、rootが必要です。

/etc/sudoersviaを編集しようとしていますが、visudoroot権限を変更する方法がわかりません。

を使用しようとするとルートになりたいですsu user1

答え1

実際には良い考えではありませんが、可能です。誰かが指摘したように、ルートがコンピュータの神になるのを防ぐことはできませんが、「su」プログラムを変更してパスワードを要求することはできます。これにより、root が独自の su バージョンをコンパイルして使用しない限り、別のアカウントに再ログインするのを防ぎます。

まず、suを再構築するにはコンパイラが必要です。ルートとして次を実行します。

apt-get install build-essential

その後、ダウンロードして準備してください。GNU Coreutils:

ftp://ftp.task.gda.pl/pub/gnu/coreutils/coreutils-8.13.tar.gz
tar xvf coreutils-8.20.tar.xz
cd coreutils-8.20
./configure

今訪問ソースコードディレクトリと検索su.c文書。 223行目には次のものがあります。

if (getuid () == 0 || !correct || correct[0] == '\0')

次に変更してください。

if (!correct || correct[0] == '\0')

今再びcoreutils-8.20ディレクトリを作成してmakeを実行します。コンパイルに時間がかかることがあります。完了したら、現在のsuバイナリを新しいsuバイナリで上書きします。

cp src/su `which su`

繰り返しますが、あなたは間違っています。

答え2

  1. ルートは何かをするためにパスワードを必要としません。ルートはユニバーサルユーザーです。ルート=スーパーユーザー=管理者=チャックノリス
  2. @Cry Havokが指摘したように、/ etc / sudoersはそれとは何の関係もありませんsusudo

注:su - <user>通常のユーザー(rootではないユーザー、または許可されていないユーザー)として実行すると、常にパスワードを求められます。

答え3

ルートは認証なしで任意のユーザーにすることができます。suパスワードの入力を求めるコマンドが設定されていても、ルートは他のプログラムを使用して低レベルのシステムコールを実行できます。このsuコマンドは通常、セキュリティには役に立たないため、パスワードを必要としないように構成され、多くの非対話型スクリプトでは、権限の低いユーザーで操作を実行するためにパスワードを使用します。

Ubuntu(そして他の多くの人が使うポリアクリルアミド)、su次の行を使用すると、rootとして実行したときにパスワードプロンプトが表示されません/etc/pam.d/su

auth       sufficient pam_rootok.so

sudosuまったく異なるプログラムです。su設定を変更して変更できない動作ですsudo

答え4

ルートはパスワードを求めるプロンプトを表示しません。その理由は/etc/pam.d/su

auth       sufficient pam_rootok.so

特定のユーザーを認証するためにrootを要求するには、この前にいくつかの行を追加する必要があると思います。

関連情報