필요환경 : Java 1.7 이상에서 가능
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.FileAttribute;
import java.nio.file.attribute.PosixFilePermission;
import java.util.Set;
public class ChangeFilePermission {
public static void main(String[] args) {
// 변경할 파일 경로 설정
String filePath = "/path/to/your/file/example.sh";
try {
// 현재 파일 권한 출력
displayFilePermissions(filePath);
// 현재 파일 권한 가져오기
Set<PosixFilePermission> permissions = Files.getPosixFilePermissions(Path.of(filePath));
// 실행 권한 추가
permissions.add(PosixFilePermission.OWNER_EXECUTE);
permissions.add(PosixFilePermission.GROUP_EXECUTE);
permissions.add(PosixFilePermission.OTHERS_EXECUTE);
// 변경된 권한으로 파일 업데이트
Files.setPosixFilePermissions(Path.of(filePath), permissions);
System.out.println("실행 권한이 성공적으로 추가되었습니다.");
// 변경 후 파일 권한 출력
displayFilePermissions(filePath);
} catch (IOException e) {
e.printStackTrace();
System.err.println("실행 권한 추가 중 오류가 발생했습니다.");
}
}
private static void displayFilePermissions(String filePath) throws IOException {
Set<PosixFilePermission> permissions = Files.getPosixFilePermissions(Path.of(filePath));
System.out.println("현재 파일 권한:");
System.out.println("Owner: " + permissions.contains(PosixFilePermission.OWNER_READ) + permissions.contains(PosixFilePermission.OWNER_WRITE) + permissions.contains(PosixFilePermission.OWNER_EXECUTE));
System.out.println("Group: " + permissions.contains(PosixFilePermission.GROUP_READ) + permissions.contains(PosixFilePermission.GROUP_WRITE) + permissions.contains(PosixFilePermission.GROUP_EXECUTE));
System.out.println("Others: " + permissions.contains(PosixFilePermission.OTHERS_READ) + permissions.contains(PosixFilePermission.OTHERS_WRITE) + permissions.contains(PosixFilePermission.OTHERS_EXECUTE));
System.out.println();
}
}