[운영체제 실습] 7.시스템 정보 다루기 - (로그인, 패스워드 정보)

#.uname 함수 사용하기 - 운영체제 기본정보 검색

 

예제

결과

 

 

#.sysconf 함수 사용하기 - 시스템 자원정보 검색하기

 

예제 

결과

sysconf 함수에 검색하고 싶은 명령을 인자로 정한다. 실행결과는 클록틱은 초당 100번, 열수있는 최대 파일 개수는 256개이다.

 

#.pathconf - 파일과 디렉토리 관련 자원검색

 

예제

결과

 

 

 

#.getuid, geteuid 함수 사용하기 - 사용자 관련 정보 검색

 

예제

결과

 

결과에서 사용자를 변경하지 않았으므로, uid, euid가 모두 0 이다. 만약 이 실행파일에 setuid가 설정되어 있고, 일반 사용자가 실행한다면 결과는 달라진다.

chmod 4755 ex4_6

ls -l ex 4_6

이제 일반 사용자 아이디로 로그인해서 ./ex4_6 을 실행해보자. uid는 프로그램을 실행한 일반 사용자 uid가 나올 것이고, euid는 setuid가 설정되어 있으므로 ex4_6의 소유자인 root의 uid인 0으로 나온다.

 

 

#.etc/passwd 파일에는 로그인명, uid, gid, 사용자의 홈디렉토리, 로그인 쉘등 사용자에 관한 기본적인 정보가 들어있다.

 

 

#.getpwuid 함수 사용하기 - 패스워드 파일 검색

 

예제

결과

 

#.getpwnam 함수 사용하기 - 이름으로 passwd 파일 읽기

 

예제

결과

 

예제 실행시 시스템에 root 사용자가 없으면 코어 덤프가 발생한다

 

 

#.getpwent 함수 사용하기 - /etc/passwd 파일을 순차적으로 읽기

 

예제

결과

 

 

#.getspnam 함수 사용하기 - 섀도우 파일 검색

 

예제 

결과

 

 

#.etc/shadow 파일을 순차적으로 읽기

 

예제

결과

etc/shadow 파일에서 패스워드 정보를 3개 읽어와서 로그인명과 패스워드를 출력한다. 

 

 

 

 

참고 : 유닉스시스템 프로그래밍(한빛미디어)