필요환경 : 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(); } }