-
[NIO.2] POSIX FIle PermissionsJAVA/NIO2 2013. 12. 16. 17:30728x90
POSIX 는 Potable Operation System Interface for UNIX 의 약자 이며, UNIX의 IEEE와 ISO 표준 정보처리의 상호 운영을 위한 설정이다.
파일의 주인과, 주인 그룹, POSIX은 9가지 권한에 대해 지원 한다. : 파일의 주인, 같은 그룹의 사용자, 그리고 그이외 모두에 대한 읽기, 쓰기, 실행 권한
다음 코드는 POSIX 파일 속성에 대한 정보를 읽어 오는 부분이다.
Method 사용 방법은 PoixFileAttributes Class를 확인 하세요.
Path file = Paths.get("/Temp/4.gif"); PosixFileAttributes attr = Files.readAttributes(file, PosixFileAttributes.class); System.out.format("%s %s %s%n", attr.owner().getName(), attr.group().getName(), PosixFilePermissions.toString(attr.permissions()));
PosixFilePermissions 도움 클래스는 몇가지 사용이 편리한 method를 제공한다.
1. toString Method , 이전 코드에서 처럼 파일의 권한을 문자열로 변환한다. (예, rw-r--r--).
2. fromString Method 파일 사용 권한을 Set 형식으로 권한을 나타내는 문자열을 받아 생성
3. asFileAttribute Method는 파일의 권한과 파일 속성을 Path.createFile 나 Path.createDirectory 메소드를 통해서 설정 할수 있다.
다음은 하나의 파일에 대해 생성 하고 속성을 원본 파일에서 생성되는 파일에게 동일하게 주는 코드 이다.
Path sourceFile = Paths.get("/Temp/4.gif"); Path newFile = Paths.get("/Temp/5.gif"); PosixFileAttributes attrs = Files.readAttributes(sourceFile, PosixFileAttributes.class); FileAttribute
> attr = PosixFilePermissions.asFileAttribute(attrs.permissions()); Files.createFile(newFile, attr); 또한 다음과 같이 문자열을 이용하여 변경 할 수도 있다.
Path file = ...; Set
perms = PosixFilePermissions.fromString("rw-------"); FileAttribute > attr = PosixFilePermissions.asFileAttribute(perms); Files.setPosixFilePermissions(file, perms); + 파일 권한자 또는 그룹의 설정
UserPrincipalLookupService 를 통해서 파일의 권한자와 그룹을 설정 할수 있다.
파일 주인 설정
Path file = ...; UserPrincipal owner = file.GetFileSystem().getUserPrincipalLookupService() .lookupPrincipalByName("sally"); Files.setOwner(file, owner);
파일 그룹 설정
Path file = ...; GroupPrincipal group = file.getFileSystem().getUserPrincipalLookupService() .lookupPrincipalByGroupName("green"); Files.getFileAttributeView(file, PosixFileAttributeView.class) .setGroup(group);
PS : 추후 결과는 linux 운영체제에서 테스트 후 기록 예정
참고 URL : http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html#posix
728x90'JAVA > NIO2' 카테고리의 다른 글
[NIO.2]File Store Attributes (0) 2013.12.30 [NIO.2]User-Defined File Attributes (0) 2013.12.30 [NIO.2]DOS File Attributes (0) 2013.12.16 [NIO.2]Basic File Attributes (0) 2013.12.10 [NIO.2]Managing Metadata (File and File Store Attributes) (0) 2013.11.25