2013-03-22 2 views
3

Есть ли какой-либо механизм для получения и установки прав на файл/каталог?Как управлять правами доступа к Linux в Java

Например, я хочу показать permisssions файла в пути оболочки:

-rwxr-xr-- 

Можно ли это сделать с помощью Java?

  • Я знаю, что есть некоторые методы в File классе, чтобы знать, если файл canExecute, canRead и canWrite, но AFAIK эта информация предназначена только для текущего пользователя. Мне нужно знать все восьмеричное число, например 755, поэтому мне нужно получить его от пользователя, от группы и от других.
  • Я знаю, что Java7 приносит операции Posix, но как это сделать, используя меньшую JRE?
  • Я хотел был бы не использовать команду как ls, или chmod.

Заранее спасибо.

+0

Можете ли вы использовать сторонние библиотеки? – Joni

ответ

1

Если вы можете использовать внешние библиотеки, есть несколько:

Если целая библиотека кажется hassle, создавая обертку JNI, которая вызывает функцию lstat C и возвращает доступ m Ода занимает около 10 минут. Вот учебник, который создает такой wrapper for the isatty and ttyname functions.

0

Как вы говорите, в Java7 JVM поддерживает его, поэтому у вас есть гарантия, что это можно сделать портативно во всех ОС (потому что реализация JVM позаботится об этом). В Java7 вам нужно будет использовать собственную библиотеку за OS, которую вы хотите поддержать. Это потенциально даже грязнее, чем выполнение chmod

+0

Итак, что такое ответ? Нет, ты не можешь этого сделать? –

+0

@ DanielPeñalba правый. Насколько я знаю, pre-Java7, ваш лучший вариант - выполнение 'chmod', если вы находитесь в Linux. Но подождите немного, другие могут знать лучше! – Miquel

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