## Name

smbcacls — Windows NT 上のファイルやディレクトリの ACL の取得や設定

## Synopsis

`smbcacls` {//server/share} {filename} [-D acls] [-M acls] [-a acls] [-S acls] [-C name] [-G name] [--numeric] [-t] [-U username] [-h] [-d]

## 説明

このツールは samba(7)システムの一部である。

`smbcacls` は、SMB ファイル共有内の ACL (Access Control Lists) を操作するプログラムである。

## オプション

`smbcacls` コマンドでは以下のオプションが 利用可能である。ACL の形式は、ACL FORMAT セクションで記述する。

-a acls

  ACL リストで指定された ACL を追加する。既存の ACL は変更されない。

-M acls

  コマンドラインで指定された ACL の mask 値 (パーミッション) を変更する。ACL リストに指定された ACL が存在しない場合、その ACL 毎にエラーが出力される。

-D acls

  コマンドラインで指定された ACL を削除する。ACL ACL リストに指定された ACL が存在しない場合、その ACL 毎にエラーが 出力される。

-S acls

  このコマンドは、コマンドラインで指定された ACL のみをファイルに設定する。その他の全ての ACL は削除される。 呼び出しを成功させるためには、指定する ACL に最低限リビジョン、タイプ、 所有者とグループが含まれている必要がある。

-U username

  指定されたサービスに接続する際に利用するユーザ名を 指定する。ユーザ名が "username" の形式で与えられた場合、smb.conf(5) で指定されたワークグループが用いられ、ユーザには パスワード入力を求めるプロンプトが表示される。"username%password" もしくは "DOMAIN\username%password" を指定した場合、パスワードや ワークグループ名は指定されたものが用いられる。

-C name

  `-C` オプションを利用することで、 ファイルやディレクトリの所有者を name で指定したアカウントに変更することが可能である。 name は S-1-x-y-z 形式の sid で指定するか、 最初の引数で指定したサーバが認識可能な名前で指定する。

  このコマンドは -M OWNER:name の短縮形になる。

-G name

  ファイルやディレクトリのグループ所有者は、`-G` オプションを利用することで指定した name に変更することが可能である。名前は S-1-x-y-z 形式の sid で指定するか、 先頭の引数で指定したサーバが認識可能な name で指定する。

  このコマンドは -M OWNER:name の短縮形になる。

--numeric

  このオプションは、全ての ACL 情報を数値形式で 表示させる。デフォルトでは、SID は名前に、ACE の type と mask は、 可読性のある文字列形式に変換される。

-t

  実際に処理は行わず、指定した引数の正当性を検証する。

-h|--help

  コマンドラインオプションの要約を表示する。

-d|--debuglevel=level

  `level` は0から10までの整数値である。 既定値の値は、パラメータが設定されていなければ0である。

  この値を大きくするほど、サーバの動作に関するより詳細な情報が ログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告 のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況 に関する情報を生成する。

  1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ 使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されて おり、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容 となっている

  このパラメータの指定は、`smb.conf`ファイル中の、 パラメータの 指定よりも優先する。

-V

  プログラムのバージョン番号を表示する。

-s <configuration file>

  サーバーが必要とする詳細な設定を含む設定ファイルを 指定する。このファイルには、サーバーが提供するサービスに関する記述や、 どの printcap ファイルを利用するかといった情報が含まれている。詳細は `smb.conf` を参照のこと。設定ファイルの名前の既定値は、コンパイル時 に決定される。

-l|--log-basename=logdirectory

  ログ/デバッグファイルのファイル名。拡張子として `".progname"` が追加される(例えば log.smbclient, log.smbd,など)。ログファイルはクライアントによって削除されることはない。

## ACL FORMAT

ACL の形式は、コンマか改行記号で 1 つ以上の ACL エントリを区切ったもの である。ACL エントリは以下のいずれかの形式をとる:

    REVISION:<revision number>
    OWNER:<sid or name>
    GROUP:<sid or name>
    ACL:<sid or name>:<type>/<flags>/<mask>

REVISION は、セキュリティディスクリプタに対する内部的な Windows NT ACL のリビジョンを表す。特に指定されない場合のデフォルトは 1 である。 1 以外の値を指定した場合は、挙動がおかしくなることがある。

OWNER と GROUP はオブジェクトの所有者およびグループの sid を指定する。 SID が S-1-x-y-z の形式で指定された場合はそのまま用いられ、 それ以外の場合、指定された名前はファイルやディレクトリが存在するサーバに よって解析される。

ACL は SID に対して与えられるパーミッションを指定する。この SID も S-1-x-y-z の形式で指定するか、名前で指定することが可能で、後者の場合、 ファイルやディレクトリが存在するサーバによって解析される。 type, flag, mask の値は、SIDに対して与えられたアクセスの種類を指定する。

typeは SID に対する許可および拒否に対応する(訳注: 実際は type は ALLOWED か DENIED を指定し、それぞれ SID に対するアクセス許可および拒否に対応する、が正しい(fumiya))。 flag の値はファイルの ACL の場合通常 0 であり、ディレクトリの ACL の場合は通常 9 か 2 である。 共通的な flags は以下の通りである:

- `#define SEC_ACE_FLAG_OBJECT_INHERIT 0x1`

- `#define SEC_ACE_FLAG_CONTAINER_INHERIT 0x2`

- `#define SEC_ACE_FLAG_NO_PROPAGATE_INHERIT 0x4`

- `#define SEC_ACE_FLAG_INHERIT_ONLY 0x8`

現在のところ flag の値は 10 進数もしくは 16 進数でのみ指定することができる。

mask は SID に対して与えられたアクセス権を表現する値である。それは 10 進数もしくは 16 進数で設定するか、NT のファイルパーミッションと同じ名称である 以下の文字列のうちの一つを利用して設定することができる。

- R - 読みとりの許可

- W - 書き込みの許可

- X - オブジェクトの実行

- D - オブジェクトの削除

- P - パーミッションの変更

- O - 所有権の取得

以下の複合パーミッションも指定可能である:

- READ - 'RX' パーミッションと等価である。

- CHANGE - 'RXWD' パーミッションと等価である。

- FULL - 'RWXDPO' パーミッションと等価である。

## 終了ステータス

`smbcacls` コマンドは、操作が成功したか、 その他の結果になったかに応じた戻り値を設定する。 戻り値は、以下の値のいずれかになる。

操作が成功した場合、`smbcacls` は戻り値として 0 を返す。もし `smbcacls` が指定したサーバに接続できなかったか、 ACL を取得または設定する際にエラーが発生した場合、戻り値として 1 が返される。 コマンドライン引数の解析に失敗した場合は、戻り値として 2 が返される。

## バージョン

このマニュアルページは Samba バージョン 3用である。

## 著者

オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew Tridgell によって作成された。現在 Samba は Samba Team によって、Linux カーネルの開発と同様のオープンソースプロジェクトとして開発が行なわれている。

`smbcacls` は Andrew Tridgell と Tim Potter によって書かれた。

Samba 2.2 における DocBook 形式への変換は、Gerald Carter によって行なわれた。Samba 3.0 における DocBook XML 4.2 形式への変換は、 Alexander Bokovoy によって行われた。

## 日本語訳

このマニュアルページは Samba 3.0.0 - 3.4.15 対応のものである。

このドキュメントの Samba 3.0.0 - Samba 3.4.15 対応の翻訳は

- たかはしもとのぶ (monyo@samba.gr.jp)

- 山田 史朗 (shiro@miraclelinux.com)

によって行なわれた。