フルコントロールにして、NTFSアクセス権で細かく制御するのがオーソドックな方法です。いざ運用段階に入ってアクセス権を確認したい時にいちいちフォルダのプロパティから確認するのは非常にめんどうです。複数フォルダを簡単に表示するフリーなツールが無いかと思い探してみました。見つけたのがMicrosoftのフォルダ-アクセス権マップツールです。http://www.microsoft.com/japan/windowsserver2003/activedirectory/ACL.mspxからダウンロードできます。VisioとExcel形式に出力できるようなんですが、3流PGの環境だとインストール時にVBScriptのレジストリ取得部分で落ちてしまい、インストールできませんでした。Viewerというものです。これはネットワーク上のサーバが指定できないのと、複数のフォルダを同時に表示することができない、外部ファイルにエクスポートできないなどの機能的制約が多いのであまり今回は使えそうにありません。これだとUNCパスも指定できますし、*を付けることで複数フォルダを対象にできます。下記のような例になります。AUTHORITY\SYSTEM:(OI)(CI)Fただ、サブフォルダまで指定できないのが残念です。使ってACL(NTFSアクセス権)を設定するでも詳しく取り上げてます。入れてみたでLinux(CentOS)でTomcatを入れました。これを任意の他のユーザでも起動停止処理をしたいというのが今回の要件です。コマンドを使ってスクリプトを起動します。より特権ユーザでの処理が可能になります。使うとパスワードを要求されますが、これは自身のパスワードを入れるようです。パスワードを入れます。コマンドはデフォルトでは一般ユーザは使用できないようになっているようです。実行しようとすると下記のようになります。localhost.なので任意のユーザに対してsudoで許可するコマンドを設定してやらないといけません。(viでやると構文チェックが行われないのでvisudoじゃないとダメみたいです。すると設定ファイルの編集画面が出てくるので、そこで設定を追加するようですね。書式は下記のような感じだそうです。コマンド例えばuser01に対して、全端末で全コマンドにroot権限を与えるには下記のように書けばいいようです。入れるといいようです。NOPASSWD:ALLさて、今回はtomcatの起動スクリプトをuser01に実行させたいのでこう書きました。指定すればいいようです。hogegグループに全端末全コマンドでroot権限を与えるためには下記のようにします。Linux(Windows)ログオン・ログアウトをイベントログから解析するターミナルサーバでユーザがリモートデスクトップでログイン・ログアウトしてる情報を取りたいという要件です。これらの情報はサーバのイベントログ→セキュリティに記録されています。イベントログは分かりづらいんですよね。実際にログイン、ロック、ロック解除、ログオフを行って、その時にどのようなイベントが出力されるか実験してみました。結果は下記のとおりです。ログインユーザとSYSTEMでそれぞれ出力されるようです。(リモートデスクトップ接続なのでログインの種類は10になってます。)ロック時は特にイベントに残っていませんでした。ログインユーザで出るようです。ログオン・ログアウトの両方がでるのかよくわかりません。(ロック解除なのでログインの種類は7になってます。該当ログインユーザで出るようです。WhiteFoxが参考になります。ログオン・ログオフには該当ユーザ以外にもAdministrator,SYSTEMが絡んでくるようです。鬱陶しいので該当ユーザだけで抽出した方がよさそうですね。イベントログは今回の使用率の用に何かの統計を取るのには非常に不向きです。CSVでエクスポートしてもそっから加工してやるのは一苦労なフォーマットになっています。いうツールが結構使えるようです。日本語版から行えます。SQLみたいなクエリを書くことで幅広い集計や抽出ができるようです。Parserでログを統合的に扱い運用保守に役立てる(基本編)(1/4):CodeZineが参考になります。クエリ構文や関数の詳細はツールに同封のヘルプファイル(ちゃんと日本語)が役立ちます。して保存し、LogParserにかけてみました。(外部クエリファイルが使えるのもうれしいです。結果はこんなCSVで出てきます。区切り文字になってるようですね。Parserには様々な関数が用意されており、このような任意の区切り文字で分割し、指定された部分を取得するなんてこともできるようです。上記のユーザ名を条件にする部分も関数を使えばきれいにかけます。(ついでにログオンの種類を10つまりリモートデスクトップのみの接続の条件を付け加えてます。DESC今回の要件は指定した期間で各ユーザがログイン・ログアウトを一日どれくらい行っているかを知りたいので下記のようなクエリとしました。集計関数を使って回数を求めます。句全体で一つのASCまたはDESCしか指定できないようです。BY句は最後の句になる必要があるようです。DESC/*上はNGで下ならOKということになります。出力したりすることもできるようですね。ふつうはCSVにさえ出てくれば後は自由に加工できるんで助かるんですが。今回は取り上げませんでしたがクエリを外部ファイルにした時にパラメータを動的に変更することもできるようです。詳しくは参考元の@ITの記事が役立ちます。豆知識(.Net)アプリ上で共有フォルダの認証を行いファイルアクセスをするドメインに参加してないPC上で動く.Netアプリケーションから、ドメイン内のファイルサーバにアクセスしたいと言う要件です。当然.Netアプリケーション内で共有フォルダの認証を行わなくてはなりません。Articleにどんぴしゃな情報が載ってました。使うことになるようです。いうAPIがあるようです。違いは後者は"ネットワーク資源のプロバイダがダイアログボックスのオーナーウィンドウとして利用できるウィンドウのハンドルという1つのパラメータが追加されている"だけのようです。要は3の方は認証ダイアログウィンドウのハンドルを指定することができるようです。(WNetAddConnectionってのもあるようですが16bit版みたいです。接続する前にすでに対象の共有フォルダに接続されている場合はERROR_SESSION_CREDENTIAL_CONFLICT(1219)のエラーが返ります。現在の接続を切断してからつなぐ方が安心かもしれません。いうことで一旦切断してから接続するサンプルコードです。lpLocalName;//ローカルデバイス名。使わないならNULL。lpRemoteName;//リモートネットワーク名。構造体に設定できるのは下記の値になるようです。現在接続されたリソースを列挙する。dwUsageメンバーを指定できない。ネットワークに関するすべてのリソースを列挙する。dwUsageメンバーを指定できない。接続可能なリソースであることを示す。lpRemoteNameメンバーによって示された名前はWNetAddConnection機能に通過できる。リソースはコンテナリソースです。lpRemoteNameメンバーによって示された名前はWNetOpenEnum機能に通過できる。MSDNには構造体に指定できる値を書いてるんですが、定数で書いてるんですよね。.Netだとその定数が使えないので実値を指定しないといけません。.NetでもWindowsの定数使えないものですかね。APIの戻りのエラーコードはWin32エラーコード一覧が参考になります。Notepadを使ってみたネットワーク図を書く必要が出てきました。書いてたんですが、今のPCには入っていません。いうのが定番みたいなので使ってみました。ダウンロードはhttp://www.networknotepad.com/download.htmlからできます。配下に置くと追加のアイコンが使えるようになります。日本語にするにはメニューバーのFile→Setup→Languageから設定できます。ネットワーク機器やサーバ類を図に置くには、ツールバーのオブジェクトライブラリからできるようです。オブジェクトを右クリックしてプロパティから、名称やIPアドレスが設定できます。ここでIPを設定すると、オブジェクト右クリックから、PingやTelnetができこれは非常に便利ですね。右クリックしながらドラッグすると、表示している部分を移動する(スクロール)ことができます。手のひらツールみたいな感じですね。オブジェクトを移動するには、Shift+左クリックドラッグのようです。ここら辺の操作はCADのようにちょっと特殊なので慣れが必要ですね。注意が必要なのはオブジェクトのテキストで日本語を入れると文字化けします。デフォルトのフォントが問題ですね。テキストの上で右クリックし、フォントから日本語を扱えるフォントを選択し直せば文字化け解消できます。ネックはオブジェクトとオブジェクトを結ぶリンクです。リンクを引く時に、マウス左クリックすると、コネクタ(頂点)を増やせるんですが、一旦リンクを引いてしまうと後からコネクタを増やすということができないようです。Visioとかだとこの辺は融通がきくんですけどね。情シスで何でも屋の三流プログラマのコーディング、サーバ管理、PC生活関係のメモ書き。このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。31検索カテゴリ全体Linuxサーバがらみ.Net開発PHP開発C/C++開発JavaSQLツール思ったこととかニュースとか。メッセージを入力してください。