非ログインユーザーを作成するにはどうすればよいですか?


134

subversionRHEL 5システムで呼び出されるユーザーとグループを作成したいと思います。私はマニュアルページを見て、useraddコマンドは...

useradd subversion

ただし、ホームディレクトリの作成を回避する方法がわかりません。また、システムにログインできるユーザーにはなりたくない。

主な目的は、SVNリポジトリの所有者を提供することです。


useraddのマニュアルページを実際に見て、-Mが見つかりませんでした(HOMEディレクトリを作成しないでください)。
-inemanja

回答:


76

-Mスイッチを使用して(大文字であることを確認して)ホームディレクトリが作成されないようにすることができます。

useradd -M subversion

次に、アカウントをロックしてログインを防止します。

usermod -L subversion

59
これは特に強力な答えではありません。この方法で作成されたユーザーはまだシェルを持っています。そして、あなたはOPにこれが事実であると警告しさえしませんでした。遡及それは次のようになりますusermod -s /bin/false subversionかと、--shell /bin/falseuseradd
リーHambley

7
@beakアカウントはロックされていますが、シェルを持つことは重要なポイントです。
ジョンT

15
@beakは実際にはロックされたアカウントにsuできるのはrootユーザーだけですが、その人がすでにrootアクセスを取得しているのに気にするのはなぜですか?また、ユーザーが実行su -s /bin/bash usernameしてバイパスできる場合、シェルの設定はあまり効果がありません。
ジョンT

11
議論に時間を割いてくれてありがとう、もちろん正しい。しかし、シェルを定義した非ログインユーザーを見るのは苦痛で、怠asだと感じます。誰かがシステムに不慣れな場合、意図しない何かを誤って実行できないのは素晴らしいことです。ハッカーは別の種類であり、マシンに既にシェルが搭載されている場合、基本的にゲームオーバーだと思います
リー・ハンブリー

11
これらのコメントは、私が学びたいと思っていたことを正確にカバーしていました。ありがとう@Beaks && John T
リクシウス

220

useradd -r subversion

あたりman useradd

-r, --system create a system account

-rフラグは、システムユーザーを作成します。パスワード、ホームディレクトリがなく、ログインできません。


1
このコマンドは、同じユーザーと呼ばれるグループを作成します。したがって、「subversion」ユーザーは「subversion」グループに属します。後で「sudo chown -R subversion:subversion / path / to / folder」を実行したい場合に
最適-s3v1

49
-rだけでも、ログインできます。ユーザーシェルを無効にするには、-s / bin / falseが必要です。
c4il

8
@ c4ilしかし、それらにログインできるのはルートだけですよね?つまり、彼らはパスワードを持っていないので、rootのみがそれらにログインできると期待しています。
カミロマーティン14

とにかくそれらにパスワードを割り当てることができます、私は試してみましたpasswd subversion
Shayan

@rynopマシンのユーザーがシステムユーザーであるかどうかを確認するにはどうすればよいですか?方法はありますか?初心者向けのsudo'ersグループには属さないと思います。
Shayan

22

を使用して、システムユーザーを作成する別のソリューションadduser :

adduser --system --no-create-home --group yourusername

--groupグループyourusernameが必要ない場合、および--no-create-homeこのユーザーのホームが必要な場合は削除できます。

py4onのコメントで述べたように、一部のシステムでは--disabled-login、このユーザーのログインを無効にするためにオプションを使用する必要があります。ただし、Debianでのデフォルトの動作のようです。

ユーザーの数値IDはシステムアカウントのものであることに注意してください。--uidただし、オプションを使用してuidを修正できます。

最後に、一部のシステム(Fedoraなど)adduserでは、へのシンボリックリンクであることに注意してくださいuseradd。この場合、この回答は無効です。


3
「ログインできるユーザーになりたくない」に対処するには、フラグ--disabled-loginも追加します(前yourusername
-toxefa

@ py4on:このオプションはマンページに記載されていますが、少なくともDebianではデフォルトのようです。
スキッピールグラングロウ

15

元の質問に対する最も明確な答えは、次のコマンドを実行することです。

adduser subversion --shell=/bin/false

また、ホームディレクトリも必要ない場合:

adduser subversion --shell=/bin/false --no-create-home

または、さらにロックされたシステムユーザーが必要な場合(通常、これはホームディレクトリを作成しません-以下のコメントに従って、Linuxミントにホームディレクトリを作成することが報告されています)

adduser subversion --system --group

これらのコマンドはすべて、ユーザーと同じ名前のグループを作成します


ミントの最後のコマンドは、間違いなくホームディレクトリを作成しますCreating home directory '/home/nodejs' ...
jcollum

11

これを行う最も安全な形式は、次のように使用するadduserことです。

$ adduser -r -s /bin/nologin subversion

注:-s /sbin/nologinアカウントでログインシェルを使用できないようにするには、必ず含めてください。

セットアップの確認

$ grep subversion /etc/passwd /etc/shadow
/etc/passwd:subversion:x:496:496::/home/subversion:/bin/nologin
/etc/shadow:subversion:!!:17232::::::

ただし、ディレクトリはありません。

$ ll /home | grep subversion
$

アカウントが他の方法で使用可能であることを確認します。

$ sudo -u subversion whoami
subversion

$ sudo -u subversion date
Tue Mar  7 08:58:57 EST 2017

除去

このアカウントを削除する必要がある場合:

$ userdel subversion -r
userdel: subversion mail spool (/var/spool/mail/subversion) not found
userdel: subversion home directory (/home/subversion) not found
$

そして確認:

$ grep rtim-hc-user /etc/passwd /etc/shadow
$

1
adduserは-rオプションを認識しません。useraddを意味したと思います。
felwithe

@felwitheいいえ、私が書くすべての答えは投稿する前に常にテストします。私がチェックすると、そのスイッチはCentOS 6.xシステムで表示されます。
slm

これが結果のペーストビンです。Ubuntu 16 LTSを使用しています。どのバージョンのadduserがインストールされているのかわかりませんが、時間の経過やシステムによって大きく変わるとは思いませんでした。次に、代わりに--systemフラグを使用して試してみました。これにより、ユーザーのhomedirが作成されました(必要ありません)。最後に、adduserの代わりにuseraddでそれをやっただけで、計画どおりに機能しました。そのため、useraddと想定されていたときに、adduserと誤って入力したと想定しました。
-felwithe

@felwitheええ、私はあなたを疑っていませんでした。私はUnixとLinuxのサイトのmodであり、これらのコマンドは有名な異なるb / wディストリビューションです。OPは質問でRHELに言及しているので、なぜそう答えたのでしょうか?
slm

1

CentOS 7マシン上

  • ユーザーが存在しない場合:
    useradd testuser --shell=/sbin/nologin

  • 既存のユーザーを変更する場合:
    usermod testuser --shell=/sbin/nologin


0

以下を実行して、最大8文字のユーザーの暗号化されたパスワードを生成することから始めます。

openssl passwd -crypt new_password_less_than_eight_chars_long

それから:

useradd -m -g groupname -G otherGroupsSeperatedByComma -p encryptedPassword username

0

Debianでは、システムユーザー(ホームディレクトリなし)とログインシェルを作成できます。

useradd --system --shell=/usr/sbin/nologin <username>

nologinプログラムがにある場合は、/sbin/nologinそれに応じて変更してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.