
uname 함수는 시스템 정보를 가져오는 함수로, 사용자에게 시스템 이름, 노드 이름, 릴리즈 버전, 버전, 머신 이름을 반환합니다.
uname 함수를 사용하기 위해서는 root 권한이 필요합니다.
root 권한이 없는 경우 Operation not permitted 오류 메시지가 발생합니다.
이 오류는 시스템 보안을 위해 권한이 없는 사용자가 시스템 정보를 가져올 수 없기 때문입니다.
root 권한을 획득한 후에 uname 함수를 호출하여 시스템 정보를 가져올 수 있습니다.
예를 들어, root 권한을 획득한 후에 다음과 같은 코드를 실행하면 시스템 이름을 성공적으로 가져올 수 있습니다.
#hostingforum.kr
c
#include
int main() {
struct utsname uname_info;
if (uname(&uname_info) == -1) {
perror("uname");
return 1;
}
printf("시스템 이름: %sn", uname_info.sysname);
return 0;
}
또한, setuid bit를 설정하여 특정 프로그램이 root 권한을 가질 수 있도록 설정할 수도 있습니다.
예를 들어, 다음과 같은 코드를 사용하여 setuid bit를 설정할 수 있습니다.
#hostingforum.kr
c
#include
int main() {
chmod("test", S_ISUID | S_IRUSR | S_IXUSR);
return 0;
}
이러한 방법으로 uname 함수를 사용하여 시스템 정보를 가져올 수 있습니다.
2025-04-04 15:19