Linux初心者向けチュートリアルシリーズの第3部の続き。 ユーザーおよびグループ管理の基礎。

Gentooの創設者によるLinuxの基本ナビゲーション:
パートI:
- BASH、ナビゲーションの基本
- ファイルとディレクトリを管理する
- リンクおよびファイルとディレクトリの削除
- グローブルックアップ
パートII:
- 正規表現
- フォルダーの割り当て、ファイル検索
- プロセス管理
- テキスト処理とリダイレクト
- カーネルモジュール
パートIII
- ドキュメント
- アクセスモデル
- アカウント管理
- 環境設定
Linuxアカウント管理
/ etc / passwdに会う
このセクションでは、Linuxアカウント管理メカニズムを紹介し、システムに存在するすべてのユーザーを定義する
/ etc / passwdファイルから始め
ます 。
less / etc / passwdと入力すると、
/ etc / passwdファイルを表示でき
ます 。
/ etc / passwdの各行は、ユーザーアカウントを定義します。
/ etc / passwdの例を次に示し
ます 。
drobbins:x:1000:1000:Daniel Robbins:/home/drobbins:/bin/bash
ご覧のとおり、1行に多くの情報はありません。 それぞれには、「:」で区切られたいくつかのフィールドが含まれています。 最初のフィールドはユーザー名(drobbins)を担当し、2番目のフィールドは「x」を含みます。 レガシーLinuxシステムでは、2番目のフィールドに認証用の暗号化されたパスワードが含まれていましたが、実際には、すべてのLinuxシステムがこの情報を別のファイルに保存します。 3番目のフィールドは特定のユーザーに関連付けられた数値のユーザー識別子を担当し、4番目のフィールドはこのユーザーを特定のグループに関連付けます。 グループ1000が定義されている場所がすぐにわかります5番目のフィールドには、アカウントのテキスト説明が含まれます(この場合はユーザー名です)。 6番目のフィールドはユーザーのホームディレクトリを定義し、7番目のフィールドはユーザーの起動シェルを設定します。ユーザーがログインすると自動的に起動します。
/ etc / passwd、ヒントとコツ
システムに実際にシステムにログインするユーザーアカウントよりも多くのユーザーアカウントが/ etc / passwdで定義されていることに気づいたでしょう。 これは、さまざまなLinuxコンポーネントがいくつかのアカウントを使用してセキュリティを強化しているためです。 通常、このようなシステムアカウントには100未満の識別子(uid)があり、それらの多くには、起動シェルとして/ bin / falseが設定されています。 このプログラムは終了以外に何もせず、エラーコードを返すため、これらのアカウントがログイン用の通常のアカウントとして使用されるのを効果的に防ぎます。 内部使用のみを目的としています。
/ etc /シャドウ
したがって、ユーザーアカウント自体は
/ etc / passwdで定義され
ます 。 Linuxシステムには、
/ etc / passwdに加えて、コンパニオンファイル
/ etc / shadowが含まれています。
/ etc / passwdとは異なり、スーパーユーザーのみが読み取り可能で、暗号化されたパスワード情報が含まれています。
/ etc / shadowのサンプル行を見てください:
drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0
各行は特定のアカウントのパスワード情報を定義し、その中のフィールドは「:」記号で区切られています。 最初のフィールドは、この「シャドウ」エントリが対応する特定のユーザーアカウントを定義します。 2番目のフィールドには、暗号化されたパスワードが含まれています。 残りのフィールドについては、次の表で説明します。
フィールド3-1970年1月1日からパスワードが変更されるまでの日数
フィールド4-パスワードの変更が許可されるまでの日数(「0」-「いつでも変更」)
フィールド5-システムがユーザーにパスワードの変更を強制するまでの日数( "-1"-"never")
フィールド6-ユーザーがこれに関する警告を受け取ったときにパスワードが期限切れになるまでの日数(「-1」-「警告しない」)
フィールド7-パスワードの有効期限が切れてからシステムがアカウントを自動的に無効にするまでの日数(「-1」-「切断しない」)
フィールド8-このアカウントが切断された瞬間から経過した日数( "-1"-"このアカウントは有効です")
フィールド9-将来の使用のために予約済み
/ etc /グループ
次に、Linuxシステム上のグループを定義する
/ etc / groupファイルを見てください。 以下はその一例です。
drobbins:x:1000:
/ etc / groupファイルのフィールドの形式は次のとおりです。最初のフィールドはグループの名前を定義し、2番目のフィールドは残りのパスワードフィールドであり、現在予約されているx、3番目のフィールドは特定のグループの数値識別子を定義します。 4番目のフィールド(上記の例では空)は、グループのすべてのメンバーを定義します。
/ etc / passwdのサンプル行には、識別子1000のグループへの「リンク」があります。4番目のフィールド/ etc / groupにdrobbins名が欠落していても、drobbinsユーザーをdrobbinsグループに入れることができます。
グループノート
ユーザーとグループの対応に関する注意:一部のシステムでは、新しいログインアカウントはそれぞれ、同じ名前(および通常は識別子)を持つグループに関連付けられます。 他のシステムでは、すべてのログインアカウントは同じユーザーグループに属します。 これらの方法のどれを選択するかはあなた次第です。 各ユーザーに適切なグループを作成すると、信頼できる友人を自分の個人グループに配置するだけで、自分のアクセスをより簡単に制御できるという利点があります。
ユーザーとグループの手動作成
次に、ユーザーとグループのアカウントを作成する方法を示します。 これを行う方法を学ぶ最良の方法は、システムに新しいユーザーを手動で追加することです。 まず、お気に入りのエディターがEDITOR環境変数と一致することを確認します。
# echo $EDITOR
vim
そうでない場合は、次のように入力してEDITOR変数を設定できます。
# export EDITOR=/usr/bin/emacs
# vipw
エディタは、/ etc / passwd画面がすでにロードされた状態で起動されているはずです。 システムファイルのpasswdおよびgroupを変更するときは、vipwおよびvigrコマンドを必ず使用してください。 予防措置が強化され、ファイルが破損する運命から保護されています。
/ etc / passwdの編集
したがって、すでに/ etc / passwdファイルが完成しているので、次の行を追加します。
testuser:x:3000:3000:LPI tutorial test user:/home/testuser:/bin/false
識別子3000のユーザー「testuser」を追加しました。まだ作成していない同じ識別子を持つグループで彼を定義しました。 ただし、必要に応じて、既存のユーザーグループに追加できます。 このユーザーには、「LPIチュートリアルテストユーザー」というコメントがあり、ホームディレクトリは「/ home / testuser」に設定され、シェルはセキュリティ上の理由から「/ bin / false」に設定されています。 テストアカウントを作成しなかった場合、コマンドシェルを「/ bin / bash」としてインストールします。 OK、ファイルを保存して終了します。
/ etc / shadowの編集
次に、このユーザーの
/ etc / shadowにエントリを追加する必要があります。 これを行うには、
vipw -sと入力します。 いつものように、
/ etc / shadowファイルが既に開いているお気に入りのエディターに迎えられます。 次に、既存のユーザーアカウント(パスワードがあり、レコードが標準のシステムアカウントエントリよりも長いもの)の行をコピーします。
drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0
コピーした行のユーザー名をユーザー名に置き換え、すべてのフィールド(特に古いパスワード)が必要に応じて設定されていることを確認します。
testuser:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0
保存して閉じます。
パスワード設定
コマンドラインに戻ります。 次に、新しいユーザーのパスワードを設定します。
# passwd testuser
Enter new UNIX password: (enter a password for testuser)
Retype new UNIX password: (enter testuser's new password again)
/ etc / groupの編集
これで
/ etc / passwdと
/ etc / shadowの準備が整いましたので、
/ etc / groupを適切に構成します。 これを行うには、次を入力します。
# vigr
/ etc / groupファイルが表示され、編集の準備ができています。 そのため、作成済みのユーザーを既存のグループに追加することを以前に決定した場合、
/ etc / groupsに新しいグループを作成する必要はありません。 そうでない場合は、このユーザーの新しいグループを追加する必要があります。次の行を入力します。
testuser:x:3000:
保存して閉じます。
ホームディレクトリを作成する
ほぼ完了です。 次のコマンドを実行して、テストユーザーのホームディレクトリを作成します。
# cd /home
# mkdir testuser
# chown testuser:testuser testuser
# chmod o-rwx testuser
ユーザーディレクトリが配置され、アカウントを使用する準備が整いました。 もうほぼ完了です。 このアカウントを使用する場合は、ユーザーがログインできるように、vipwを使用して起動シェルを
/ bin / bashに変更する必要があります。
アカウント管理ユーティリティ
新しいアカウントとグループを手動で追加する方法はすでにご存知です。次に、Linuxでアカウントを管理するためのさまざまな時間節約ユーティリティを見てみましょう。 いくつかの制限があるため、これらのコマンドを説明する多くの詳細は考慮しません。 覚えておいてください-マニュアルページを見ると、チームに関する詳細情報をいつでも入手できます。 LPIC 101試験を受験する予定がある場合は、これらの各チームに慣れるのにもっと時間をかける必要があります。
newgrp-デフォルトでは、ユーザーが作成するファイルはすべて、
/ etc / passwdで定義されている所属グループにすぐに割り当てられ
ます 。 ユーザーが他のグループに属している場合、newgrp thisgroupと入力して、このグループのメンバーになることができます。 次に、新しく作成されたファイルは、このグループメンバーシップを継承します。
chage -chageコマンドは、/ etc / shadowに保存されているパスワード有効期限設定を表示および変更するために使用されます。
gpasswd-基本的なグループ管理ユーティリティ
groupadd / groupdel / groupmod-/ etc / group内のグループを追加/削除/変更するために使用
useradd / userdel / usermod- / etc / passwdでユーザーを追加/削除/変更するために使用し
ます 。 これらのコマンドは、他の便利な機能を実行できます。 詳細については、manを参照してください。
pwconv / grpconv -
passwdおよび
groupの古いスタイルのファイルを新しいシャドウパスワードに変換するために使用されます。 実際、すべてのLinuxシステムはすでにシャドウパスワードを使用しているため、これらのコマンドを使用する必要はありません。
翻訳は、
notabenoid.comを使用して集合的な心によって実行されました。 次のbenoidユーザー(アルファベット順)に感謝します:
kindacute 、
nekjine 、
Rich 。 一連の翻訳全体の開始者である
VBartも同様です。
継続するには...
著者について
ダニエル・ロビンス 
Daniel Robbinsは、Gentooコミュニティの創設者であり、Gentoo Linuxオペレーティングシステムの作成者です。 ダニエルは妻のメアリーと元気な娘2人とニューメキシコに住んでいます。 彼は
Funtooの創設者兼代表でもあり、
IBM developerWorks 、Intel Developer Services、およびC / C ++ Users Journalの技術記事を数多く執筆しています。
クリス・ハウザー
クリスハウザーは、1994年にテイラー大学(米国インディアナ州)の管理者チームに参加し、コンピューターサイエンスと数学の学士号を取得して以来、UNIXの支持者でした。 その後、Webアプリケーション、ビデオ編集、UNIXドライバー、暗号化保護など、さまざまな分野で働きました。 現在、Sentry Data Systemsで働いています。 Chrisは、Gentoo LinuxやClojureなどの多くの無料プロジェクトにも貢献し、
The Joy of Clojureの共同執筆者でもあります。
アロン・グリフィス
Iron Griffisはボストンに住んでおり、過去10年間、Hewlett-PackardでTru64、Linux、Xen、およびKVM仮想化セキュリティ認証用のUNIXネットワークドライバー、そして最近では
HP ePrintプラットフォームなどのプロジェクトに従事しました。 プログラミングからの余暇には、自転車に乗ったり、ビットをジャグリングしたり、ボストンレッドソックスのプロ野球チームを応援したりしながら、プログラミングの問題を一掃することを好みます。