概要
コマンドラインは、TeamFileサーバに対しての操作をWindowsのコマンドプロンプトやShellを利用して実行することができるツール群です。
ファイル構成
pkusr(ユーザ管理)
ユーザの追加や更新などユーザ操作全般の操作を行います。
pkgrp(グループ管理)
共有グループの追加更新やユーザの所属などの操作を行います。
pkstat(ステータス管理)
全ユーザの状態を一覧として取得します。
pkput(ファイルアップロード)
ファイルのアップロードを行います。
pkget(ファイルの取得)
ファイルの取得を行います。
pklist(ファイルの一覧取得)
ファイルの取得を行います。
pkdel(ファイルの削除)
ファイルの削除を行います。
実行環境
Linux版
- コマンドライン実行環境のロケールは「ja_JP.UTF8」であること
- コマンドラインに引き渡される文字列のエンコードは全て「UTF8」であること
- ローカルエンコード(例えばEUC-JP)であっても実行は可能ですが、ファイル名の文字化けを起こす可能性があります
- pkgetはファイルの日付の関係で、環境変数TZを「UTC」にしてください
Windows版
コマンドラインは標準MBCSですので特に意識する必要はありませんが、UTF8でのみ表現できる文字コードの場合は文字化けやエラーを出力します。通常コンソールに表示できる文字は不正にはなりません。
セットアップ
動作環境の準備
コマンドラインツールが動作可能なLinux環境もしくはWindows環境をご用意ください。プログラムは以下の場所から自由にダウンロードが行えます。
http://dl.teamfile.com/client/cmd/
コマンドラインツールの準備 (Linux版)
以下のコマンドラインツール用パッケージをお手元にご用意ください。
pk-xerces-c-2.5.0-5.(OS名).i386.rpm
pk-xerces-c-debuginfo-2.5.0-5.(OS名).i386.rpm
pk-xerces-c-devel-2.5.0-5.(OS名).i386.rpm
pk-xerces-c-doc-2.5.0-5.(OS名).i386.rpm
pk-openssl-0.9.7g-1.(OS名).i386.rpm
pk-openssl-devel-0.9.7g-1.(OS名).i386.rpm
pk-openssl-debuginfo-0.9.7g-1.(OS名).i386.rpm
pk-openssl-doc-0.9.7g-1.(OS名).i386.rpm
pk-onion-0.2-5.(OS名).i386.rpm
pk-onion-debuginfo-0.2-5.(OS名).i386.rpm
pk-pcre-5.0-1.(OS名).i386.rpm
pk-pcre-debuginfo-5.0-1.(OS名).i386.rpm
pk-cmd-1.0.2-1.(OS名).i386.rpm
pk-cmd-debuginfo-1.0.2-1.(OS名).i386.rpm
インストール
下記のコマンドを実行して、インストールして下さい。
# cd (パッケージファイルがあるディレクトリ)
# rpm -ivh *.rpm
なお、TeamFileサーバパッケージがインストールされた環境には、pk-cmdのパッケージだけをインストールして下さい。(既に他のライブラリはインストール済みです)
# rpm -ivh pk-cmd-*.rpm
コマンドラインツール専用アカウントの作成
コマンドラインツールをご利用いただくためには、管理者権限を持つアクセスアカウント(Unixアカウントではありません)が必要となります。このアカウントはコマンドラインツールにのみお使い頂くことを推奨いたします。アカウントの作成には、専用クライアントをお使い下さい。
このユーザは後述致しますコマンドラインツールの引数または環境変数に指定して利用されます。
ユーザ操作コマンドライン(pkusr)
用途
- 新規ユーザの作成 (グループへの所属も同時に指定できます)
- ユーザ情報の更新 (グループへの所属も同時に指定できます)
- ユーザの削除
- ユーザ情報の取得
コマンドライン
Windows版
C:\Program Files\pkcmd\pkusr
インストールする場所によりprogram filesの場所が異なります。
Linux版
/usr/local/teamfile/bin/pkusr
コマンドライン共通オプション (モードに応じたオプション)
【 コマンドライン共通オプション 】
-U 管理者ユーザのユーザID(環境変数:PKUSER)※1
-P 管理者ユーザのパスワード(環境変数:PKPASS)
-H サーバのURL [http://host.domain/location/](環境変数:PKHOST)
-T ソケットタイムアウト
-G プロキシホスト (-G ホスト名:ポート番号、-G autoで自動でProxyを調べます)
-X プロキシユーザID
-Y プロキシパスワード
-V バージョン
-M モード [ add | delete | update | view ]※2
-O 出力形式 [ xml | plain(デフォルト) ]
-Z 圧縮受信を要求する(環境変数:PKCOMP=[true|false])
-D デバッグモード [ -D 出力ファイル名 ]
-S クライアント証明書へのフルパス名 [ -S ファイルパス名 ]
-? このヘルプを表示する
モードに応じたオプション (ユーザの新規作成)
-a アクセス権限(RW:フルアクセス, RO: 読み込み専用, UO:アップロード専用)
(省略時:RW)
-b リソース公開権限 [ on | off ](省略時:-z がnormal, adminであればあり)
-c コメント (省略可)
-d ユーザのアクティブ設定 [ active | inactive ] (省略時:active)
-e 有効期限 ISO8601形式 (UTC) 書式: YYYY-MM-DDThh:mm:ssZ (省略可)
-f ファイル数のリミット(省略時:無制限)
-g 所属するグループをカンマ区切りで指定 (例: group1, group2) (省略可)
-i 新規作成するユーザのユーザID(必須)
-l アクセス制限(複数指定時にはカンマで区切って並べてください)(任意)
( user | group | db | repos | adm | adm-user | adm-group |
adm-sql | adm-stat | adm-dbms | adm-update | adm-db-test |
adm-msg |
simple-user | simple-user-non-private | simple-admin )※4
-n ユーザ名(必須)
-m メールアドレス(省略可)
-o 他ユーザを管理する [ on | off ](省略可)
(-z が groupleader の場合のみ有効、グループリーダ機能)
-p パスワード(必須)
-r 容量のリミット(省略時:無制限)
-t グループ制約を受けない [on | off](グループ制約機能)(省略可)
-u 作成可能なユーザ数 [ -u ユーザ数 | 0 (無制限)](省略可)
(-z が groupleader の場合のみ有効、グループリーダ機能)
-w 許可ホスト(カンマ区切り)
-z ユーザの種類 [ admin | groupleader | normal | limited ]※3 (省略時:normal)
モードに応じたオプション (ユーザの更新)
-a アクセス権限(RW:フルアクセス, RO: 読み込み専用, UO:アップロード専用)
(-s がある場合には省略可、-sが無い場合には省略するとデフォルト値※5)
-b リソース公開権限 [ on | off ]※5
-c コメント※5
-d ユーザのアクティブ設定 [ active | inactive ] ※5
-e 有効期限 ISO8601形式 (UTC) 書式: YYYY-MM-DDThh:mm:ssZ※5 0で無期限
-f ファイル数のリミット ※5
-g 所属するグループをカンマ区切りで指定 (例: group1, group2) ※5
-i 更新するユーザのユーザID (必須)
-l アクセス制限(複数指定時にはカンマで区切って並べてください)※5
( user | group | db | repos | adm | adm-user | adm-group | adm-sql | adm-stat | adm-dbms | adm-update | adm-db-test | adm-msg | simple-user | simple-user-non-private | simple-admin )※4
-n ユーザ名 ※5
-m メールアドレス ※5
-o 他ユーザを管理する [ on | off ]
(-z が groupleader の場合のみ有効、グループリーダ機能)
-p パスワード ※5
-r 容量のリミット ※5
-s 指定されていないパラメータはサーバの値を利用 ※5
-t グループ制約を受けない [ on | off ](グループ制約機能)
-u 作成可能なユーザ数 [ -u ユーザ数 | 0 (無制限)]
(-z が groupleader の場合のみ有効、グループリーダ機能)
-w 許可ホスト(カンマ区切り)
-z ユーザの種類 [ admin | groupleader | normal | limited ]※3、※5
-2 変更先ユーザID(更新専用)※6
モードに応じたオプション (ユーザの削除)
-i 削除対象のユーザID
-q 強制削除
モードに応じたオプション (ユーザ情報の表示)
-i 情報を表示するユーザのユーザID
-v ユーザのステータスだけを戻り値で取得する(省略可)
※1: 環境変数について
幾つかの引数は、環境変数として設定しておくことで省略することができます。
| 環境変数名 | 意味 |
|---|---|
| PKUSER | コマンドラインを使ってサーバにアクセスするためのユーザID(文字列) 「3.4. コマンドラインツール専用アカウント作成」で作成したユーザIDを指定 |
| PKPASS | アクセスユーザのパスワード(文字列) 「3.4. コマンドラインツール専用アカウント作成」で作成したユーザのパスワード。 |
| PKHOST | アクセスするURL(文字列) |
| PKCOMP | サーバから受信するデータを圧縮して受信するかどうか(true / false) |
※2: 「モード」について
このコマンドラインは「モード」の指定により、複数の機能を使い分けることができます。
| モードの値 | 意味 |
|---|---|
| add | 新しいユーザの追加を指示する |
| delete | 指定されたユーザの削除を指示する |
| update | 指定されたユーザの更新を指示する |
| view | 指定されたユーザの情報を画面表示する |
※3: 組み合わせに制限のある引数
外部仕様により、以下の組み合わせは設定できません。
- リソース公開権限(-b)とユーザの種類が制限ユーザ(-z limited)
- グループ制約を受けない(-t)とユーザの種類が制限ユーザ(-z limited)または管理者(-z admin)
- 他ユーザの管理(-o)とユーザの種類がグループリーダ(-z groupleader)以外
- 作成可能ユーザ数(-u)とユーザの種類がグループリーダ(-z groupleader)以外
※4: アクセス制限用識別子(“user”、”group”など)は、指定されたフォルダを「アクセス禁止」にする目的で使用します。これら識別子と対応するフォルダとの関係は以下のとおり。
| アクセス制限用識別子 | 対象フォルダ名 |
|---|---|
| user | ユーザフォルダ(個人フォルダ) |
| group | グループフォルダ(共有フォルダ) |
| db | データベース |
| repos | リポジトリ(検索) |
| adm | 管理者 |
| adm-user | ユーザ |
| adm-group | グループ |
| adm-sql | SQL |
| adm-stat | 統計情報 |
| adm-dbms | DBMS |
| adm-update | クライアント更新 |
| adm-db-test | データベース(テスト用) |
| adm-msg | メッセージ |
| simple-user | (複合パラメータ: db、repos、admの3つ指定と同じ効果) |
| simple-user-non-private | (複合パラメータ: user, db, repos, adm の4つ指定と同じ効果) |
| simple-admin | (複合パラメータ: db, repos, adm-sql, adm-dbms, adm-db-testの5つ指定と同じ効果) |
※5:更新時のパラメータ指定方法
新規作成においては、設定が必要なパラメータは全て設定する必要があります。任意オプションの場合には、デフォルト値が適用されます。
更新においても、基本的には変更対象のパラメータは指定する必要がありますが、それ以外の更新の必要がないパラメータは「-s」をつけることで昔の値をそのまま使って更新できます。
※6:-2の注意事項
このパラメータをつけた場合は、-iで指定したユーザIDを-2で指定したユーザIDに変更するだけです。その他のパラメータは全て無視されます。
実行例
(例1)ユーザID「user1」、パスワード「pass1」、名称「ユーザ1」を作成する
#./pkusr -U (管理者ID) -P (管理者パスワード) -H http://(ホスト名)/(ロケーション名)/ -i user1 -M add -p pass1 -n ユーザ1 ?a RW -b
アクセス権限はRW、公開権限あり、コメントなし、有効期限なし、ファイル数・サイズ制限なし、所属グループなし、制限フォルダなし、メールアドレスなし、一般ユーザのアカウントが1つ作成されます。
(例2)ユーザID「user2」、パスワード「pass2」、名称「xxxさま」、メールアドレス「xxx@yyy.com」、所属グループ「test」の読み取り専用の一般ユーザを作成
#./pkusr -U (管理者ID) -P (管理者パスワード) -H http://(ホスト名)/(ロケーション名)/ -i user2 -M add -p pass2 -n “xxxさま” -m “xxx@yyy.com” -g test -a RO -z normal
(例3)ユーザID「user3」、パスワード「pass3」、名称「xxx印刷」、所属グループは「test」でユーザフォルダにアクセスさせない一般ユーザ(RW、公開できる)を作成
#./pkusr -U (管理者ID) -P (管理者パスワード) -H http://(ホスト名)/(ロケーション名)/ -i user3 -M add -p pass3 -n “xxx印刷” -g test -a RW -b -z normal -l “user”
(例4)ユーザID「user1」のパスワードを「pass11」に変更する
#./pkusr -U (管理者ID) -P (管理者パスワード) -H http://(ホスト名)/(ロケーション名)/ -i user1 -M update -p pass11 -s ?a RW
(例5)ユーザID「user1」を削除する
#./pkusr -U (管理者ID) -P (管理者パスワード) -H http://(ホスト名)/(ロケーション名)/ -i user1 -M delete
(例6)ユーザ「user1」の情報を表示する
Name : ユーザ1
UserID : user1
PassWord : **********
MailAddress :
Resources : 0 / 0
Strorages : 0 / 0
User Type : General User
Status : Active
AccessAuthority : Read/Write Public
Maxcreationuser:
Valid until : Unlimited
Owner Name :
Owner ID :
AllowHosts : 192.168.0.1,172.16.0.0/16
Limited Zone :
Created : Fri Aug 11 04:20:45 2006
Lastmodified : Fri Aug 11 04:20:45 2006
Comment :
Available Group : test
(例7)ユーザ「user1」の情報をXMLで出力する (DTDは後述)
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<TF:userinformation xmlns:TF="http://www.teamfile.com/DTD/TF/">
<TF:user>
<TF:userid>
<![CDATA[user1]]>
</TF:userid>
<TF:name>
<![CDATA[ユーザ1]]>
</TF:name>
<TF:password>
<![CDATA[pass1]]>
</TF:password>
<TF:mailaddr/>
<TF:usedstorage>0</TF:usedstorage>
<TF:maxstorage>0</TF:maxstorage>
<TF:usedresource>0</TF:usedresource>
<TF:maxresource>0</TF:maxresource>
<TF:usertype>
<TF:normal/>
</TF:usertype>
<TF:state>
<TF:active/>
</TF:state>
<TF:user-privilege>
<TF:readwrite/>
<TF:set-view/>
</TF:user-privilege>
<TF:expiration/>
<TF:creationdt>2006-08-10T19:20:45Z</TF:creationdt>
<TF:updatedt>2006-08-10T19:20:45Z</TF:updatedt>
<TF:comment/>
<TF:maxcreationuser/>
<TF:ownername/>
<TF:ownerid/>
<TF:allowhosts>192.168.0.1,172.16.0.0/16</TF:allowhosts>
<TF:availablegroup>
<TF:group>
<TF:groupid>00000393</TF:groupid>
<TF:name>
<![CDATA[test]]>
</TF:name>
</TF:group>
</TF:availablegroup>
</TF:user>
</TF:userinformation>
(例8)ユーザID「user1」のユーザIDを「user2」に変更する
#./pkusr -U (管理者ID) -P (管理者パスワード) -H http://(ホスト名)/(ロケーション名)/ -i user1 -M update -2 user2