Рубрики
Без рубрики

Java Устанавливает права доступа к файлам с помощью PosixFilePermission

Класс файлов Java имеет возможность устанавливать права доступа к файлам, но он не является универсальным. Самым большим недостатком является то, что вы можете разделить права доступа к файлам на два

Автор оригинала: Pankaj Kumar.

Класс файлов Java имеет возможность устанавливать права доступа к файлам, но он не является универсальным. Самым большим недостатком является то, что вы можете разделить права доступа к файлам на два набора пользователей – владельца и всех остальных. Вы не можете установить разные права доступа к файлам для группы и других пользователей.

Java Устанавливает права Доступа к Файлам

Java 7 представила PosixFilePermission | Перечисление и java.nio.файл.Файлы включает в себя метод setPosixFilePermissions(Путь к пути, установить perms) , который можно легко использовать для установки прав доступа к файлам.

Вот простая программа, которая ясно показывает, почему PosixFilePermission лучше.

Вот простая программа, которая ясно показывает, почему PosixFilePermission лучше.

package com.journaldev.files;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermission;
import java.util.HashSet;
import java.util.Set;

public class FilePermissions {

    /**
     * File Permissions Java Example using File and PosixFilePermission
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        File file = new File("/Users/pankaj/temp.txt");
        
        //set application user permissions to 455
        file.setExecutable(false);
        file.setReadable(false);
        file.setWritable(true);
        
        //change permission to 777 for all the users
        //no option for group and others
        file.setExecutable(true, false);
        file.setReadable(true, false);
        file.setWritable(true, false);
        
        //using PosixFilePermission to set file permissions 777
        Set perms = new HashSet();
        //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);
    }

}

Из приведенного выше примера ясно, что PosixFilePermission предоставляет больше возможностей, а код более удобочитаем. Если вы используете Java 7 или выше, вам следует использовать его для настройки разрешений на файлы в java.