web-dev-qa-db-ja.com

ユーザーとグループを管理するための標準のCLIプログラムとは何ですか?

私は基本的にコマンドラインからのユーザー管理について質問しています(たとえば、利用可能なグラフィカルツールがないシステムで)。過去に、ユーザーやグループを追加または削除したり、属性を変更したりするために、いくつかの異なるプログラムを使用しました:adduseruseraddusermodgpasswd 、そしておそらく私が忘れてしまった他の人たち。また、これらのプログラムのいくつかは低レベルであり、一般的な使用には避けるべきであると何度か聞いたことがありますが、どれを思い出せません。したがって、少なくとも次のタスクで推奨されるプログラムについて、明確な回答を得たいと思います。

  • 新しいユーザーを作成する
  • グループにユーザーを追加する
  • グループからユーザーを削除する
  • ユーザーのプライマリグループを変更する
  • ユーザーのログインシェルまたはホームディレクトリを変更する
  • ユーザーを削除する

ほぼすべてのLinuxシステム(任意のディストリビューション)で利用できると期待できる標準ツールを探しています。

8
David Z

悲しいことに、これらの操作はどれも標準化されていませんでした。

Linuxのように、一部のオペレーティングシステムはOSの一部としてこの機能を提供しますが、Linuxシステムにこれらが含まれている場合でも、時間の経過とともにLinuxディストリビューション全体でツールとその名前が変更されるため、標準のツールセットに実際に依存することはできません。それらのタスク。

オペレーティングシステムごとのツールセットが必要です。

9
miguel.de.icaza

Debian(および派生)システムでは、adduserdeluseruseraddと関連機能の上位レベルのラッパーです。ユーザーの作成、グループメンバーシップの追加と削除、およびユーザーの削除について説明します。グループの作成/削除からの対応するコマンドは、当然のことながら、addgroupおよびdelgroupです。 usermodは、名前を付けた残りのユースケースをカバーしているように見えます。

7
Phil Miller

質問の最後の部分でLinuxについて言及していますが、タイトルは一般的なものなので、FreeBSDについてお答えします。

FreeBSDにはLinuxと同様のコマンドがありますが、それらはpwユーティリティに渡されるコマンドです。

pw useradd [user|uid] ...
pw usermod [user|uid] ...

等々。ただし、コマンドをusermodの2つの部分に解析できます。名詞と動詞。さらに、groupdelを使用することもできます。

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に渡されるオプションとパラメーターを表しています。

6
gvkv

完全を期すために、スペクトルの低レベルの端で、「vi/etc/passwd」と「cat>/etc/passwd」のすぐ上、「useradd」のすぐ下にあるvipw(8)とvigr(8)について説明します。 "。ああ、それらはほとんどのUnixバリアントに存在します。

2
codehead

これらのツールはすべて、最終的にはテキストファイルを編集するために構築されています。システム上でユーザーとグループを管理する方法を知りたい場合は、これらの基礎となるテキストファイルに精通している必要があります。幸運なことに、/etc/passwd/etc/groupの2つしかありません。 passwdとgroupをそれぞれシャドウイングするための補完的な/etc/shadowファイルと/etc/gshadowファイルもあります。

2
Eli Frey

デフォルトのローカルマシンバックエンド以外のバックエンドを使用している場合(OpenLDAPが最も一般的です)、 cp (パスワード変更ユーティリティ)が探しているコマンドである可能性があります。正しく構成されていれば、LDAPマスター以外のマシンで実行でき、構文はほとんどuseraddなどと同じで、プレフィックスはcpuです。だから私は自分自身を追加することができます

$ Sudo cpu useradd hamish

詳細については、 cpuのマニュアルページ を参照してください。

1
Hamish Downer

多くの場合、「/ etc/passwd」の編集方法を知っていると便利です。

1
Kevin Cantu

あなたの質問がに限定されていた場合

(任意のディストリビューションの)任意のLinuxシステム

ただし、すべてのシステムが単一のサーバーにネットワークアクセスできます。 NISやYPのようなものを使用できます。したがって、この回答は単一の組織内の管理者に限定されています。

ほぼすべてのディストリビューションでYPを構成する方法がわずかに異なるという問題がまだありますが、構成は1回だけ行われます。また、このタイプのネットワークは簡単ではありません。

単一のサイト/ネットワーク内で、これを行うことで多くのことを得ることができます。自動マウントと組み合わせて、私のお気に入りは、任意の* nixマシンにSSHで接続し、すべてのホームファイルとツールを利用できるようにすることです。

要するに、マスター用に選択するディストリビューションは、ユーザーの管理に使用するシステムです。これで、ユーザーとグループを管理するためのツール/ドキュメントの単一のセットができます。

マスターでLDAPやsambaツールのようなものを使用することも可能です。 sambaを使用すると、Windowsマシンでホームファイルを利用できるようになります。

0

取得する標準に最も近いものは、vi /etc/passwdvi /etc/shadow、およびvi /etc/groupsです。 (異端者はemacsを置き換えるかもしれません。)それ以来、私が見つけたものはすべて、一部のシステムでのみ機能します。

真剣に、あなたのOSがどんなツールを持っているかを見つけて、それらを使ってください。それらがすべてのシステムで同じように機能することを期待しないでください。それらが標準化されていればいいのですが、そうではありません。

0
David Thornley