Latest web development tutorials

Linuxユーザとユーザグループ管理

Linuxシステムは、すべてのシステムリソースを使用するユーザ、マルチユーザ、マルチタスク時分割オペレーティングシステムであり、システム管理者は、まず、システムにその後、アカウントのアカウントの識別情報を適用しなければなりません。

一方でユーザーのアカウントは、システムリソースへのアクセスを追跡し、制御するためのシステムを使用して、ユーザーにシステム管理者を助けることができ、一方、また、ユーザーがファイルを整理し、セキュリティ保護をユーザーに提供することができます。

各ユーザーアカウントは、それぞれの一意のユーザ名とパスワードを持っています。

ユーザーは、ログイン時に正しいユーザー名とパスワードを入力しますが、システムと、自分のホームディレクトリを入力することができます。

ユーザーアカウント管理を実装し、次の側面を中心に行われるように動作します。

  • ユーザーは、追加、削除および変更するアカウント。
  • ユーザーのパスワード管理。
  • ユーザグループ管理。

、Linuxのユーザーアカウント管理システム

ユーザーアカウント管理は、主に、追加、変更、および削除するには、ユーザーアカウントに関連します。

ユーザーアカウントを追加すると、システムに新しいアカウントを作成し、新しい口座番号、ユーザーグループ、ホームディレクトリにユーザーを割り当て、シェルや他のリソースをログインすることです。 ただ、アカウントがロックされ、使用不能になっ追加します。

1.次のようにuseraddコマンドを使用して、新しいユーザーアカウントを追加し、その構文は次のとおりです。

useradd 选项 用户名

パラメータ説明:

  • オプション:

    • -cコメントは、コメントの説明を指定します。
    • -dディレクトリは、このディレクトリが存在しない場合は、-mオプションを使用することができ、あなたがホームディレクトリを作成することができ、ユーザのホームディレクトリを指定します。
    • ユーザーの-gグループは、彼らが所属するユーザーグループを指定します。
    • ユーザー、ユーザーグループの-Gグループは、ユーザーが所属する追加のグループを指定します。
    • -sシェルファイルは、ユーザのログインシェルを指定します。
    • 同時に-oオプションは、あなたが他の利用者識別番号を再利用することができない場合は、-uユーザーは、ユーザー数、ユーザー数を指定します。
  • ユーザー名:

    新しいアカウントのログイン名を指定します。

例1

# useradd –d /usr/sam -m sam

このコマンドは、ユーザー-dおよび-mオプションは、ログイン名、SAMのホームディレクトリは/ usr / samを生成する(デフォルトユーザのホームディレクトリは/ usrを親ディレクトリをされている)が使用されたSAMを作成します。

例2

# useradd -s /bin/sh -g group –G adm,root gem

このコマンドは、ユーザーの宝石を作成し、ユーザのログインシェルは/bin/shグループがメイングループである、それはグループのユーザグループに属しているだけでなく、rootとadmユーザグループに属しているユーザグループ。

新しいグループがあるかもしれません: #groupadd group及groupadd adm

それはそのようなは/ etc / shadowを、/ etc / groupのなどの他のシステムファイルを更新し、新しいユーザー・レコードを追加するために、/ etc / passwdファイルに含まれるユーザーアカウントを増やします。

Linuxは、ユーザー・アカウントの一元管理のために使用することができる統合システム管理ツールのuserconfを、提供します。

3、アカウントを削除

ユーザアカウントがもはや使用されている場合は、システムから削除することができません。 必要に応じて、ユーザレコードを削除するには、ユーザーアカウントがある/ etc / passwdファイルやその他のシステムファイルを削除するには、ユーザーのホームディレクトリを削除します。

使用して、既存のユーザーアカウントの削除userdelコマンドを以下のように、その形式は次のとおりです。

userdel 选项 用户名

共通オプションは、その役割は一緒にユーザーのホームディレクトリを削除することで、-rです。

例えば:

# userdel sam

このコマンドは、システムファイル(主に/ etc / passwdファイルは、/ etc / shadowを、/ etc / groupの、など)レコード内のユーザーのSAMを削除し、ユーザーのホームディレクトリを削除します。

4.アカウントを変更します

ユーザーアカウントは、ユーザー、ホームディレクトリ、ユーザーグループ、シェルをログインなどの数など、実際の状況に基づいてユーザの属性を変更しようとしている変更します。

使用して、既存のユーザーの情報を変更するusermod 、次のようにコマンドを、その形式は次のとおりです。

usermod 选项 用户名

共通のオプションには、 -c, -d, -m, -g, -G, -s, -u以及-o等 -G、-s、-u useradd -c, -d, -m, -g, -G, -s, -u以及-o等 、これらのオプションの意味useraddコマンドのオプションは、リソース・ユーザーのための新しい値を指定することができます。

また、いくつかのシステムは、オプションを使用できます。-l新しいユーザー名を

このオプションは、新しいアカウントを指定し、新しいユーザー名に元のユーザー名はなります。

例えば:

# usermod -s /bin/ksh -d /home/z –g developer sam

このコマンドは、ユーザのログインシェルSAMはkshの、のホームディレクトリ/ home / zの、開発者へのユーザグループを変更設定します。

5、ユーザパスワード管理

ユーザー管理の重要な部分は、ユーザーのパスワード管理です。 ユーザーアカウントのパスワードを作成するが、システムがロックされているだけでなく、あなたがあっても使用するヌルパスワードを指定することができます前に、パスワードを割り当てる必要があり、使用することはできません。

ユーザーのパスワードを指定し、変更するシェルコマンドがあるpasswd 。 スーパーユーザは、通常のユーザーは自分のパスワードを変更するためにそれを使用することができ、自分や他のユーザーのパスワードを指定することができます。 コマンドの形式は次のとおりです。

passwd 选项 用户名

オプション使用:

  • アカウントを無効にするパスワードを、ロック-l。
  • -uパスワードロックを解除。
  • パスワードなしでアカウントを有効に-d。
  • -f強制ユーザーは次回ログオン時にパスワードを変更します。

デフォルトのユーザー名ならば、現在のユーザーのパスワードを変更します。

たとえば、次のコマンドは、ユーザーのパスワードを変更するには、現在のユーザーがサムであることを前提としています。

$ passwd 
Old password:****** 
New password:******* 
Re-enter new password:*******

スーパーユーザーの場合は、次の形式を使用して、任意のユーザのパスワードを指定することができます。

# passwd sam 
New password:******* 
Re-enter new password:*******

普通のユーザーのpasswdコマンドでは、それは、新しいパスワードを2回入力した一貫性のある場合は、パスワードを2回入力し、ユーザーにパスワードを指定するには、ユーザーが必要と確認した後、元のパスワードをチェックしたときに、自分のパスワードを変更すると、指定したユーザーのスーパーユーザーのパスワードときに元のパスワードを知っている必要はありません。

システムのセキュリティのために、あなたが例えば、8ビットのパスワードを使用することが好ましい、より複雑なパスワードを選択する必要があり、パスワードは大文字と小文字と数字が含まれており、同じではありません、誕生日などの名前を付ける必要があります。

あなたがユーザーに空のパスワードを指定すると、フォームで次のコマンドを実行します。

# passwd -d sam

ユーザーのSAM次回にログインするように、このコマンドは、ユーザーSAMのパスワードを削除します、システムがパスワードを要求しません。

また、-l(ロック)のユーザーオプションでロックすることができ、passwdコマンドは、次のような、ログインすることはできません。

# passwd -l sam

次に、管理システムLinuxユーザグループ

各ユーザーは、ユーザー・グループ、すべてのユーザーが管理を集中システム缶グループのユーザーを持っています。 別のLinuxシステムは、Linuxユーザとして規定の異なるユーザーグループを持って、その同名を持つユーザー・グループで、ユーザー・グループは、ユーザーの作成と同時に作成されます。

管理ユーザー・グループの削除や変更、ユーザー・グループに追加することになります。 グループの増加は、実際には、それは削除して、/ etc / groupファイルの更新を修正することです。

1、新しいユーザーグループのgroupaddコマンドを追加します。 形式は以下の通りです:

groupadd 选项 用户组

使用できるオプションは以下のとおりです。

  • -g GIDは、新しいユーザグループのグループID(GID)を指定します。
  • -o -gオプションは、一般的にGIDシステムと新しいグループのGIDを示し、同時に使用されているのと同じユーザー・グループを持っています。

実施例1:

# groupadd group1

このコマンドは、新しいグループグループ1は、新しいグループのグループIDは、現在入手可能な最大のグループ識別番号1を基準に追加されたシステムに追加されます。

例2:

# groupadd -g 101 group2

グループ識別番号の新しいグループを指定してこのコマンドを実行すると、101で、システムに新しいグループのグループ2に追加します。

既存のユーザー・グループを削除したい場合は2、次の形式でgroupdelコマンドを使用します。

groupdel 用户组

例えば:

# groupdel group1

このコマンドは、システムグループ1からグループを削除します。

3、ユーザー・グループの使用groupmodのコマンドのプロパティを変更します。 構文は次のとおりです。

groupmod 选项 用户组

一般的に使用されるオプションは次のとおりです。

  • -g GIDは、ユーザーグループの新しいグループIDを指定します。
  • -o -gオプションと同じGID既存のユーザーグループを使用して新しいGID・システム・ユーザー・グループを使用します。
  • -n新しいユーザグループは、ユーザグループ名の新しい名前に変更されます

実施例1:

# groupmod -g 102 group2

このコマンドグループグループ2のグループ識別番号が102に変更されました。

例2:

# groupmod –g 10000 -n group3 group2

10000このコマンドは、グループグループ2の識別番号、およびグループ名はグループ3に変更されました。

ユーザが複数のユーザグループに属している場合4は、ユーザが他のユーザグループの権利を有するために、ユーザのグループ間で切り替えることができます。

ユーザーは、ログインし、他のユーザー・グループに切り替えることnewgrpコマンドを使用することができ、オーダーパラメータには、ユーザー・グループの目的です。 例えば:

$ newgrp root

このコマンドは、rootユーザー・グループが実際にユーザーのプライマリグループ、または追加のグループであることを条件に、現在のユーザー・グループのルートに切り替わります。 ユーザアカウントの管理と同様に、ユーザグループ管理はまた、システム管理ツールを統合することができます。


第三に、ユーザー・アカウントに関連するシステム・ファイル

完全なユーザー管理作業があり、多くの方法がありますが、それぞれの方法は、実際には、変更するシステムファイルに関連しています。

そして、ユーザとグループの関連情報は、いくつかのシステムファイルに格納され、これらのファイルは、/ etc / passwdファイルは、/ etc / shadowを、/ etc / groupの等が挙げられます。

以下は、これらのファイルの内容を説明しています。

1、/ etc / passwdファイルには、関連する文書管理の最も重要なユーザーです。

Linuxシステムでは、各ユーザーは、ユーザーの基本属性を記録し、/ etc / passwdファイルに対応する行を持っています。

このファイルには、すべてのユーザーに対して読み取り可能です。 これは、次の例のようになります。

# cat /etc/passwd

root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:
adm:x:4:4:System accounting:/usr/adm:
uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
auth:x:7:21:Authentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:/usr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:Printer administrator:/usr/spool/lp:
sam:x:200:50:Sam san:/usr/sam:/bin/sh

上記の例から、我々が見ることができる、/行のetc / passwdファイルは、ユーザーに対応し、各行は7つのフィールド、フォーマットおよび特定の意味に分けコロン(:)によって記録された次のとおりです。

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

1)「ユーザー名」は、ユーザアカウントを表す文字列です。

通常、もはや8文字、大文字と小文字、および/または数字より。 ここでは、コロンの区切り文字であるため、ログイン名は、コロン(:)を含めることはできません。

互換性の理由から、ログイン名はドット文字を含んではならない、とハイフンを使用していません(。)( - )とプラス(+)を開始します。

2)「パスワード」いくつかのシステムでは、暗号化されたユーザパスワードの保管。

このフィールドは暗号化されたパスワード文字列に格納されているが、ない明示、しかしにより、すべてのユーザが読めるのはetc / passwdファイル/へので、これはまだセキュリティリスクです。 (例えばSVR4など)だから今多くのLinuxシステムは、両方のシャドウ技法を使用し、ユーザーのパスワードが真に/ etc / shadowファイル、および/ etc / passwdファイルのパスワードフィールドに格納されている暗号化は、特別な保持していますこのような「×」やなどの文字、「*。」

3)「ユーザID」は、ユーザを識別するためにそれを使用するシステム内の整数です。

通常の状況下では、ユーザー名と一から一です。 ユーザ識別番号に対応するいくつかのユーザー名は、内部のシステムと同じである場合、同じユーザーとしてそれらを扱いますが、彼らは別のパスワード、異なるホーム・ディレクトリと異なるログインシェル等を有していてもよいです。

ユーザ識別番号は通常1 99から0 535.0 65にスーパーユーザーrootの識別番号は、アカウント管理、100開始からの一般的なユーザー識別番号として、システムによって予約されています。の範囲であり、 Linuxシステムでは、この制限は500です。

4)レコードの「グループID」フィールドは、ユーザが属するユーザ・グループです。

これは、/ etc / groupファイルのレコードに対応します。

5)「コメントの説明」フィールドには、ユーザーの個人的状況を記録します。

たとえば、ユーザーの実際の名前、電話番号、住所など、この分野でのと全く実用化はありません。 別のLinuxシステムでは、このフィールドのフォーマットが統一されていません。 多くのLinuxシステムでは、このフィールドは、任意の説明テキストのコメント部に記憶された出力フィンガーコマンドとして使用されます。

ユーザーの初期作業ディレクトリである6)「メインメニュー」、。

これは、システムにログインした後どこにユーザーディレクトリです。 ほとんどのシステムでは、各ユーザのホームディレクトリは、ある特定のディレクトリの下に編成され、ユーザのホームディレクトリの名前は、ユーザーのログイン名です。 各ユーザは、自分のホームディレクトリの読み取りを持って、書き込み、他のユーザのディレクトリにアクセスするための実行(検索)権を状況に応じて設定されています。

ユーザーがプロセスを開始するには、ログオンした後7)、ユーザーがカーネルに渡された操作を担当して、プロセスは、システム・コマンド・インタプリタまたは特定のプログラム、すなわちシェルにログオンした後に実行されます。

シェルは、ユーザとLinuxシステム間のインタフェースです。 多くのLinuxシェル、異なる特性を持つそれぞれがあります。 一般的に使用されるのsh(ボーンシェル)、CSH(Cシェル)、kshの(Kornシェル)、tcshの(TENEX / TOPS-20タイプCシェル)、Bash(Bourne again Shell)のことなどが挙げられます。

システム管理者は、システムとユーザーの習慣に基づいてユーザのシェルを指定することができます。 あなたがシェルを指定しない場合は、システムがデフォルトのログインシェル、つまり、フィールドがある/ binに/ shのようにSHを使用しています。

ユーザーログインシェルは、また、(このプログラムは、コマンド・インタプリタではありません)特定のプログラムに指定することができます。

この機能を使用して、我々は、アプリケーションが実行された後、ユーザーはシステムを自動的に終了します、特定のアプリケーションを実行するユーザーを制限することができます。 一部のLinuxシステムでは、このフィールドに表示されるシステムプログラムに登録されているものだけを必要とします。

8)システムは、擬似ユーザ(擬似ユーザー)と呼ばれるユーザのクラスがあります。

また、ユーザは、/ etc / passwdの記録を提出持っていますが、彼らのログインシェルが空であるためにログインすることはできません。 これらは、ファイルの所有者の適切な要件を満たすために、システム管理、システムプロセスを容易にするために主に存在します。

次のように共通の擬似ユーザーは、次のとおりです。

伪 用 户 含 义 
bin 拥有可执行的用户命令文件 
sys 拥有系统文件 
adm 拥有帐户文件 
uucp UUCP使用 
lp lp或lpd子系统使用 
nobody NFS使用

アカウントファイルを持っています

1は、上記のその擬似ユーザを除いて、のような多くの標準的な擬似ユーザー、ありますなど、監査、cronを、メール、Usenetのは、彼らがそれぞれのプロセスや文書化要件にも関連しています。

高いセキュリティ要件Linuxシステムは、ユーザーのパスワードが簡単すぎるまたは法律の明白な言葉は、一般的なコンピュータは簡単にそれを破ることができ、その場合は/ etcので/ passwdファイルには、すべてのユーザーの読み取り可能です別のファイルに保存されている分離された暗号化されたパスワードを、みなし、このファイルは/ etc / shadowファイルです。 ユーザーのパスワードのセキュリティを保証する、このファイルを読み込むには、スーパーユーザー権限があり持っています。

対応/内の行で2は、/ etc / shadowとetc / passwdファイルは、自動的によると、はpwconvコマンドデータ/ etc / passwdファイルによって生成されます

そのファイル形式と/ etc /とフィールド間のいくつかのフィールドで構成された類似のpasswd、 ":"で分離されました。 これらのフィールドは、次のとおりです。

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  1. 「ログイン」は、/ etc / passwdファイル、ユーザーアカウントのログイン名と一致しています
  2. 「パスワード」フィールドは、13文字の長さは、暗号化されたユーザのパスワードに格納されています。 空の場合は、パスワードなし、なしのログインパスワードで対応するユーザは、あなたが{./0-9A-Za-z}文字を含むセットに属していない場合、該当するユーザーはログオンできません。
  3. パスワードを前回の日数を変更するには一定の時間から、ユーザーにである「最終更新日」。 異なるシステムのための開始時間は異なっていてもよいです。 たとえば、SCOのLinuxで、開始時刻は1970年1月1日です。
  4. 「最小間隔は、「パスワードを変更する2の間に必要な最小日数を指します。
  5. 「最大時間間隔は、「パスワードを指し日の最大数有効です。
  6. 「時間警告」欄には、システムからの日数が故障間の正式なパスワードにユーザーに警告し始めた示しています。
  7. 「非アクティブ時間」を意味し、ユーザがログインしていないということですが、アカウントアクティビティは、日のアクティブな最大数のまま。
  8. このフィールドを使用する場合は、「デッドタイム」フィールドは、絶対日の与えられた数である、それは、対応するアカウントの寿命を提供します。 アカウントの有効期限は、もはや正当なアカウントです後は、ログインするために使用することはできません。

ここでの例では/ etc / shadowは次のとおりです。

# cat /etc/shadow

root:Dnakfw28zf38w:8764:0:168:7:::
daemon:*::0:0::::
bin:*::0:0::::
sys:*::0:0::::
adm:*::0:0::::
uucp:*::0:0::::
nuucp:*::0:0::::
auth:*::0:0::::
cron:*::0:0::::
listen:*::0:0::::
lp:*::0:0::::
sam:EkdiSECLWPdSa:9740:0:0::::

図3に示すように、すべての情報は、ユーザのグループ/ etc / groupファイルに格納されています。

ユーザグループは、ユーザを管理し、アクセスを制御する手段Linuxシステムです。

各ユーザーは、ユーザー・グループに属し、グループには、ユーザーが別のグループに属することができ、複数のユーザーを持つことができます。

ユーザーが複数のグループのメンバーである場合には、/ etc / passwdファイル内のレコードは、他のグループは、追加のグループと呼ばれながら、あなたは、あなたのグループにログオンするデフォルトで、ユーザーが所属するプライマリグループ、です。

ユーザーが追加のグループに属しているファイルにアクセスしたいときは、最初のグループのメンバーがアクセスするになるためには、newgrpコマンドを使用する必要があります。

すべての情報は、ユーザグループ/ etc / groupファイルに保存されます。 このファイルのフォーマットは、コロン(:)のフィールドの数によって分離することによって、また、/ etc / passwdファイルに似ています。

组名:口令:组标识号:组内用户列表
  1. 「グループ名」は文字または数字で構成され、グループの名前です。 そして、/ etc / passwdのログイン名、グループ名は繰り返されるべきではありません。
  2. 「パスワード」フィールドには、パスワード、暗号化、ユーザ・グループに格納されます。 Linuxシステムのユーザーグループは、一般的に、このフィールドは通常、空、または*であること、パスワードを持っていません。
  3. 同様のユーザ識別番号と、「グループID」は、整数、グループを識別するために使用される内部システムです。
  4. 「グループリスト内のユーザーは、「カンマ(、)を持つ別のユーザーの間で分離するすべてのユーザー/ B]このグループのリストの一部です。 このユーザグループは、ユーザのプライマリグループであってもよく、それは追加の基であってもよいです。

次のように/ etc / groupファイルの例は次のとおりです。

root::0:root
bin::2:root,bin
sys::3:root,uucp
adm::4:root,adm
daemon::5:root,daemon
lp::7:root,lp
users::20:root,sam

第四に、グラントユーザーの量

すべてのLinuxシステム管理者の追加や削除、ユーザーが簡単で、より困難あなたがユーザーの数十、数百、あるいは数千を追加したい場合は、我々はまた、1つずつ追加するにはuseraddを使用する可能性は低いですが、必ずしもこの方法の多数のユーザーを作成する方法を探しては簡単です。 次のようにLinuxシステムでは、あなたはすぐに多数のユーザーを作成できるようにするツールを作成するために、多数のユーザーを提供します。

(1)テキストファイルのユーザーを編集します。

各列/etc/passwdパスワードファイルの形式で記述されたが、各ユーザーのユーザー名に注意を払う、UIDは、パスワードフィールドを空白のままにするか、またはX番号を入力することができ、同じディレクトリをホストすることはできません。 次のようにサンプルファイルUSER.TXT読み取ります。

user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash

(2)rootとして、コマンドを実行/usr/sbin/newusers 、先ほど作成したユーザーファイルからuser.txtインポートデータを、ユーザーを作成します。

# newusers < user.txt

あなたは、コマンドを実行することができますvipwvi /etc/passwdチェックするために/etc/passwdファイルには、これらのユーザーのデータの出現となっており、ユーザのホームディレクトリが作成されました。

(3)は、/ usr / sbin / pwunconv実行します。

/etc/shadow生成されたshadowパスワード復号化され、その後に書き戻す/etc/passwd 、および/etc/shadowshadow削除パスワードフィールドを。 これはキャンセルすることで暗号変換作業の次のステップ容易にすることにあるshadow password機能を。

# pwunconv

(4)各ユーザーのパスワード制御ファイルを編集します。

サンプルファイルpasswd.txt次のように読み取ります。

user001:密码
user002:密码
user003:密码
user004:密码
user005:密码
user006:密码

(5)ルートとして実行/usr/sbin/chpasswd

ユーザーのパスワードを作成し、 chpasswd通過します/usr/bin/passwd書かれたコマンドエンコードされたパスワード/etc/passwdパスワードフィールドを。

# chpasswd < passwd.txt

(6)以降の書き込み/ etc / passwdのパスワードフィールドをエンコードされたパスワードを決定します。

実行/usr/sbin/pwconvとしてエンコードされたパスワードshadow password 、その結果がに書かれている/etc/shadow

# pwconv

これは、/ homeの設定で、ユーザーのホームディレクトリのパーミッションをチェックするために行くことができた後、多数のユーザーの作成があれば正しく、ユーザーのログインパスワードが正しいことを確認し完了します。