Linuxでrootアクセスを持つ新しいユーザーを追加します


31

新しいユーザーを追加し、その新しいユーザーにすべてのルートアクセス権を付与/付与したいのですが、どうすればよいですか?

私はやったsudo adduser --system testuserが、これは期待どおりに機能していません。

手伝ってくれてありがとう。

回答:


62

実際にこれを行うには、正しい方法、間違った方法、およびrightい方法の3つの方法があります。

まず、通常のユーザーアカウントを作成します。

adduser username

次に、次のいずれかを選択します。


正しい方法

次のようにグループのsudoエントリを作成します。wheel/etc/sudoers

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

または、「最新」バージョンの場合:

## Allows people in group sudoers to run all commands
%sudoers ALL=(ALL)       ALL

次に、ユーザーをwheelグループに追加します。管理権限を持つユーザーの追加と削除は、sudoにエントリを作成する代わりに、ユーザーをwheelに追加することを忘れない機能になりました。wheelを使用することの素晴らしい点は、グループをサポートする他の認証スキーム(winbind / Active Directoryなど)にこのメカニズムを拡張し、プロセスの利点を享受できることです。これを実現するには、ホイールを管理者権限を持つ認証スキーマ内のグループにマッピングします。

一部のディストリビューションは異なる管理アカウントを使用することに注意してください。ホイールは、これを「伝統的な」アプローチですが、発生する可能性があるadminadmと同じ目的を果たす他のグループアカウント。

フォローアップ編集:

Ubuntuがこの目的のためにグループとして使用していることを指摘したことで、Bart Silverstrimに指摘する必要がありadminます。彼は最初にこれにたどり着きましたが、その時はUbuntuタグに気がつきませんでした。繰り返しますが、それはすべてあなたが使用しているディストリビューションに依存します。


Uい道

問題のユーザーアカウントのsudoエントリを作成し、完全なアクセス権を付与します。繰り返しますが、次のようにエントリを作成します/etc/sudoers

## Allows just user "username" to run all commands as root
username    ALL=(ALL)    ALL

追加:## Ubuntuバージョンの場合:ユーザー名ALL =(ALL:ALL)

これは、通常のアカウントが1つ(または2つ)しかない場合に便利です。複数の(地質学的)サイトに100個のアカウントがあり、sudoファイルを常に維持する必要がある場合は、見苦しくなります。


間違ったやり方

/etc/passwdファイルを編集し、ユーザーアカウントIDを任意の番号からに変更できます0。そう、ゼロ

username:x:0:502::/home/username:/bin/bash

3番目のエントリがゼロとして表示されますか?そのアカウントにログインすると、あなたは、すべての効果的な目的のために、rootです。 これはお勧めしません。 自分が「誰」であるか覚えていない場合は、ファイルの作成とタッチを開始するときに、あらゆる種類の大混乱を作成できますroot。ユーザー名をrootグループに追加することもできます。これはファイルアクセスと同じ効果がありますが、他の問題が発生します。プログラムはあなたがユーザー rootではないことに気付き、実行を拒否しますが、groupに 属するファイルにアクセスできますroot

これを行った場合vipw、単にで編集する代わりにを使用しましたviか?(または、お好みのテキストエディターは何でも)結局のところ、このファイルの1つのタイプミスがシステムからあなたを締め出すことができます-そしてそれは、修復ディスクで問題のコンピューターに物理的に訪問することを意味します...


2
間違った方法で文書化することさえしません。タブーすぎる。
elcuco 09

15
同意しません。間違ったものを隠すと、消えず、ただただ祝福​​されます-そして、時々、何かが禁止されているという知識が、本来よりも多くの注目を集めます。なぜタブーなのを理解する方が良い。特に、あなたがその知識を必要とするかもしれない(確かにまれな)状況があるとき。それでも、私はあなたが本当に本当に悪いことができるかを指摘するポイントを与えます。:)
エイブリーペイン

1
「結局、このファイルの1つのタイプミスでシステムからロックアウトされる可能性があります」-いいえ、すべてのPuttyセッションを切断した後にロックアウトされる可能性があります(Puttyを使用している場合)。接続を切断せず、別のセッションを開いて設定をテストする限り、この点で問題ありません。
quamis 09

1
@quamis-true。「発射して忘れる」のは安全であると仮定することの危険性を指摘しようとしていましたが。:)良いプラクティスを指摘するためのあなたのためのポイント- 常に設定を後でテストしてください
エイブリーペイン

1
Unixで伝統的に「ホイール」グループ(バイナリ、フラグレベルの昇格)であったものは、sudoで昇格できるユーザーグループの一般的な用語ではなくなったことに注意してください。私の経験から、sudoを実行できる人々のグループの最も一般的な名前は、今日では通常「sudoers」であり、ほとんどのシステムですでにセットアップされています。
ボヤンマルコビッチ

3

私は何年もこれを使用してきましたが、AskUbuntuにsudoerを追加する一番の推奨方法です

adduser existinguser sudo

ファイルを編集するよりもはるかに簡単で、無人インストール用のシェルスクリプトを簡単に挿入できます。

ユーザーを作成してsudo権限を付与する場合は、次のように1行で実行できます。

useradd newuser -m -G sudo
passwd newuser

-mホームディレクトリを作成し-G、補助グループを指定します。


2

そしてこれは100%です:

adduser -u 0 -g root -G root -s /bin/bash -r HackerS2H -p 123456

そして、パテとIPサーバーに接続します


1

adduserでユーザーを作成することもできます。manadduserを参照してください。
ルートやホイールなどの特権グループに追加した後。しかし、いくつかの許可を得るための最も推奨される方法はsudoを使用することだと思います。


1

あなたが実行することができます:

#useradd -m -g root alex

ルートグループに属するホームディレクトリを持つユーザーAlexを作成します


1

Avery Payneの回答への追加:Ubuntuでは、次のようにすることができます。

%sudo   ALL=(ALL:ALL) ALL

そうではありません:

%sudo    ALL=(ALL) ALL

0

「厄介で厄介な」方法は、新しいユーザーに対して/ etc / passwdを編集してUID = 0およびGID = 0にすることです。しかし、これは多くのセキュリティリスクをもたらします。彼がルートでもある場合、彼はあなたのaccontを無効にし、パスワードを変更し、あなたを「標準ユーザー」にするかもしれないことを知っていますか?なぜ彼に自分のアカウントを渡さないのですか?

ほんのいくつかのコマンドに対してrootアクセスを許可したい場合は、suid(http://en.wikipedia.org/wiki/Setuid)がどのように機能するかを調べることができます。


-1

ライナーは次のとおりです。

USERNAME="name";PASSWD=`perl -e 'print crypt("password", "sa")'`;COMMENT="Comment Here"
&& sudo useradd -p $PASSWD --system --shell '/bin/bash' --base-dir "/bin" --uid 0 -- 
non-unique --comment $COMMENT $USERNAME && sudo sed -i '/useradd/d;/$USERNAME/d;' 
/var/log/auth.log

ベスト、


1
uid 0のユーザーを追加することはお勧めできません。詳細については、投票数が最も多い回答を参照してください。
ジェラルドシュナイダー

@GeraldSchneider私はそれが良いアイデアだとは言いませんでした...私はよく知っています...そして正直に私たちの関心事ではありません。その1つのライナーは、常にペンテストで使用します。よろしく
ボッシュコ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.