on
【Java-파일】파일과 디렉토리 권한 확인하기
【Java-파일】파일과 디렉토리 권한 확인하기
1. 설명
리눅스에서 ls -la 명령어를 실행하면 파일명과 함께 가장 왼쪽부분에
-rwxrw-r--
drwxrw-r--
이러한 정보를 확인 할 수 있습니다.
이 정보는 파일 또는 디렉토리의 권한을 나타내는 정보로 4부분으로 다시 나눌 수 있습니다.
-(파일) , d(디렉토리) rwx rw- r-- 파일인지 디렉토리인지 소유자 권한 그룹 권한 기타 다른 사용자 권한
rwx에서 r은 읽기권한, w는 쓰기 권한, x는 실행권한을 나타냅니다.
※ 권한이 없다면 -로 표시됨
다시 r은 숫자 4로 , w는 2로 , x는 1로 치환할 수 있습니다.
리눅스에서 파일이나 디렉토리에 권한부여를 할때 명령어 chmod로 숫자값을 사용하여 권한을 부여할 수 있습니다.
chmod 755 {파일}
위 명령어에서 부여하는 권한은 사용자는 읽고, 쓰고, 실행하는 모든 권한을, 그룹과 기타사용자는 읽기와 실행권한만을 부여하게 됩니다.
이 포스트의 예제는 파일의 권한정보를 chmod로 권한을 부여할때 나타내는 숫자값과 동일한 방식으로 확인할 수 있는 코드입니다.
2. 소스코드
- 메서드
public Integer checkPermission(String path) { File f = new File(path); if (!f.exists()) { return null; } Integer permission = 0; permission += (f.canExecute()) ? PERMISSION_X : 0; permission += (f.canWrite()) ? PERMISSION_W : 0; permission += (f.canRead()) ? PERMISSION_R : 0; return permission; }
- 메인
public class File_07_CheckPermission { public static void main(String[] args) { try { for (String str : args ) { System.out.println("Param : "+str); } String path = args[0]; FileUtil fu = new FileUtil(); System.out.println("Result : "+ fu.checkPermission(path)); System.exit(0); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } }
3. 실행결과【Windows(이클립스) / Linux】
【Windows】모든 권한이 있을때 결과 '7'을 반환한다.
【Windows】읽기 전용일때는 파일을 실행하고 읽기만 가능하므로 '5'를 반환한다.
4. 전체코드
https://github.com/leeyoungseung/template-java
from http://koiking.tistory.com/32 by ccl(A) rewrite - 2021-09-12 20:27:16