[java] 유닉스/리눅스 시스템 호출을 사용하여 파일의 속성과 퍼미션을 확인하는 방법에 대해 알려주세요.
import java.io.IOException;

public class FilePermissionExample {
    public static void main(String[] args) {
        try {
            String filename = "example.txt";
            Process process = Runtime.getRuntime().exec("ls -l " + filename);
            process.waitFor();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 “ls -l” 명령어를 사용하여 지정된 파일의 속성과 퍼미션을 확인하고 있습니다. 하지만 Process 클래스를 사용하여 외부 명령을 실행할 때는 주의가 필요합니다. 외부 명령어의 출력을 읽어오고 처리하는 부분을 추가해야 합니다.

그리고 외부 명령어 실행 시 보안상의 이유로 사용자 입력을 외부 명령어에 그대로 전달하는 것은 권장되지 않습니다. 이에 따라 파일 속성 및 퍼미션을 확인하는 더 안전하고 권장되는 방법은 Java의 NIO(Non-blocking I/O) 패키지를 사용하여 파일 속성 및 퍼미션을 직접 확인하는 것입니다.

반면에 Java의 NIO 패키지에서 제공하는 메서드를 사용하면 더 안전하게 파일의 속성을 확인할 수 있으며, 보안상의 위험을 줄일 수 있습니다.

더 자세한 내용은 Java NIO 패키지에 대한 공식 문서를 참고하시기 바랍니다.