JavaでファイルのRead、Write、Execute権限を変更する方法について紹介します。
1. Fileがどのアクセス権を持っているかを確認する
Fileは、次のようにパーミッションを確認できるAPIを提供します。
- File.canExecute():ファイルがexecuteパーミッションを持っていればtrueを返し、そうでない場合はfalseをリ
- File.canWrite():ファイルがwrite権限を持っていればtrueを返し、そうでない場合はfalseをリ
- File.canRead():ファイルがread権限を持っていればtrueを返し、そうでない場合はfalseをリ
2. Fileへのアクセス権 Read, Write, Execute 付与
Fileは、次のようにパーミッションを設定することができるAPIを提供します。
- File.setExecutable():ファイルにexecute許可と、設定が成功した場合trueをリ
- File.setReadable():ファイルにread権限の付与、設定が成功した場合trueをリ
- File.setWritable():ファイルにwrite権限の付与、設定が成功した場合trueをリ
3. 権限の変更例
まず、以下のファイルのアクセス権を確認し、変更します。 shellで権限を確認してみると、OwnerにRead、Write、Execute権限がすべて付与されています。
$ ls -al sample.txt
-rwxrwxrwx 1 js js 0 10월 10 12:06 sample.txt
以下は、ファイルのアクセス権を確認し、アクセス権を変更する例です。 Read、Write、Execute権限をすべて制限します。
import java.io.File;
import java.io.IOException;
public class FilePermission {
public static void main(String[] args) throws IOException {
File file = new File("/var/tmp/sample.txt");
if(file.exists()){
System.out.println("canExecute: " + file.canExecute());
System.out.println("canWrite: " + file.canWrite());
System.out.println("canRead: " + file.canRead());
file.setExecutable(false);
file.setReadable(false);
file.setWritable(false);
System.out.println("- After changing permissions");
System.out.println("canExecute: " + file.canExecute());
System.out.println("canWrite: " + file.canWrite());
System.out.println("canRead: " + file.canRead());
}
}
}
Output:
canExecute: true
canWrite: true
canRead: true
- After changing permissions
canExecute: false
canWrite: false
canRead: false
上記のコードを実行した後、shellから再度ファイルのアクセス権を確認してみると、Ownerのアクセス権rwxがすべて回収されたことを確認することができます。
$ ls -al sample.txt
----rwxrwx 1 js js 0 10월 10 12:06 sample.txt
References
Related Posts
- Java - AtomicReference使用方法
- Java - CountDownLatchを使用する方法、および例
- Java - ScheduledThreadPoolExecutor使用方法
- Java - SummaryStatisticsの使用方法(count、min、max、average)
- Java8 - 関数型インタフェース (Functional Interface) について
- Java - String配列をint配列に変換する
- Java - ArrayList要素の値を変更する方法、replaceAll()
- Java - 2つのリストが同じかどうかを比較
- Java - 配列から特定のIndex要素を削除する3つの方法
- Java - HashMapソート、4つの方法
- Java - 文字列を配列に変換する方法
- Java - ArrayListが空であることを確認する3つの方法
- Java - ArrayListの巡回、4つの方法
- Java - ArrayListの最大値、最小 値を見つける
- Java - ArrayListの合計、平均値の計算
- Java - HashMap巡回、3つの方法
- Java - do whileとwhileの違い
- Java - Lambda式と関数型インタフェース
- Java - List empty(null)チェック、3つの方法
- Java - ArrayListの初期化、4つの方法
- Java - Stream.reduce()の使い方と例
- Java - 2つのマップを結合する(merge、putAll)
- Java - java.util.Dateをjava.sql.Dateに変換する
- Java - ArrayListをStringに変換する
- Java - ClassNotFoundExceptionの発生原因と解決策
- Java - 非静的メソッドは静的コンテキストから参照できません
- Java - NoSuchMethodErrorの原因と解決策
- Java - JSONライブラリを使用する方法(JSONObject、JSONArray)
- Java - byte[]配列をFileに保存
- Java - byte[]の配列をStringに変換
- Java - ファイルのアクセス権を確認し、変更
- Java - 一時フォルダ(Temp directory)パスを取得する
- Javaでシェルスクリプトを実行
- Java - Streamを配列に変換する
- Java - リスト重複排除、2つの方法