13. ユーザー管理 

   13−1  ユーザー・グループ
   13−2  ユーザー管理
   13−3  グループ管理
   13−4  アクセス制限
   13−5  バッチ処理



13−1  ユーザー・グループ

Windowsパソコンの世界でも、Windows2000/XP から「ユーザー」という概念が重要になりました。 コンピュータを使うには、特定のユーザーとしてログオンする必要があり、 そのユーザーアカウントに与えられた権限の範囲での操作のみが許可されます。
ユーザーアカウントの権限は通常、そのアカウントを特定の「グループ」に所属させ、 グループに設定された権限の適用を受ける形で設定されます。
Windows2000/XP に標準で用意されているユーザーグループには、 例えば以下のようなものがあります。
  • Administrators /管理者
    システム全体に対して全てアクセス、変更ができます。
  • Power Users /標準ユーザー
    システムの本質に影響を与えない範囲の操作はできますが、
    他のユーザーのファイルを読み書きすることはできません。
  • Users /制限ユーザー
    自分で作ったファイルやフォルダなら自由に読み書きできます。
    システム設定の変更、ソフト・デバイスのインストールなどはできません。
ソフトウェアやデバイスドライバの多くが、制限ユーザーではインストールできません。 「管理者権限を持ったユーザーでログオンして下さい」というメッセージに出くわした人も 多いと思います。
WindowsXP のうち Home Edition でユーザーアカウントを作成すると、 「管理者」「制限ユーザー」のいずれかしか選択できません。


13−2  ユーザー管理

ユーザーアカウントの新規作成/無効化/削除等には、通常はGUIで
Win2K=[スタート]-[設定(S)]-[コントロールパネル(C)]-[ユーザーとパスワード]
WinXP=[スタート]-[コントロールパネル(C)]-[ユーザアカウント]
というメニューをたどって処理するのですが、これをCUIのコマンドラインから行うことができます。 ユーザーの追加/削除を行うには、当然のことながら管理者(Administrators)権限が必要です。

NET USER   (ユーザー一覧を表示します)
NET USER ユーザー名 (ユーザーアカウントの情報を表示します)
NET USER ユーザー名 /active:{no|yes} (ユーザーを無効|有効化)
NET USER ユーザー名 パスワード /add (ユーザーアカウントを作成)
NET USER ユーザー名 /delete (ユーザーアカウントを削除)

 ◆ Windows2000 の例です ◆

 C:\>net user  ← ユーザー一覧を表示

 \\ZACOSPC のユーザー アカウント  

 ---------------------------------------------------------
 Administrator          Guest                  mama
 papa                   watashi
 コマンドは正常に終了しました。


 C:\>net user ore 123456 /add    ← ユーザー ore を追加
 コマンドは正常に終了しました。      ( 123456 はパスワード )

 C:\>net user  ← ユーザー一覧を表示

 \\ZACOSPC のユーザー アカウント

 ---------------------------------------------------------
 Administrator          Guest                  mama
 ore                    papa                   watashi
 コマンドは正常に終了しました。
  ↑ ore が追加されています

 C:\>net user ore 123456 /delete  ← ユーザー ore を削除
 コマンドは正常に終了しました。

 C:\>


ドメイン型のネットワークにおいては、各命令の最後に /domain というスイッチを 付けることで、ローカルマシンのでなく、ドメインの方のユーザーを操作することができます。 この場合はもちろん、ローカルではなくドメインの管理者権限を持ったユーザーでログオンしている必要があります。


13−3  グループ管理

上記のコマンドで作成されるユーザーアカウントは、作られた時点ではとりあえず Users グループに所属しています。 ローカルグループの管理には、
[コントロールパネル]-[ユーザーとパスワード]-[詳細]-[高度なユーザー管理]
または
[コントロールパネル]-[管理ツール]-[コンピュータの管理]-[ローカルユーザーとグループ]
といったGUIツールが用意されています。 グループの新規作成/削除/ユーザーをグループへ所属させる 等の処理をCUIで行うには、 以下のコマンドを用います。ユーザー管理に同じく管理者(Administrators)権限が必要です。

 NET LOCALGROUP (グループの一覧を表示します)
 NET LOCALGROUP グループ名 (グループ所属者等の情報を表示)
 NET LOCALGROUP グループ名 /add (新しいグループを作成)
 NET LOCALGROUP グループ名 /delete (グループを削除)
 NET LOCALGROUP グループ名 ユーザー名 /add
 NET LOCALGROUP グループ名 ユーザー名 /delete
               (ユーザーをグループに追加/グループから削除)
 ◆ Windows2000 の例です ◆

 C:\>net user  ← グループ一覧を表示

 \\ZACOSPC のエイリアス

 ---------------------------------------------------------
 *Administrators      *Backup Operators        *Guests
 *Power Users         *Replicator              *Users
 コマンドは正常に終了しました。


 C:\>net localgroup "power users"  ← Power Usersの情報
 エイリアス名     power users
 コメント         いくつかの制限はありますが、ほとんどの管
 理用の権限があります。証明されたアプリケーションだけでなく、
 レガシ アプリケーションも実行できます。

 メンバ

 ---------------------------------------------------------
 papa
 コマンドは正常に終了しました。


 C:\>net localgroup "power users" ore /add  ← ore を追加
 コマンドは正常に終了しました。

 C:\>net localgroup users ore /delete ← Users から ore を削除
 コマンドは正常に終了しました。

 C:\>net localgroup "power users"  ← Power Usersの情報
 エイリアス名     power users
 コメント         いくつかの制限はありますが、ほとんどの管
 理用の権限があります。証明されたアプリケーションだけでなく、
 レガシ アプリケーションも実行できます。

 メンバ

 ---------------------------------------------------------
 ore    ← 追加されました
 papa
 コマンドは正常に終了しました。


 C:\>


ユーザー管理と同じく、各命令の最後に /domain というスイッチを 付けることで、ローカルでなく、ドメインの方を操作することができます。 この場合はもちろん、ドメインの管理者権限を持ったユーザーでログオンしている必要があります。

13−4  アクセス制限

特定のユーザーにだけファイル、フォルダ等へのアクセスを許可したい場合があります。 あるいは読み取りは許可したいが書き込み(変更)までは許可したくない、といった細かい制限を 設けたいこともあります。
[新しいグループを作成]→[許可したいユーザーだけをそのグループに参加させる]→ [フォルダまたはファイルのセキュリティで、そのグループだけに必要なアクセス許可を与える]
という操作を、CUIで実現してみます。

CACLS ファイル名
    ファイル(ディレクトリでも可。以下同じ)のアクセス制限を表示します
CACLS ファイル名 /G ユーザー名:権限
    ファイルのアクセス制限を、指定ユーザーによるアクセス許可と置き換えます
    [ユーザー名:権限] は一度に複数個指定できます(以下同じ)
    権限の種類…N=なし,R=読み取り,W=書き込み,C=変更,F=フルアクセス
CACLS ファイル名 /E /G ユーザー名:権限
    指定されたユーザーのアクセス許可だけを変更します
CACLS ファイル名 /E /R ユーザー名
    指定されたユーザーのアクセス許可を解除します
CACLS ファイル名 /E /D ユーザー名
    指定されたユーザーによるアクセスを拒否します

 C:\>net localgroup parents /add  ← グループを新規作成
 コマンドは正常に終了しました。

 C:\>net localgroup parents mama papa /add ← parents に
 コマンドは正常に終了しました。              mama, papa を追加

 C:\>md d:\oya         ← D:ドライブに oya ディレクトリを作成

 C:\>cacls d:\oya /g parents:f  ← d:\oya に parents(フルアクセス)
 よろしいですか (Y/N)?y            を設定.置き換えなので確認
 処理ディレクトリ: d:\oya             メッセージが出る

 C:\>cacls d:\oya            ← d:\oya のアクセス権限情報を表示
 d:\oya  ZACOSPC\parents:(OI)(CI)F

 C:\>


上記の処理以後、papa または mama 以外は oya ディレクトリにアクセスすることが できなくなります。注意しなければならないのは、/E スイッチを付けずに 権限の設定を「置き換え」た場合は、もともとあった Administrators 、SYSTEM 等の権限も解除されてしまい、 アクセスできなくなるという点です。置き換え時に Adoministrators 等の権限も設定して置き換えするか、 編集(/E)モードで必要なユーザー/グループの追加と解除を明示的に行うようにするべきでしょう。

13−5  バッチ処理

便利なGUIがあるのに、それとは別にCUIが用意されていることのメリットのひとつは、 「バッチファイル化できる」ということだと思います。
例えば次のような使い方ができます。バッチファイルは D:\ に保存して下さい。

scfldr.bat−メモ帳
ファイル(F) 編集(E) 書式(O) ヘルプ(H)
 net user %1 %1 /add
 net localgroup "Power Users" %1 /add
 net localgroup "Users" %1 /delete
 mkdir %1
 cacls %1 /e /g %1:c /r users


 D:\>scfldr zacospage    ← バッチを実行

 D:\>net user zacospage zacospage /add
 コマンドは正常に終了しました。
        ↑ ユーザーアカウント zacospage を新規作成しました

 D:\>net localgroup "Power Users" zacospage /add
 コマンドは正常に終了しました。
        ↑ zacospage を Power Usersグループに参加させました

 D:\>net localgroup "Users" zacospage /delete
 コマンドは正常に終了しました。
        ↑ zacospage を Usersグループから削除しました

 D:\>mkdir zacospage    ← ディレクトリ \zacospage を作成

 D:\>cacls zacospage /e /g zacospage:c /r users
 処理ディレクトリ: D:\zacospage    ← アクセス制限を設定

 D:\>


バッチファイルを実行すると、以下の一連の処理を自動的に行います。
  1. zacospage というユーザーアカウントを作成します。
    ( パスワードも zacospage となります。)
  2. zacospage を Power Users グループに追加します。
  3. zacospage を Users グループのメンバーから削除します。
  4. zacospage という名前のディレクトリを作成します。
  5. そのディレクトリに対して Users のアクセス権を解除し、
    zacospage のアクセス権(変更可)を追加します。
作成される zacospage ディレクトリは、ユーザー zacospage 自身と 管理者ユーザーだけがアクセスできるディレクトリとなります。