파일을 읽을 수는 있지만 복사, 이동 또는 삭제할 수는 없도록 Linux 시스템이나 특정 디렉터리(내 경우에는 Scientific Linux)에 대한 권한을 설정할 수 있습니까?
고쳐 쓰다:내 시나리오는 우리가 만드는 데 많은 시간과 노력을 들인 일부 이미지가 포함된 GUI 프로그램을 개발하는 것이었습니다. 우리의 디렉토리 구조는 다음과 같습니다:
/GUI/program/GUI.exe
/GUI/images/A/A1.jpeg A2.png .... A200.png
/GUI/images/B/B1.png B2.png .... B200.png
.
.
/GUI/images/I/I1.png I2.png .... I200.png
./GUI.exe
사용자가 상호 작용해야 하는 이미지를 호출하는 것은 말할 필요도 없습니다 .
이제 숨어야 해요 /GUI/images/*
.
해결 방법이 무엇입니까?
답변1
파일을 읽을 수 있으면 복사도 가능합니다. 그러나 파일이 있는 디렉터리에 쓰기 권한을 부여하지 않으면 파일이 삭제되거나 이동되는 것을 방지할 수 있습니다.
질문이 수정된 이후 추가 정보로 편집되었습니다.
이제 질문에 추가한 시나리오를 고려하면 다음과 같이 할 수 있습니다.
- 이 프로그램만을 위한 사용자를 생성하세요.
guiuser
- /GUI/images 디렉토리의 소유권을 다음과 같이 변경합니다.
guiuser
guiuser
읽기 권한 만 갖도록 디렉터리와 그 안에 있는 파일에 대한 권한을 변경합니다.- 프로그램 GUI.exe의 소유자를 다음으로 변경하십시오.
guiuser
- 프로그램 setuid(
chmod u+s /GUI/program/GUI.exe
) 의 실행 권한을 변경합니다.
사용자가 프로그램을 실행하면 프로그램에 접근 권한이 부여되므로 guiuser
일반 사용자가 권한이 없더라도 프로그램은 파일을 읽을 수 있습니다.
답변2
복사는 마술이 아닙니다. 단지 파일을 읽고 읽은 내용을 다른 곳에 저장하는 것뿐입니다. 따라서 기본적으로 파일을 읽을 수 있으면 복사할 수 있습니다.
하지만 무엇을 하느냐에 따라서는 데이터를 만들어서 목표를 달성할 수도 있습니다.일반 사용자는 읽을 수 없습니다., 특수 프로그램을 통해서만 액세스할 수 있습니다(과거에는 setuid 프로그램이었지만 요즘에는 웹 애플리케이션이 더 적절할 수 있습니다). 프로그램은 요청 시 전체 파일이 아닌 부분 데이터를 배포합니다. 본질적인 문제가 여전히 존재하기 때문에 이는 불가능합니다.예방하다복제가 가능하지만 요청 속도를 제한하는 논리가 있을 수 있으므로 더 어려울 수 있습니다. 또는 다음과 같이 데이터를 렌더링할 수 있습니다.손실이 많은원래의 정보를 제공하는 것보다 예를 들어 소스가 HTML 형식인 경우 렌더링된 일반 텍스트가 전송됩니다. 의지가 있는 사용자는 원본 콘텐츠를 추측하고 재구성할 수 있지만 정확한 결과를 얻을 가능성은 거의 없습니다.
답변3
이러한 이미지를 표시하려면 읽을 수 있어야 합니다. 읽을 수 있으면 복사할 수 있습니다. 복사에는 무언가를 읽고 다른 곳에 쓰는 것이 포함되기 때문입니다. 사용자 정의 애플리케이션이나 웹을 통해 표시할지 여부mattdm이 제안한 것. 웹 브라우저가 이미지를 표시할 때 먼저 이미지를 다운로드해야 합니다(이미지를 다운로드하지 않으면 무엇을 표시할지 알 수 없습니다).
아래와 같이 프로그램에 추가 권한을 부여하고 이러한 추가 권한을 통해서만 이미지에 액세스할 수 있도록 할 수 있습니다.Jenny D가 제안한 것. 하지만 처음부터 안전한 애플리케이션을 설계하지 않으면 그렇게 할 수 없습니다. 또한 시스템 관리자는 어쨌든 이러한 이미지에 액세스할 수 있습니다.
당신은 기술을 통해 사회 문제를 해결하려고 노력하고 있는 것이 거의 확실합니다. 우리 모두 알고 있듯이 이것은 작동하지 않습니다. 사용자가 이미지를 복사하지 않겠다는 계약서에 서명하도록 하세요. 이것을 라이센스라고 합니다.
답변4
사본과는 아무런 관련이 없습니다. 파일을 복사하는 도구는 파일을 읽기만 하며 시스템은 읽기 목적을 결정할 수 없습니다.
사용자의 글쓰기 능력을 완전히 제거하지 않는 이상어딘가에, 합리적으로 능력이 있는 사용자는 파일을 읽을 수 있다면 파일을 복사하는 방법을 찾을 것입니다.