Advanced Programming in the UNIX Env. Chapter 4 review

Advanced Programming in the UNIX Env. Chapter 4 review

4. Files and Directories

4.1 Introduction

4.2 stat, fstat, and lstat Functions

file의 statistics를 읽어온다. lstat으로 링크파일을 열면 링크가 가리키는 파일이 아닌 링크 자체의 struct stat을 가져옴.

4.3 File Types

Reg / Dir / Blk / Chr / FIFO / Sock / Lnk 가 있다.

S_ISREG(m), S_ISDIR(m), ... 과 같은 macro를 이용해서 type을 알아낼 수 있다. (m은 struct stat 안의  st_mode).

IPC objects의 type도 S_TYPEISMQ()와 같은 macro로 확인할 수 있다는데 IPC object는 어떤 type의 file인지 모르겠다.

4.4 Set-User-ID and Set-Group-ID

모든 process들은 6개 이상의 ID를 가진다.

User IDs and group IDs associated with each process
real user ID
real group ID
who we really are
effective user ID
effective group ID
supplementary group IDs
used for file access permission checks
saved set-user-ID
saved set-group-ID
saved by exec functions

 supplementary group ID가 뭐지?

보통 elf파일을 실행하면 그걸 실행한 user의 uid와 gid로 프로그램이 실행된다. (uid, gid와 euid, egid가 같다)
하지만 file의 stat.st_mode에서 st_uid또는 st_gid bit이 set 되어 있다면 파일을 실행한 user가 아닌 파일을 소유한 user의 권한으로 프로그램이 실행된다.

4.5 File Access Permissions

Leave a Reply