시스템 명령을 통해서만 C 프로그램에서 파일을 읽을 수 있습니다.

시스템 명령을 통해서만 C 프로그램에서 파일을 읽을 수 있습니다.

program.cC 프로그램과 동일한 디렉터리에 있는 파일 system("/bin/cat file.txt")에 명령이 포함된 C 프로그램이 있습니다 . file.txt이제 사용자가 단순히 file.txt를 읽는 것을 방지하고 싶습니다 cat file.txt. 그러나 ./program 1234시스템 명령을 실행할 때 내용이 표시되어야 합니다 file.txt. 이를 위해 파일 권한을 어떻게 수정합니까?

답변1

프로세스에 높은 권한(이 경우 파일을 읽을 수 있지만 일반 사용자는 읽을 수 없음)을 부여하는 것이 바로 SUID/SGID가 수행하는 작업입니다. 전체 UID/EUID 혼란을 주의 깊게 읽어 보십시오. 이는 완전히 사소한 것이 아닙니다.

가능한이를 위한 그룹을 생성하고, 프로그램 SGID를 사용하여 그룹이 소유하고 루트만 쓸 수 있고 그룹이 읽을 수 있는 파일을 만듭니다. 게임에서는 고득점 파일 쓰기 제한과 유사한 기능을 사용합니다.

관련 정보