Linuxでシェルスクリプトを使用して複数のユーザー名とUIDを作成する


2

私の環境では、Linuxで実行されているNFSサーバーを常に接続する必要があります。Linuxクライアントシステムにはユーザー名が作成されており、それらは順番に並んでいます。ただし、各ユーザーの共有許可を個別に設定するにuseradd -u 2001 -g 1000 -d /home/app/mnt/1 user1は、NFSサーバーで作成する必要があります。クライアントシステムに1000人のユーザーがいる場合は、NFSサーバーでも個別に作成する必要があります。

Linux NFSサーバーでシェルスクリプトを使用して、複数のユーザー名を作成し、UID(ランダムではない)を割り当てたい。また、ホームディレクトリを自動的に割り当てたいです。たとえば、次のようなユーザーを作成します

| Username| UID |Home Directory|
|  user1  |20001|/home/users/1 |
|  user2  |20002|/home/users/2 |
|  user3  |20003|/home/users/3 |
|    .    |  .  |       .      |
|    .    |  .  |       .      |
|    .    |  .  |       .      |
|  userX  |2000X|/home/users/X |

ユーザー名は常に「user」で始まり、同じままです。Xは100〜1000です。

これらのユーザーは必要ですが、短命なので、中央のユーザー管理プラットフォームには行きたくありません。シェルスクリプトでユーザーを一括作成できる可能性はありますか?

この記事を読みました。これはまさに私が望むものから始まりますが、後で私にとって意味のないことに入ります。


1
「必要だが短命」それは、ファイル以外のユーザーデータベースを使用する優れた理由のように思えます。それらの多くは、プログラムでやり取りするのがはるかに簡単です(たとえば、お気に入りのプログラミング/スクリプト言語にはLDAPおよびSQLインターフェイスがあります) 、システム間の同期について心配する必要はありません。
デロバート

回答:


2

提案されているように、これは簡単に達成できます。端末では、次のようなforループを使用できます。

for i in {20001..20100}; do useradd -u $i -g 1000 -d /home/app/mnt/$i "user${i}"; done

ループは増分されてから20100終了します。

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