ユーザーの追加、削除、編集。 Linux のユーザーとグループ

20.06.2020 ルーターとモデム

ユーザー vivek を作成し、開発者グループに追加しましょう。 root ユーザーとしてログインします。

たとえば、ユーザーを追加してみましょう ヴィベク:

useradd -gユーザー -G 管理者、ftp、www、開発者 -s/bin/bash -pxxxx-d/home/ゴースト -m ヴィベク

  • -dホームディレクトリ
  • -s開始シェル (/bin/sh) を設定します。ファイル内で変更できます。 /etc/パスワード
  • -pパスワード
  • -gユーザーが割り当てられているプラ​​イマリ グループ (グループは存在する必要があります)
  • -Gユーザーが割り当てられている他のグループ
  • -mユーザーのホームディレクトリを作成する
  • xxxx 文字のユーザーパスワード

開発者グループが存在することを確認してみましょう。

# grep 開発者 /etc/group

グループがない場合は、次のコマンドを使用します グループ追加新しい開発者グループを作成するには:

コマンドを使用して ユーザーモッドユーザー vivek を開発者グループに追加します。

# adduser vivek 開発者 && newgrp 開発者

ユーザーが開発者グループに追加されていることを確認してください。

#イドヴィベク
出力:
uid=1122(vivek) gid=1125(vivek) グループ=1125(vivek),1124(開発者)

vivek ユーザーのパスワードを設定/変更します。

グループで遊ぼう

ユーザー vivek に開発者グループのみに参加するように伝えましょう

ユーザーモッド-G開発者ヴィベク

次のように入力して、ユーザー vivek に、admins、ftp、www、developers グループのみに参加するように指示しましょう。

# usermod -G 管理者、ftp、www、開発者 vivek

ユーザー vivek をいくつかのグループから削除してみましょう (グループを彼に再割り当てします)。

# usermod -G ftp,www vivek

現在、vivek は管理者グループと開発者グループに含まれていません。

注記:チーム ユーザーモッドユーザーが現在システムにログインしている場合、ユーザー名は変更されません。

ユーザーデル— ユーザーを削除する

たとえば、ユーザー vivek を削除します。

  • -rユーザーをホームディレクトリとともに削除します

詳細な構文

ユーザー追加 [-u 識別子[-o] [-i]] [-g グループ] [-G グループ[[、グループ]。 。 .]] [-d カタログ] [-s シェル] [-c コメント] [-m [-k skel_dir]] [-f 非活性] [-e 期限切れ] [-p パスジェン] [-a イベント[, . . .]] reg_name

詳細な説明

電話 ユーザー追加通常、新しいユーザー エントリをシステム データ ファイルに追加します。 身元確認と本人確認(識別と認証 - I&A)。 例外はユーザーです ネットワーク情報サービス(Network Information Service、略して NIS)。 また、ユーザーの追加グループのメンバーシップを指定することもできます (オプション) -G) 開始ディレクトリを作成します (オプション) -m)。 コマンドが実行されるまで、新しいログインはブロックされます パスワード.

インストール直後は、各種パラメータの標準値がファイルに記載されています /etc/default/useradd。 デフォルト値が必要な以下のオプションのデフォルト値は、次のコマンドを使用して変更できます。 デファダム.

このコマンドで作成されるシステム ファイル エントリの長さは、1 行あたり 512 文字に制限されています。 複数のオプションに長い引数が指定されている場合、この制限に違反する可能性があります。

次のオプションがサポートされています。

-u 識別子 ユーザー識別番号 (UID)。 この数値は、以下の負でない整数でなければなりません。 マクスイドで定義されています。 sys/param.h。 デフォルトは、99 より大きい、次に使用可能な (一意の) 非レガシー UID です。新しいログインがネットワーク情報サービス (NIS) によって管理される場合、このオプションは無視されます。 詳細については、以下の「ネットワーク情報サービスの登録名」セクションを参照してください。
-o このオプションを使用すると、UID を複製する (一意でなくなる) ことができます。 システム全体と完全性を保護するため、 監査証跡(監査証跡)および 会計情報(アカウンティング情報) は特に、各 UID と特定の個人との一意の対応に依存するため、このオプションの使用は推奨されません (ユーザーのアクションが確実に考慮されるようにするため)。
-私 従来の UID の使用を許可します。
-gグループ 既存のグループの整数の識別子またはシンボル名。 このオプションで指定するのは、 コアグループ(プライマリ グループ) 新しいユーザーの場合。 デフォルトでは、ファイルで指定された標準グループが使用されます。 /etc/default/useradd
-G グループ[[,グループ] 。 。 。] コンマ区切りリスト内の 1 つ以上の要素。各要素は、既存のグループの整数識別子またはシンボル名を表します。 このリストは以下を定義します 追加グループのメンバーシップユーザーの (補助的なグループ メンバーシップ)。 繰り返しは無視されます。 リスト内の要素の数は以下を超えてはなりません NGROUPS_MAX- 1、ユーザーの追加グループとメイン グループの合計数が超えてはいけないため NGROUPS_MAX。 新しいログインがネットワーク情報サービス (NIS) によって管理される場合、このオプションは無視されます。 下記の「ネットワーク情報サービスの登録名」を参照してください。
-d ディレクトリ 開始ディレクトリ新しいユーザーの (ホーム ディレクトリ)。 このフィールドの長さは 256 文字を超えてはなりません。 デフォルトは HOMEDIR/reg_name、 どこ ホームディレクトリ- 新しいユーザーの初期ディレクトリのベース ディレクトリ、および reg_name- 新しいユーザーの登録名。
-s シェル 登録直後にユーザーの初期シェルとして使用されるプログラムへのフルパス。 このフィールドの長さは 256 文字を超えてはなりません。 デフォルトでは、このフィールドは空であり、システムは標準のコマンド インタープリタを使用するように強制されます。 /usr/bin/sh。 価値観としては シェル既存の実行可能ファイルを指定する必要があります。
-c コメント 任意のテキスト文字列。 通常、これはログイン名の短い説明であり、現在は実際のユーザーの姓と名を示すために使用されています。 この情報はファイル内のユーザー レコードに保存されます /etc/パスワード。 このフィールドの長さは 128 文字を超えてはなりません。
-m 新しいユーザーのホーム ディレクトリが存在しない場合は作成します。 ディレクトリがすでに存在する場合、追加されるユーザーは、指定されたディレクトリにアクセスする権限を持っている必要があります。
-k skel_dir ディレクトリの内容をコピーします skel_dir標準の「スケルトン」ディレクトリの内容ではなく、新しいユーザーのホーム ディレクトリに、 /etc/スケル。 カタログ skel_dir存在しなければなりません。 標準の「スケルトン」ディレクトリには、ユーザーの作業環境を定義する標準ファイルが含まれています。 管理者が指定したディレクトリ skel_dir特定の目的のために作成された同様のファイルやディレクトリが含まれる場合があります。
-f 非アクティブ 登録名がすでに無効であると宣言されるまでに、登録名を使用するまでに許容される最大日数。 通常、値は正の整数です。
-e 有効期限が切れる 登録名が使用できなくなる日付。 この日以降、ユーザーはこのログインでアクセスできなくなります。 (このオプションは、一時的なログインを作成する場合に便利です。) 引数値を入力します。 期限切れ(日付を表す) は任意の形式にすることができます (ユリウス日を除く)。 たとえば、10/6/99 または 1999 年 10 月 6 日と入力できます。
-p パスジェン ファイル内の FLAG フィールドが /etc/shadow指定された値に設定する必要があります。 このフィールドには次のコマンドでアクセスします。 パスワードパスワード ジェネレーターが特定のユーザーに対して有効かどうかを判断します。 オプションの場合 -p明示的に指定されていない場合、エントリがチェックされます 強制パスファイル内 /etc/default/useraddの対応するフィールドの値を決定します。 /etc/shadow。 レコードの場合 強制パス入ってない /etc/default/useraddのエントリの対応するフィールドに、 /etc/shadow関係ないでしょう。 値が 強制パス 1に等しい、入力 /etc/shadow値 1 を取得します。値が パスジェンが空でなく、印刷可能な ASCII 文字でもない場合は、診断メッセージが発行されます。
-イベント イベント タイプまたはクラスのリストをカンマで区切って形成します。 監査マスクユーザーの (監査マスク)。 システムのインストール直後には、ユーザーの標準監査マスクはありませんが、ファイルで設定できます。 /etc/default/useraddコマンドを使用して デファダム。 このオプションは、監査ユーティリティがインストールされている場合にのみ使用できます。 (システムにどのようなパッケージがインストールされているかを確認するには、次のコマンドを実行します) パッケージ情報.)
reg_name 新しいユーザーのログイン名を指定する印刷可能な文字列。 コロン ( : )および改行文字( \n)。 また、大文字で始めることもできません。

上で説明したパラメータのデフォルト値の多くは、次のコマンドを使用して変更できることに注意してください。 デファダム、ファイルを操作するように設計されています /etc/default/useradd。 これらのデフォルト値はローカル ユーザーにのみ適用されます。 NIS ユーザーの場合、デフォルト値は Network Information Service データベースに設定されます。 NIS のデフォルトを変更するには、コマンド ラインでオプションを指定する必要があります。

ネットワーク情報サービス登録名

ログイン名が次の文字で始まる場合 + 、 (例えば、 +クリス)、ユーザー定義はネットワーク情報サービス (NIS) によって管理されます。 デフォルト値は、ファイルではなく NIS データベースに基づいて決定されます。 /etc/defaults/useradd。 オプションの引数の値 -u, -gそして -Gこれらのオプションが指定されている場合は、暗黙的に無視されます。 代わりに、ユーザー ID とグループ ID の値は NIS データベースから取得されます。 詳細についてはヘルプページを参照してください。 パスワード。 NIS ユーザーを追加する場合、ログインが NIS データベースにすでに存在している必要があることに注意してください。 たとえば、ログイン名を追加するには クリス NIS ユーザー名として、 クリス NIS データベースにすでに存在している必要があります。 それなら電話する必要があります ユーザー追加登録名付き +クリスユーザーを追加する必要があることを示す クリスローカル ユーザーとしてではなく、NIS ユーザーとして。

ファイル

/etc/default/useradd
/etc/グループ
/etc/パスワード
/etc/security/ia/ageduid
/etc/セキュリティ/ia/監査(監査ユーティリティがインストールされている場合)
/etc/セキュリティ/ia/index
/etc/セキュリティ/ia/マスター
/etc/shadow
/etc/スケル

診断

チーム ユーザー追加成功した場合は戻りコード 0 で終了します。 エラーが発生した場合、次のメッセージが表示される場合があります。


無効なコマンドライン構文です。
コマンドライン構文が無効でした。
オプションに無効な引数が指定されました。
オプションに無効な引数が指定されました。
-u オプションで指定された識別子はすでに使用されていますが、-o オプションが指定されていません。
-u オプションで指定された uid はすでに使用されており、-o オプションが指定されていません。
-gオプションで指定したグループが存在しません。
-gオプションで指定したグループが存在しません。
指定されたログイン名は一意ではありません。
指定されたログインは一意ではありません。
/etc/groupの変更に失敗しました。 ログインは /etc/passwd ファイルに追加されますが、/etc/group ファイルには追加されません。
/etc/group を更新できません。 ログインは /etc/passwd ファイルに追加されましたが、/etc/group ファイルには追加されませんでした。
開始ディレクトリを作成できなかったか (-m オプションを使用)、skel_dir を開始ディレクトリにコピーできませんでした。
ホーム ディレクトリを作成できない (-m オプションを使用)、またはホーム ディレクトリへの skel_dir のコピーを完了できません。
ID が十分に古くありません。 ほかを選ぶ。
液体が十分に熟成されていません。 ほかを選ぶ。
無効な -a オプションが指定されました。 システムサービスがインストールされていません。
無効なオプション -a が指定されました。 システムサービスがインストールされていません。
指定された監査イベントのタイプまたはクラスが無効です。
無効な監査イベント タイプまたはクラス イベントが指定されました。

Linux オペレーティング システムにおけるアクセス権の分配の基礎は、ユーザーの概念に基づいています。 ファイルを所有するユーザーには、ファイルを操作するための特定の権限、つまり読み取り、書き込み、実行が与えられます。 読み取り、書き込み、および実行の権限も、他のすべてのユーザーに対して個別に設定されます。 Linux ではすべてがファイルであるため、このようなシステムでは、ファイル アクセス権を設定することによって、このオペレーティング システム内のあらゆるアクションへのアクセスを規制できます。 しかし、Linux を作成するときでさえ、開発者はこれでは明らかに十分ではないことに気づきました。

それがユーザーグループが発明された理由です。 ユーザーはグループに団結して、特定のファイルにアクセスするために必要な権限をグループに付与し、それに応じてアクションを与えることができます。 この記事では、Linux のユーザー グループについて説明し、ユーザー グループが必要な理由、ユーザーをグループに追加してグループを管理する方法について説明します。

すでに述べたように、Linux のグループは、このオペレーティング システムの開発の初期に登場しました。 これらは、権利管理機能を強化するために設計されました。 小さな例を見てみましょう。コンピュータが 1 台だけあり、管理者とユーザーがいる組織を考えてみましょう。 各人は私たちのコンピュータ上に自分のアカウントを持っています。 管理者はシステムをカスタマイズできますが、何かを壊さないようにユーザーに自由にさせない方が賢明です。 したがって、管理者は admin グループにまとめられ、すべての機器、実際には dev ディレクトリ内のすべてのファイルへのアクセスが与えられ、ユーザーは users グループにまとめられ、このグループには読み取りと書き込みの権限が与えられます。ファイルを共通のディレクトリに保存すると、作業結果を共有できます。 各ユーザーに個別に権限を割り当てて、特定のファイルへのアクセスを許可することもできますが、これはあまりにも不便です。 だからこそグループが発明されたのです。 大丈夫です、指名してもいいですか? さて、ここでユーザーがプロセスであると想像してください。 ここでグループの利点が前面に出ます。グループは、ユーザーにアクセスを提供するためではなく、プログラムの権限、特にハードウェアへのアクセスを管理するために使用されます。 サービスとそのサービスを起動するユーザーに対して個別のグループが作成されます。サービスは複数のグループのメンバーになることができ、これによりサービスは特定のリソースにアクセスできるようになります。

次に、Linux グループを表示する方法を見てみましょう。

Linux のグループ

システム上で作成されたすべてのグループは、/etc/group ファイルにあります。 このファイルの内容を確認すると、システム上にすでに存在する Linux グループのリストを見つけることができます。 そしてあなたは驚かれるでしょう。

標準のルートとユーザーに加えて、ここにはさらに数十のグループがあります。 これらは、共有リソースへのプログラムのアクセスを制御するためにプログラムによって作成されるグループです。 各グループは、システム上の特定のファイルまたはディレクトリの読み取りまたは書き込みを許可し、それによってユーザーの権限を規制し、そのユーザーとして実行されるプロセスを規制します。 ここでは、プロセスは起動元のユーザーのすべての権限を持っているため、ユーザーはプロセスと同じであると考えることができます。

なぜそれらが必要なのかをよりよく理解するために、各グループを詳しく見てみましょう。

  • デーモン- ファイルをディスクに書き込む機能が必要なサービスは、このグループとデーモン ユーザーに代わって起動されます。
  • システム- このグループは、カーネル ソースへのアクセスを提供し、システムに保存されているファイルをインクルードします。
  • 同期する- /bin/sync コマンドを実行できます。
  • ゲーム- ゲームが設定ファイルと履歴を特定のフォルダーに書き込むことを許可します
  • - /var/cache/man ディレクトリにページを追加できます。
  • LP- パラレルポートデバイスの使用を許可します
  • 郵便- メールボックス /var/mail/ にデータを書き込むことができます。
  • プロキシ- プロキシサーバーによって使用され、ディスクにファイルを書き込むためのアクセスはありません
  • www-データ- Web サーバーはこのグループで起動し、Web ドキュメント ファイルが配置されている /var/www エントリへのアクセスを許可します。
  • リスト- /var/mail 内のメッセージを表示できます
  • グループなし- ハードドライブ上にファイルを作成できないが、ファイルを読み取るだけのプロセスに使用され、通常はnobodyユーザーと組み合わせて使用​​されます。
  • 管理者- /var/log ディレクトリからログを読み取ることができます。
  • てぃ- すべての /dev/vca デバイスは、このグループのユーザーに読み取りおよび書き込みアクセスを許可します
  • ディスク- ハードドライブ /dev/sd* /dev/hd* へのアクセスを開きます。これは root アクセスに似ていると言えます。
  • ダイヤルアウト- シリアルポートへのフルアクセス
  • のCD-ROM- CD-ROMへのアクセス
  • 車輪- sudo ユーティリティを実行して権限を昇格できます。
  • オーディオ- オーディオドライバーの管理
  • 送信元- /usr/src/ ディレクトリ内のソースへのフルアクセス
  • - /etc/shadow ファイルの読み取りを許可します
  • utmp- ファイル /var/log/utmp /var/log/wtmp への書き込みを許可します
  • ビデオ- ビデオドライバーを操作できるようにします
  • プラグ開発- USB、CDなどの外部デバイスをマウントできます。
  • スタッフ- /usr/local フォルダーへの書き込みを許可します

Linux でグループを使用する理由とデフォルトの内容がわかったので、次に LINux グループの管理について見てみましょう。

Linuxグループ管理

グラフィカル インターフェイスを使用してグループを管理することもできます。 KDE には、このために特別に設計された Kuser と呼ばれるプログラムがあり、Gnome ではシステム設定を使用して実行されます。 さらに、一般的なディストリビューションには、OpenSUSE の YaST や Ubuntu 設定などの別のツールがあります。 しかし、グラフィカルインターフェースを見れば分かると思います。 そして、ターミナルを介した Linux グループの管理について見ていきます。 まずファイルを扱い、その後でユーザーを扱いましょう。

ファイルが作成されると、ファイルを作成したユーザーのプライマリ グループが割り当てられます。 それは次のようなものです。

ここで、すべてのフォルダーの所有者が sergiy であり、グループも sergiy であることがわかります。 そうですね、これらのユーザーは私が作成したものです。 しかし、さらに進んでみましょう:

ここでは、sd* ディスク デバイスがディスク グループに割り当てられていることがわかります。これは、このグループに属するユーザーがそれらのデバイスにアクセスできることを意味します。 または別の例:

すべては前の段落で説明したとおりです。 ただし、これらのグループはシステムによって設定できるだけでなく、自分でファイル グループを手動で変更することもできます。そのためには chgrp コマンドがあります。

chgrp グループ名 ファイル名

たとえば、ファイル テストを作成してみましょう。

そして、そのグループを変更しましょう。

Linux グループを作成したい場合は、newgrp コマンドを使用して作成できます。

sudo groupaddテスト

ユーザーの状況はもう少し複雑です。 ユーザーには、作成時に指定されたメイン グループと、いくつかの追加グループがあります。 メイン グループは通常のグループとは異なり、ユーザーのホーム ディレクトリ内のすべてのファイルがこのグループを持ち、これが変更されると、これらのディレクトリのグループも変更されます。 また、ユーザーが作成したすべてのファイルはこのグループを受け取ります。 Linux でユーザーをこれらのグループに追加することで、さまざまなリソースにアクセスできるようにするには、追加のグループが必要です。

ユーザーの Linux グループの管理は、usermod コマンドを使用して行われます。 その構文とオプションを見てみましょう。

$usermod オプション ユーザー名

  • -G- ユーザーを追加する必要がある追加のグループ
  • -gユーザーのプライマリグループを変更する
  • -Rユーザーをグループから削除します。

usermod コマンドを使用して、ユーザーをグループに追加できます。

sudo usermod -G -a group_name ユーザー名

newgrp コマンドを使用して、Linux グループにユーザーを一時的に追加できます。 新しいシェルが開き、その中でユーザーは必要な権限を持ちますが、閉じるとすべてが元の状態に戻ります。

sudo newgrp グループ名

例として、sudo コマンドを使用せずにハードドライブに直接アクセスできるように、ユーザーをディスク グループに追加してみましょう。

sudo usermod -G -a ディスクセルギ

これで、sudo コマンドを使用せずにディスクをマウントできるようになりました。

マウント /dev/sda1 /mnt

次のコマンドを使用して、ユーザーがメンバーとなっている Linux グループを表示できます。

id コマンドを使用することもできます。 最初のケースでは、単純に Linux グループのリストが表示されます。2 番目のケースでは、グループとユーザー ID が追加で示されます。 Linux グループにユーザーを追加するには、プライマリ グループに -g オプションを使用します。

OS オペレーティング システム、ソフトウェア、コンテンツ管理システム (CMS) など、マルチユーザー アクセスを提供するシステムでは、ユーザー (アカウント、ユーザー構成、ホーム ディレクトリなど) を確実に管理するためのツールを用意することが非常に重要です。 )。ユーザー アクセス自体の整理と管理にも使用されます。 このような場合、ユーザー (より正確にはアカウント) の有能かつ思慮深い管理が、セキュリティ、安定性、そして結果としてシステム全体の信頼性を左右する重要な側面となります。 最新の Linux ディストリビューションには、明確なグラフィカル ユーザー インターフェイス (GUI) を備えた自動化されたユーザー管理システムが搭載されており、ユーザーの管理やアカウントの構成のための日常的な (実際にはそうなのですが) アクティビティを迅速かつ便利に実行できます。 ただし、ユーザー管理中にシステム自体で実際にどのようなプロセスや変更がどのように発生するかを知り、理解することが非常に重要です。

Linux でのユーザーの追加

John という名前の新しいユーザーをシステムに追加するには、次のコマンドを実行するだけです。

$sudo useradd ジョン

これにより、/etc/passwd ファイルに次のエントリが作成されます。

ジョン:x:535:20: :/home/john:/bin/sh

しかし、チームは、 ユーザー追加たとえば、次のような可能性がはるかに大きくなります。

$ sudo useradd -c "ジョン シルバー" -d /home/pirates/john -g パイレーツ -G ジョン -m -s /bin/bash john

このコマンドは、フルネーム「John Silver」、ログイン名「john」を持つユーザーをシステムに追加します。 彼をメイン グループ「pirates」に含めると、別の追加グループ「john」にも追加され、/home/pirates/john にホーム ディレクトリが割り当てられます。 その結果、/etc/passwd ファイル内の対応するエントリは次のようになります。

ジョン:x:535:30:ジョン シルバー:/home/pirates/john:/bin/bash

チーム ユーザー追加ユーザーのホーム ディレクトリがまだ作成されていない場合は、自動的に作成されます。 また、A は /etc/skel/ からそこにファイルをコピーします。

パラメータの完全なリスト ユーザー追加

使用法: useradd [オプション] USER
useradd -D
useradd -D [オプション]

オプション:
-b, --base-dir BAZ_KAT の新しいホーム ディレクトリのベース ディレクトリ
アカウント
-c, --comment 新しいアカウントの COMMENT フィールド GECOS
-d, --home-dir 新しいアカウントの DOM_KAT ホーム ディレクトリ
-D、 --defaults 設定を表示または変更します
useradd のデフォルト
-e, --expiredate DATE_STATE 新しいアカウントの有効期限
-f, -inactive INACTIVITY 新しいアカウントのパスワードの非アクティブ期間
-g、 --gid 新しいグループのプライマリ グループの GROUP 名または ID
アカウント
-G、 --groups GROUPS 新しいグループの追加グループのリスト
アカウント
-k、 --skel CAB_SHAB テンプレートのある代替ディレクトリを使用します
-K, --key KEY=VALUE デフォルト値を置き換えます
/etc/login.defs から
-l、 --no-log-init は、ユーザーを lastlog データベースに追加しません。
失敗ログ
-m、 --create-home ユーザーのホーム ディレクトリを作成します。
-M、 --no-create-home はユーザーのホーム ディレクトリを作成しません。
-N、 --no-user-group は、と同じ名前のグループを作成しません。
ユーザー
-o、 --non unique では、次のようなユーザーの作成が許可されます。
繰り返される (一意ではない) UID
-p、 --password PASSWORD 新しいアカウントの暗号化されたパスワード
-r、 --system システム アカウントを作成します。
-R
-s, --shell 新しいシェルの SHELL 登録シェル
アカウント
-u, --uid 新しいアカウントの UID ユーザー ID
-U, --user-group と同じ名前のグループを作成します。
ユーザー
-Z, --selinux-user SEUSER は、指定された SEUSER を使用します。
SELinuxカスタムマッピング

ホームディレクトリの作成とユーザーへの割り当て

通常、ホーム ディレクトリは、ユーザーがシステムに追加されると自動的に作成されます。 しかし、何らかの理由でホームディレクトリが作成されない場合があります。 そしてそれを作成する必要があります。 ユーザーのホーム ディレクトリを作成するには、標準の mkdir コマンドを使用します。 この後、(ユーザーの作業環境を整理するために) 必要な構成スクリプトをホーム ディレクトリにコピーし、chown および chmod コマンドを使用して、ディレクトリとその内容に対する所有者およびアクセス モードを設定する必要があります。 これは、すべての構成ファイルがターゲット ディレクトリにコピーされた後に行うのが最適です。 例えば:

$ mkdir /home/john/ $ cd /etc/skel/ $ cp -Rp 。 /home/john/ $ chown -R john:john /home/john/ $ chmod -R 644 /home/john/ $ find /home/john/ -type d -exec chmod 755 () \;

ご覧のとおり、構成ファイルは /etc/skel/ ディレクトリからコピーされました。ここには起動構成の例が保存されており、必要に応じて編集できます。 ちなみに、/etc/skel/ ディレクトリのファイルを変更したコピーは、usr/local/etc/skel ディレクトリに保存する必要があります。 ホーム ディレクトリの所有者を設定するときは、(chown コマンドを不用意に使用した場合に) ユーザーが疑似ディレクトリ ".."、つまり 1 つ上のディレクトリ レベルの所有者にならないように注意する必要があります。これは多くの場合 /home ディレクトリですが、セキュリティ上の理由からこれは受け入れられません。

ユーザーのパスワードを作成する

セキュリティ上の理由から、アカウントには強力なパスワードが必要です。 ユーザー アカウントを作成した直後に設定する必要があります。

$ sudo パスワード 新しいユーザーの名前

たとえば、ユーザー jonh の場合は次のようになります。

$ sudo passwd john 新しいパスワード: 新しいパスワードを再入力します: passwd: すべての認証データが正常に更新されました。

アカウント認証

アカウントにログインするための詳細と初期パスワードを新しいユーザーに転送する前に、検証する必要があります。 これを行うには、現在のセッションを終了する必要があります。 そして、新しいユーザー (アカウントを確認する必要があります) の名前でログインします。 そして、次のコマンドを順番に実行します。

$ pwd $ ls -al

1 つ目は現在のユーザーのホーム ディレクトリを表示し、2 つ目はホーム ディレクトリ内のすべての (隠しファイルを含む) ファイルとサブディレクトリのリストを表示し、それらの所有者とアクセス モードを示します。

アカウント管理

前述したように、Linux システムでユーザーを管理するには、アカウント (ユーザー) を追加、編集、削除するための特殊なユーティリティのセットがあります。 useradd、usermod、userdel。 最終目標を達成するために、指定されたアクションの順序に従います。たとえば、新しいユーザーを追加する場合、コマンド ユーザー追加したがって、上記の「一連のアクティビティ」全体が生成されます。 これらの各ユーティリティは、構成ファイルを使用して柔軟に構成できます。ちなみに、構成ファイルは Linux ディストリビューション開発者によって非常に積極的に使用されています。 結局のところ、これらのユーティリティは基本的には同じですが、Linux システムが異なると、その操作は若干異なります。 以下の表は、例としてユーティリティを使用して、一部のシステムのユーザーを管理するためのコマンドと構成ファイルを示しています。 ユーザー追加:

システム チーム 設定ファイル コメント
Ubuntu ユーザー追加 /etc/login.defs
ユーザーを追加する /etc/default/useradd Perlのバージョン
/etc/adduser.conf
SUSE ユーザー追加 /etc/login.defs
/etc/default/useradd
/etc/default/passwd
/usr/sbin/useradd.local ローカル設定
/usr/sbin/userdel.local ローカル設定
/usr/sbin/userdel-pre.local ローカル設定
/usr/sbin/userdel-post.local ローカル設定
レッドハット ユーザー追加 /etc/login.defs
/etc/default/useradd
ソラリス ユーザー追加 /etc/default/(ログイン,パスワード)
/etc/security/policy.conf

ユーザーの削除

システムからユーザーを削除するには、userdel コマンドを使用します。たとえば、次のコマンドがあります。

ユーザーデル・ジョン

ユーザー john を削除しますが、頻繁に (コマンドのように) ユーザー追加ちなみに)「純粋な」形式ではなく、アカウント削除スクリプトを使用した Perl シェルの形式です。 たとえば、Ubuntu ディストリビューションでは、一般的な Perl スクリプトである deluser コマンドが使用されます。 次に、userdel コマンド自体を呼び出して、そのコマンドによって以前に実行されたすべての作業を削除およびクリーンアップします。 ユーザー追加。 この場合、スクリプト ファイルが使用されます (通常、Ubuntu では /etc/deluser.conf ファイル、RedHat では /etc/login.defs ファイル)。 これにより、userdel コマンドに次のオプションを設定できるようになります。

使用法: userdel [オプション] USER

オプション:
-f, --force ユーザーとファイルが現在使用中の場合でも強制的に削除します。
-r、 --remove ホーム ディレクトリとメールボックスを削除します
-R, --root chroot 先の CAT_CHROOT ディレクトリ
-Z、 --selinux-user すべてのユーザー マッピングを削除します
ユーザー向けSELinux

ファイル /etc/passwd – ローカルアカウントの説明

システムが自動ディレクトリ管理サービス (LDAP、NIS など) を使用しない場合、/etc/passwd ファイルは、システムが認識しているユーザー アカウントに関する情報を保存するファイルです。 システムは、ユーザーが認証を試みるたびにこのファイルにアクセスし、必要なユーザー ID を検索し、ユーザーのホーム ディレクトリを特定します。 このファイルの形式は、ファイル内の各行が 1 人の特定のユーザー (アカウント) に対応し、アカウントの属性 (フィールド) をコロンで区切って (1 行に) リストします。

  1. ユーザー名。
  2. ユーザーパスワード (暗号化) または「プレースホルダー」パスワード。
  3. ユーザーID。
  4. ユーザーグループID (デフォルト)。
  5. GECOS 情報 - 氏名、勤務先、電話番号など。
  6. ホームディレクトリ。
  7. 登録シェル。

/etc/passwd ファイルの内容は次のようになります。 ご覧のとおり、すべてのエントリの 2 番目のフィールドには、パスワードのプレースホルダーである「x」が含まれています。 Linux システムでは、暗号化されたパスワードは /etc/shadow ファイルに個別に保存されます。 自動ディレクトリ管理サービスを /etc/passwd ファイルと組み合わせて使用​​する場合、同じファイルに「+」文字で始まるエントリが含まれます。 これらのエントリは、ディレクトリ管理サービスをシステムに統合するための手順を提供します。 アカウントフィールドをざっと見てみる価値があります。

  • ユーザー名またはログイン名- 特定のシステムの登録名を構築するための規則に従ってコンパイルする必要がある一意の名前。 Linux の場合、ログイン名は最大 32 文字です。 小文字と数字のみを使用できます。 登録名は文字で始まる必要があります。
  • 暗号化されたパスワード- すでに述べたように、ローカル アカウントのパスワードは暗号化された形式で /etc/shadow に保存されます。 Linux では、crypt、MD5、および Blowfish アルゴリズムがパスワードを暗号化するための暗号化ツールとして使用されます。 パスワードの長さは最小 5 文字、最大 8 文字です。
  • ユーザーIDシステムが個々のユーザーを「認識」するための符号なし整数であるため、ユーザー識別子はシステムとソフトウェア環境によって使用され、ユーザー名はシステム内でのユーザーの表示を明確にし、容易にするために使用されます。 ID 番号 0 は root ユーザー用に予約されており、bin やデーモンなどの「未確認」ユーザーがシステム内に多数存在する可能性があるため、500 以降の ID を実際のユーザーに割り当てることも推奨されます。これにより、ユーザーのリストが保持されます。ユーザーを順番に整理し、混乱を避けてください。 Linux システムでは、-1 または -2 の識別子を持つ擬似ユーザー none も提供します。 通常、この擬似ユーザーは、システムのスーパーユーザーが、元のコンピューターを信頼していない別のコンピューターからマウントされたファイルにアクセスしようとするときに使用されます。
  • グループID- システム内の一意のユーザー グループを指定することを目的とした、ユーザー識別子に似た符号なし整数。 グループ番号 0 はルート グループ用に予約されています。 グループは主にファイルの便利な管理と共有のために使用されます。 ユーザー ID と同様に、システムは、システム自体が使用するためにグループ (bin など) を予約します。
  • 分野ゲコス– 明確に定義された仕様を持たない情報。ユーザーに関する追加データ(フルネーム、電話番号、役職や部署に関する情報など)が反映されます。このフィールドの情報は、chfn コマンドを使用して変更できます。
  • ホームディレクトリ- 特定のユーザーのデータを保存するために予約されているファイル システム ツリー内の「場所」。 セキュリティ上の理由から、このディレクトリには、このディレクトリを所有するユーザーのみがアクセスできるようにする必要があります。 登録時にホーム ディレクトリがない場合、ユーザー データは / ディレクトリに配置されます。 また、デフォルトのホームディレクトリを指定する/etc/login.defsファイルのDEFAULT_HOMEオプションがnoに設定されている場合、ユーザーの認可/登録はできません。
  • 登録シェル- コマンド インタープリタ (またはその他のプログラム) のコマンド シェル。ユーザーが自分のアカウントにログインすると起動されます。 Linuxの場合はインタープリタが使用されます

ファイル /etc/group – ユーザーグループの作成と削除

Linux で新しいグループを追加するには、次のコマンドを使用します。

$groupadd グループ名

ここで、group_name は新しいグループの名前です。 このコマンドは、/etc/group ファイルに新しいエントリを作成します。

このファイルの形式は /etc/passwd と同じです。 /etc/group ファイルの内容の例:
ご覧のとおり、各行には 4 つのフィールドが含まれています。

  1. グループ名。
  2. 暗号化されたパスワードまたはパスワードのプレースホルダー。
  3. 一意のグループ識別子。
  4. このグループに含まれるユーザーのリスト。スペースを含まず、カンマで区切られたユーザー名が含まれます。

ここで興味深いのはパスワードフィールドです。 グループ パスワードの目的は、ユーザーが newgrp コマンドを使用してグループに参加できるようにすることです。 グループ自体のパスワードは gpasswd コマンドによって設定され、その後暗号化された形式で /etc/gshadow ファイルに保存されます。 ただし、グループのパスワードが使用されることはほとんどないことに注意してください。 システム管理者は、/etc/passwd ファイルと /etc/group ファイルの内容を監視し、それらを相互に調整する必要があります。これは、ユーザーが /etc/passwd ファイルおよび同じユーザーの /etc/group ファイル内でもアナウンスはありません。 この場合、ユーザーはグループのメンバーとみなされますが、両方のファイルの内容が一貫していることを強くお勧めします。

Linux ディストリビューション (SUSE を除く) のデフォルトでは、ユーザー (ユーティリティ ユーザー追加) 同じ名前の彼のグループが作成され、彼はすぐにそこに組み込まれます。 これは、異なるユーザーが互いのファイルにアクセスする可能性を可能な限り排除するために提供されています。

次のコマンドを使用してユーザー グループを削除できます。

$groupdel グループ名

このコマンドは、/etc/group からエントリを削除します。

ファイル /etc/shadow – パスワードを保存する

別の /etc/shadow ファイルは、隠しパスワードまたはシャドウ パスワードを保存するために使用されます。 スーパーユーザーのみがアクセスできます。 /etc/shadow ファイルと /etc/passwd ファイルは概念的には関連していますが、システム レベルでは実際にはそれらの間に相互作用がないことにも注意してください。 ただし、シャドウ内のログイン名を含むフィールドは passwd から取得されます。 それらの。 シャドウを変更する場合、その変更は passwd に自動的に反映されません。これらのファイルは個別に保存され、システムによって互いに独立して処理されます。 /etc/shadow の形式は /etc/passwd に似ており、各行には次のフィールドが含まれます。

  1. 登録名。
  2. パスワードは暗号化されています。
  3. パスワードが最後に変更された日付。
  4. パスワード変更間の最小日数。
  5. パスワード変更間の最大日数。
  6. パスワード有効期限メッセージが発行されるまでの日数。
  7. アカウントが自動的にキャンセルされるまでの日数 (パスワードの有効期限が切れた後)。
  8. アカウントの有効期間。
  9. 予約済みフィールド。

/etc/shadow ファイルのエントリは次のようになります。

ジョン:$md5$em5JhGE$a$iQhgS70sakdRaRFyy7Ppj。 :14469:0:180:14: : :


最初の 2 つのフィールドは必須であることに注意してください。 日付フィールドの形式は、1970 年 1 月 1 日から経過した日数に対応します。 すでに述べたように、登録名フィールドには、/etc/passwd ファイルの対応する値が入力されます。 Linux では、7 番目のフィールドには、パスワードの有効期限が切れてからアカウントが自動的に無効になるまでの期間 (日数) を決定する値が含まれます。 この解釈は、Solaris および HP-UX システムで使用される解釈とは異なります。 8 番目のフィールドでは、usermod コマンドを yyyy-mm-hh 形式で使用して、アカウントの有効期限を設定できます。

エラーを見つけた場合は、テキストを強調表示してクリックしてください。 Ctrl+Enter.