|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface AclFileAttributeView extends FileOwnerAttributeView
ACLs используются, чтобы определить права доступа к объектам файловой системы. ACL является упорядоченным списком access-control-entries, каждое определение a UserPrincipal и уровень доступа для того пользовательского принципала. Это представление атрибута файла определяет getAcl, и setAcl методы, чтобы читать и записать ACLs основанный на модели ACL, определенной в . Это представление атрибута файла предназначается для реализаций файловой системы, которые поддерживают модель ACL NFSv4 или имеют четко определенное отображение между моделью ACL NFSv4 и моделью ACL, используемой файловой системой. Детали такого отображения являются зависящими от реализации и являются поэтому неуказанными.
Этот class также расширяется FileOwnerAttributeView чтобы определить методы, чтобы получить и установить владельца файла.
Когда файловая система обеспечивает доступ к ряду file-systems это не является гомогенным тогда, только некоторые из файловых систем могут поддерживать ACLs. supportsFileAttributeView метод может использоваться, чтобы протестировать, если файловая система поддерживает ACLs. Функциональная совместимость
RFC 3530 учитывает специальные пользовательские идентификационные данные, которые будут использоваться на платформах, которые поддерживают POSIX определенные права доступа. Специальные пользовательские идентификационные данные"OWNER@", "GROUP@", и"EVERYONE@". Когда оба AclFileAttributeView и PosixFileAttributeView поддерживаются тогда, эти специальные пользовательские идентификационные данные могут быть включены в ACL entries это читается или пишется. Файловая система UserPrincipalLookupService может использоваться, чтобы получить a UserPrincipal представлять эти специальные идентификационные данные, вызывая lookupPrincipalByName метод.
Пример использования: Предположите, что мы хотим добавить запись в существующий ACL, чтобы предоставить "joe" доступ:
// 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);
Где динамический доступ к атрибутам файла требуется, атрибуты, поддерживаемые этим представлением атрибута, следующие:
Имя Ввести "acl" List<AclEntry>"владелец" UserPrincipal
getAttribute метод может использоваться, чтобы считать ACL или атрибуты владельца как будто, вызывая getAcl или getOwner методы.
setAttribute метод может использоваться, чтобы обновить ACL или атрибуты владельца как будто, вызывая setAcl или setOwner методы.
Реализации, поддерживающие это представление атрибута, могут также поддерживать установку начального ACL, создавая файл или каталог. Начальный ACL может быть обеспечен для методов такой как createFile или createDirectory как FileAttribute с name "acl:acl" и a value это - список AclEntry объекты.
Где реализация поддерживает модель ACL, которая отличается от NFSv4, определенная модель ACL, тогда устанавливающая начальный ACL, создавая файл, должна преобразовать ACL в модель, поддерживаемую файловой системой. Методы, которые создают файл, должны отклонить (бросая IOException) любая попытка создать файл, который был бы менее безопасным в результате преобразования.
| Модификатор и Тип | Метод и Описание |
|---|---|
List<AclEntry> |
getAcl()
Читает список управления доступом.
|
Строка |
name()
Возвращает имя представления атрибута.
|
void |
setAcl(List<AclEntry> acl)
Обновления (замена) список управления доступом.
|
getOwner, setOwnerString name()
"acl".name в интерфейсе AttributeViewname в интерфейсе FileOwnerAttributeViewList<AclEntry> getAcl() throws IOException
Когда файловая система использует модель ACL, которая отличается от NFSv4 определенная модель ACL, тогда этот метод возвращает ACL, который является преобразованием ACL к модели ACL NFSv4.
Возвращенный список является поддающимся изменению, чтобы облегчить изменения к существующему ACL. setAcl метод используется, чтобы обновить атрибут ACL файла.
entries представление ACLIOException - если ошибка ввода-вывода происходитSecurityException - В случае провайдера значения по умолчанию устанавливается менеджер безопасности, и это отрицает RuntimePermission("accessUserInformation") или checkRead метод отрицает доступ для чтения к файлу.void setAcl(List<AclEntry> acl) throws IOException
Где файловая система поддерживает Списки управления доступом, и она использует модель ACL, которая отличается от NFSv4 определенная модель ACL, тогда этот метод должен преобразовать ACL в модель, поддерживаемую файловой системой. Этот метод должен отклонить (бросая IOException) любая попытка записать ACL, который, казалось бы, сделал бы файл более безопасным чем, будет иметь место, был ли ACL обновлен. Где реализация не поддерживает отображение AclEntryType.AUDIT или AclEntryType.ALARM записи, тогда этот метод игнорирует эти записи при записи ACL.
Если запись ACL содержит a user-principal это не связывается с тем же самым провайдером как это представление атрибута тогда ProviderMismatchException бросается. Дополнительная проверка допустимости, если таковые вообще имеются, является зависящей от реализации.
Если файловая система поддерживает другую безопасность связанные атрибуты файла (такие как файл access-permissions например), обновление списка управления доступом может также заставить их безопасность связанные атрибуты быть обновленными.
acl - новый список управления доступомIOException - если ошибка ввода-вывода происходит, или ACL недопустимSecurityException - В случае провайдера значения по умолчанию устанавливается менеджер безопасности, это отрицает RuntimePermission("accessUserInformation") или checkWrite метод отрицает доступ для записи к файлу.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92