3

私は現在、社内プログラム用の Debian パッケージに取り組んでいます。このパッケージの一部として、プログラムのほとんどの機能を実行するユーザーを作成する必要があります。postinst スクリプトでこれを行っています。postinst スクリプトは (アップグレード時などに) 何度も実行できるため、毎回ユーザーを作成しようとしないようにすることが重要です。

では、スクリプトの最初の実行時にのみユーザーが作成され、その後のスクリプトの実行に影響を与えないようにするにはどうすればよいでしょうか?

4

3 に答える 3

9

試す:

[aiden@dev ~]$ id aiden
uid=500(aiden) gid=500(aiden) groups=500(aiden)
[aiden@dev ~]$ id foomonkey
id: foomonkey: No such user
[aiden@dev ~]$ 

1 番目$?は 0、2 番目は 1 です。

于 2009-08-24T11:27:42.673 に答える
2

ユーザーが存在するかどうかを知る必要はありません。adduser(8)は、ユーザーが同じパラメーターで既に存在する場合、エラーを返しません。マニュアルページから:

EXIT VALUES
       0      The  user  exists as specified. This can have 2 causes: The user
              was created by adduser or the user was already  present  on  the
              system  before  adduser  was  invoked. Invoking adduser a second
              time with the same parameters as before also returns 0.
于 2009-08-24T13:13:38.233 に答える
1

前に述べたように、「id」コマンドを使用できます。システム内のすべてのユーザーを取得したい場合は、次を使用できます。

getent passwd

これにより、システム上のすべてのユーザーがリストされます(ldapやnisなどのリモートデータベース上にある場合でも...)

于 2009-08-29T20:11:01.557 に答える