S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

コマンドでアクセス権を設定する

Windowsコマンド集:(cacls)
caclsコマンドでACLを編集する − @IT

ファイル/ディレクトリへのACLの追加と置き換え

caclsコマンドで、gオプションを使ってACLを追加してみると、現在のACLは削除されてしまいます。

calcs c:\hoge.txt /g tomcat:r

【コマンド実行前】            【コマンド実行後】  
 
こんな感じでユーザtomcat以外のACLは削除されます。
なので、既存のACLを維持したままユーザsakuのACLを追加する場合は、eオプションを付けてコマンドを実行します。

calcs c:\hoge.txt /e /g saku:f

ユーザに対するACLの追加と置き換え

それから、
ユーザtomcatのアクセス権rを維持したまま、ユーザtomcatにアクセス権を追加する場合は/gオプション
ユーザtomcatのアクセス権rを破棄して、ユーザtomcatのアクセス権を置き換える場合は/pオプション
となります。

アプリケーションからの実行

実際のコマンドでは、「よろしいですか (Y/N)?」と確認メッセージが表示されます*1

C:\>cacls c:\hoge.txt /g tomcat:r
よろしいですか (Y/N)?y
処理ファイル: c:\hoge.txt

この確認メッセージを無効にするオプションが見当たらないので、アプリケーションから実行する場合には、yes.txtというような「y」あるいは「yes」などのテキストファイルを用意してリダイレクトさせるなどの対応が必要なようです。

*1:環境?バージョン?によっては表示されないようです。