パスワードなしでユーザーを作成するにはどうすればよいですか?


22

OS Xでは、パスワードなしでユーザーを持つことが可能です。dsclパスワードでそれらを検査すると、として表示され*ます。これはmysqlpgsqlなどのデータベースのユーザーなどのシステムユーザーに使用されます。これの良い点は、これらのユーザーがログイン画面に表示されず、sudoetc なしではログインできないことです。

いくつかのことを試してそのようなユーザーを削除した後、再作成したかったのですができませんでした。空白のパスワードでユーザーを取得することができ、パスワードをに設定できました*。ただし、ユーザーがログイン画面に表示されたため、上記と同じ効果はありませんでした。

そのようなユーザーをどのように作成しますか?


Linuxでは、-disabled-passwordフラグをadduserに渡します。OS Xのコマンドラインのレパートリーには似たようなものがあるのでしょうか?
BR

もしかして; ユーザーはパスワードなしでログインできますか、パスワードが設定されていないためログインできませんか?
クリス黄リーバー

1
あなたが答えを受け入れなかったことに気づきました...さまざまなxdmリストにとどまるための1つの要件は、ユーザーIDが非常に低いことです。多くのシステムuseraddでは1000でIDの追加が開始され、ログインマネージャーはその下にユーザーIDを表示しませんが、上記のすべてを表示します。したがって、これはこの質問に対する答えではありませんが、問題の解決策かもしれません。1000は任意であり、ディストリビューションでこれより低い場合も高い場合もあります。修正するには、ユーザーエントリを変更/etc/passwdして、uidを低くします。今、私は同様の質問をしに行きます。
-xenoterracide

@xenoterracide:ユーザーを再作成したときに古いIDを与えました。削除したpgsqlユーザーはmysqlのIDよりも1つ大きいIDであるため、この場合は何の影響もありませんでした。 、とにかく情報をありがとう。
googletorp

回答:


6

passwd --delete <username>ユーザーを作成した後に実行できますadduser。この後、パスワードを入力せずにログインできるようになります。


4
ここで求められていることとは正反対だと思います。
シャドゥール

最初は、「システムユーザー」について言及し、「ログイン画面」には表示されないOPの質問を読み直すまで、これが正しい(または最良の)答えだと思いました。このメソッドはログイン画面に表示され、このメソッドを使用して「sudo」できます。
HidekiAI

3

/ dev / nullのホームディレクトリと/ sbin / nologinのシェルを持つ/ etc / passwdのユーザーは、コマンドのsudoに使用できますが、たとえば実際にはログインできません。

私の/ etc / passwdから

tcpdump:x:104:441:added by portage for tcpdump:/dev/null:/sbin/nologin

これによりXDMログイン画面からも消えてしまうことを半分覚えていますが、もうXDMを使用しないので、推測です:-)


これは正しい答えです。OPがシェルを「/ sbin / nologin」に設定することにより、「ログイン画面」に「sudo」または表示できないアカウントを要求したためです。注意すべきことの1つは、OPが「システムユーザー」を要求したため、「useradd --system」を使用してUIDを少ない数で作成する必要があることを言及する必要があるためです(portage / ebuildのように)
-HidekiAI

3

を使用できますusermod。これにより!*。ではなくを使用してパスワードが無効になります。

usermod -L <username>

usermodのmanページから:

-L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectively disabling the password.

2

使用dsclすると

dscl . -passwd /Users/myuser ""

これは、上記の回答のほとんどとは異なり、実際に私のために働いた。
-GroovyCakes

1

OSXについては確信できませんが、FreeBSDでは次を使用できます。

pw add user mymuser -g mygroup -s /nonexistent -h -

オプションに-渡されたの値は、master.passwdのパスワードフィールドをに設定するように指示するため、ログインなしアカウントが作成されます。シェルの設定は厳密には必要ありませんが、/ etc / pw.confからのシェルチェックを回避します。-hpw*




-1

Linuxでは次を使用します。

sudo useradd -r -p \* -s /sbin/nologin -c "Comment My Daemon,,,"  -d "/var/uuu"  myuser

次の選択肢はより多くのクロスプラットフォームでなければなりません(-rオプションが利用できない場合):

sudo useradd -K UID_MIN=100 -K UID_MAX=499 -K GID_MIN=100 -K GID_MAX=499 -p \* -s /sbin/nologin -c "Comment My Daemon,,,"  -d "/var/uuu"  myuser

ここに:

  • で、パスワードは/ etc / shadowがにsettedされます*-p \*それがなければ!

  • shell /sbin/nologinも使用できます(使用すること/bin/falseもできますが、/bin一部のシステムではマウントが遅すぎる可能性があります)。そのため、ユーザーはログインできません

  • -d ユーザーのhomedirを設定します

重要な注意点

ここ-rでシステムユーザーを作成します。

このフラグは、システムアカウントを作成するために使用されます。つまり、/ etc / login.defsUIDUID_MIN定義された値よりも低く、パスワードの有効期限が切れていないユーザー。useraddは、/ etc/login.defsのデフォルト設定に関係なく、そのようなユーザーのホームディレクトリを作成しないことに注意してください。システムアカウントのホームディレクトリを作成する場合は、オプションを指定する必要があります。これはRed Hatが追加したオプションです。-m

システムにオプション-rが存在しない場合があります。したがって、ログイン画面に表示されないシステムユーザーを作成するには、-Kオプションを使用できると思います。次のようなものです-K UID_MIN=100 -K UID_MAX=499。次のようなオプションを試すことができます:

-K UID_MAX=$(cat /etc/login.defs | grep ^UID_MIN | awk '{print $2}')

あなたを自動的に決定するためにUID_MAX、しかし私はOS Xでテストしていません。/etc/login.defsでコメントが外さSYS_UID_MAXれているUID_MIN場合に使用する必要があります

同じことのためであるGID_MAXGID_MINシステムグループIDの。(参照してくださいGID_MINコメントを外した場合とSYS_GID_MAXに/etc/login.defsとして使用しますGID_MAX

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