2013-01-18 3 views
0

java7 File API를 사용하고 있습니다. 검색하고 소유자 속성을 변경할 수있는 파일의 소유자를 설정합니다. 내 코드는 내가 내 작업 나누었다 파일의 소유자를 설정할 수 있습니다이 코드에서java7의 특정 사용자에 대한 파일 액세스 속성을 설정하는 방법

public static void main(String[] args){ 

    Path zip=Paths.get("/home/ritesh/hello"); 
    try{ 
     FileOwnerAttributeView view 
      = Files.getFileAttributeView(zip,FileOwnerAttributeView.class); 

     UserPrincipalLookupService lookupService 
      =FileSystems.getDefaullt().getUserPrincipalLookupService(); 

     UserPrincipal owner=null; 

     try{ owner =lookupService.lookupPrincipalByName("rashmi");} 
     catch(UserPrincipalNotFoundException e){System.out.println("User not found");} 

     view.setOwner(owner); 

    } catch (IOException e){ 
     e.printStackTrace();} 
    } 

사용자 (rashmi) 읽기/쓰기 access.how을 제공하는 파일 하나 이상의 사용자에 대한 읽기 액세스를 제공하는 것입니다입니다 사용자에게 특정 액세스 권한을 부여하려면 코드 또는 링크를 제공하여 내 작업을 수행 할 수 있도록하십시오.

답변

2

이 (약간의 재 포맷과) AclFileAttributeView의 자바 7의 Javadoc에서 가져온 것입니다 :

// lookup "joe" 
UserPrincipal joe = file.getFileSystem().getUserPrincipalLookupService() 
    .lookupPrincipalByName("joe"); 

// get view 
AclFileAttributeView view = Files.getFileAttributeView(file, 
             AclFileAttributeView.class); 

// create ACE to give "joe" read access 
AclEntry entry = AclEntry.newBuilder() 
    .setType(AclEntryType.ALLOW) 
    .setPrincipal(joe) 
    .setPermissions(AclEntryPermission.READ_DATA, 
        AclEntryPermission.READ_ATTRIBUTES) 
    .build(); 

// read ACL, insert ACE, re-write ACL 
List<AclEntry> acl = view.getAcl(); 
acl.add(0, entry); // insert before any DENY entries 
view.setAcl(acl); 

당신은 바로 AclEntry 코드를 사용해야합니다. AclFileAttributeView Javadoc을 참조하십시오.

0

OS의 허가 정책을 이해해야 만합니다. 다른 사용자에게 다른 권한을 지정할 수 없습니다. 다른 방법으로해야합니다.

파일 권한 3 진수 3 개 그룹 3 8 진수 (베이스 (8)), 각각 3 비트를 사용하여 정의되고, 제 번째 Group이고, 첫 번째 그룹은 Owner이고 Read,Write,Execute 약자 Other

그래서 다른 권한을 부여하려면 그룹 속성을 읽기 및 쓰기 권한으로 설정하고 기타를 읽기 전용으로 설정 한 후에는 읽기 및 쓰기 권한을 부여 할 사용자를 추가해야합니다 이 그룹.

+0

유닉스/리눅스 만 아닌가요? –

+0

나는 대부분의 프로그래머들이 유닉스를 사용하고 있기 때문에, 여기에 Windows 권한을 이해할 수있다. http://docs.joomla.org/How_do_Windows_file_permissions_work%3F – Dima

+0

두 시스템 중 하나에있을 수있는 응용 프로그램에 대해 Windows에서 Java를 개발 중이다. –

관련 문제