私は基本的にコマンドラインからのユーザー管理について質問しています(たとえば、利用可能なグラフィカルツールがないシステムで)。過去に、ユーザーやグループを追加または削除したり、属性を変更したりするために、いくつかの異なるプログラムを使用しました:adduser
、useradd
、usermod
、gpasswd
、そしておそらく私が忘れてしまった他の人たち。また、これらのプログラムのいくつかは低レベルであり、一般的な使用には避けるべきであると何度か聞いたことがありますが、どれを思い出せません。したがって、少なくとも次のタスクで推奨されるプログラムについて、明確な回答を得たいと思います。
ほぼすべてのLinuxシステム(任意のディストリビューション)で利用できると期待できる標準ツールを探しています。
悲しいことに、これらの操作はどれも標準化されていませんでした。
Linuxのように、一部のオペレーティングシステムはOSの一部としてこの機能を提供しますが、Linuxシステムにこれらが含まれている場合でも、時間の経過とともにLinuxディストリビューション全体でツールとその名前が変更されるため、標準のツールセットに実際に依存することはできません。それらのタスク。
オペレーティングシステムごとのツールセットが必要です。
Debian(および派生)システムでは、adduser
とdeluser
はuseradd
と関連機能の上位レベルのラッパーです。ユーザーの作成、グループメンバーシップの追加と削除、およびユーザーの削除について説明します。グループの作成/削除からの対応するコマンドは、当然のことながら、addgroup
およびdelgroup
です。 usermod
は、名前を付けた残りのユースケースをカバーしているように見えます。
質問の最後の部分でLinuxについて言及していますが、タイトルは一般的なものなので、FreeBSDについてお答えします。
FreeBSDにはLinuxと同様のコマンドがありますが、それらはpw
ユーティリティに渡されるコマンドです。
pw useradd [user|uid] ...
pw usermod [user|uid] ...
等々。ただし、コマンドをuser
とmod
の2つの部分に解析できます。名詞と動詞。さらに、group
とdel
を使用することもできます。
pw groupdel [group|gid] ...
たとえば、グループを削除します。だから、これが本当にクールだと思うものです:順序は関係ありませんし、間隔も関係ありません!これが意味することは、あなたがやりたいことを考えることによって何を呼ぶかを思い出すことができるということですとにかく英語):
pw del user [user|uid] ...
pw mod group [group|gid] ...
pw show user [user|uid] ...
pw next user [user|uid] ...
もっと! pw
ユーティリティを使用すると、アカウントをロックおよびロック解除することもできます。
pw lock [user|uid] ...
pw unlock [user|uid] ...
渡すオプションとパラメーターはすべて標準化されているため(呼び出しコマンドに常に適用されるとは限りません)、記憶が最小限に抑えられます。全体として、物事を行うための素晴らしい方法です。
注:上記の例の省略記号は、追加のユーザーやグループではなく、pw
に渡されるオプションとパラメーターを表しています。
完全を期すために、スペクトルの低レベルの端で、「vi/etc/passwd」と「cat>/etc/passwd」のすぐ上、「useradd」のすぐ下にあるvipw(8)とvigr(8)について説明します。 "。ああ、それらはほとんどのUnixバリアントに存在します。
これらのツールはすべて、最終的にはテキストファイルを編集するために構築されています。システム上でユーザーとグループを管理する方法を知りたい場合は、これらの基礎となるテキストファイルに精通している必要があります。幸運なことに、/etc/passwd
と/etc/group
の2つしかありません。 passwdとgroupをそれぞれシャドウイングするための補完的な/etc/shadow
ファイルと/etc/gshadow
ファイルもあります。
デフォルトのローカルマシンバックエンド以外のバックエンドを使用している場合(OpenLDAPが最も一般的です)、 cp (パスワード変更ユーティリティ)が探しているコマンドである可能性があります。正しく構成されていれば、LDAPマスター以外のマシンで実行でき、構文はほとんどuseradd
などと同じで、プレフィックスはcpu
です。だから私は自分自身を追加することができます
$ Sudo cpu useradd hamish
詳細については、 cpuのマニュアルページ を参照してください。
多くの場合、「/ etc/passwd」の編集方法を知っていると便利です。
あなたの質問がに限定されていた場合
(任意のディストリビューションの)任意のLinuxシステム
ただし、すべてのシステムが単一のサーバーにネットワークアクセスできます。 NISやYPのようなものを使用できます。したがって、この回答は単一の組織内の管理者に限定されています。
ほぼすべてのディストリビューションでYPを構成する方法がわずかに異なるという問題がまだありますが、構成は1回だけ行われます。また、このタイプのネットワークは簡単ではありません。
単一のサイト/ネットワーク内で、これを行うことで多くのことを得ることができます。自動マウントと組み合わせて、私のお気に入りは、任意の* nixマシンにSSHで接続し、すべてのホームファイルとツールを利用できるようにすることです。
要するに、マスター用に選択するディストリビューションは、ユーザーの管理に使用するシステムです。これで、ユーザーとグループを管理するためのツール/ドキュメントの単一のセットができます。
マスターでLDAPやsambaツールのようなものを使用することも可能です。 sambaを使用すると、Windowsマシンでホームファイルを利用できるようになります。
取得する標準に最も近いものは、vi /etc/passwd
、vi /etc/shadow
、およびvi /etc/groups
です。 (異端者はemacs
を置き換えるかもしれません。)それ以来、私が見つけたものはすべて、一部のシステムでのみ機能します。
真剣に、あなたのOSがどんなツールを持っているかを見つけて、それらを使ってください。それらがすべてのシステムで同じように機能することを期待しないでください。それらが標準化されていればいいのですが、そうではありません。