2014-07-21 3 views
0

Для небольшого приложения, которое я пишу, есть файл .xml, который является базой данных.Java: установить права доступа к файлам нескольким пользователям

Когда file.xml создается с:

File xmlDB = new File(newYear + ".xml"); 
PrintWriter writer = new PrintWriter(newYear+".xml", "UTF-8"); 
String header = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><economato> </economato>"; 
writer.println(header); 

то я могу установить права доступа с

xmlDB.setwReadable() 
XML.setWritable() 

, но я понял, что с этими примитивами я могу установить разрешение либо для владелец для всех. Вместо этого, как я могу установить эти разрешения для 2 или 3 человек (учитывая их имя пользователя, которое они используют для входа на сервер?)?

Мне нужно знать это для Linux, но в целом для Windows. Я должен использовать

Runtime.getRuntime().exec("Windows prompt command"); 

, чтобы сделать это?

Благодаря

ответ

1

Вы можете добавить permisions к группам, а затем добавить тех пользователей, которые вы хотите, чтобы группы

//using PosixFilePermission to set file permissions 777 
    Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>(); 
    //add owners permission 
    perms.add(PosixFilePermission.OWNER_READ); 
    perms.add(PosixFilePermission.OWNER_WRITE); 
    perms.add(PosixFilePermission.OWNER_EXECUTE); 
    //add group permissions 
    perms.add(PosixFilePermission.GROUP_READ); 
    perms.add(PosixFilePermission.GROUP_WRITE); 
    perms.add(PosixFilePermission.GROUP_EXECUTE); 
    //add others permissions 
    perms.add(PosixFilePermission.OTHERS_READ); 
    perms.add(PosixFilePermission.OTHERS_WRITE); 
    perms.add(PosixFilePermission.OTHERS_EXECUTE); 

    Files.setPosixFilePermissions(Paths.get("/Users/pankaj/run.sh"), perms); 
+0

Спасибо много. Как насчет этого в WINDOWS? –

+0

В окнах есть группа пользователей. Если вы считаете ответным напоминанием о завершении публикации – paul

Смежные вопросы