4.6 소유자 ID 및 소유 그룹 ID 변경할 때 chown, fchown
리눅스(유닉스) 시스템 호출 중에 chown과 fchown은 파일의 소유자 ID 및 소유 그릅 ID를 변경할 때 사용합니다.
#include <sys/types.h> #include <unistd.h > int chown(char *path, uid_t owner, gid_t group); int fchown(int fd, uid_t owner, gid_t group); 반환 값: 실패 시 -1, 성공 시 0 |
만약 소유 그룹 ID만 변경할 때는 owner 인자를 -1을 전달하고 소유자 ID만 변경할 때는 group 인자를 -1 전달합니다.
다음은 명령줄 인자로 전달받은 이름의 파일을 생성한 후에 소유자 ID 및 소유 그룹 ID 를 확인하여 출력한 후에 chown 시스템 호출로 소유자 ID를 변경하고 다시 소유자 ID와 소유 그룹 ID를 확인하는 예제입니다.
/*********************************************************************** * ex_chown.c * * example source - change file ownership * ***********************************************************************/ #include <stdio.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h>
int main(int argc,char **argv) { if(argc != 2) { fprintf(stderr, "usage: %s [path]\n",argv[1]); return 0; }
int fd = open(argv[1],O_RDWR|O_CREAT,0666); if(fd == -1) { perror("open error"); return 0; } close(fd); struct stat sbuf; stat(argv[1],&sbuf); printf("UID:%u GID:%u\n",sbuf.st_uid, sbuf.st_gid); if(chown(argv[1],501,-1)<0) { perror("chown error"); return 0; } stat(argv[1],&sbuf); printf("UID:%u GID:%u\n",sbuf.st_uid, sbuf.st_gid);
return 0; } |
[그림 4.8] chown으로 사용자 ID 변경 실행 화면
'프로그래밍 기술 > 리눅스(Unix) 시스템 프로그래밍' 카테고리의 다른 글
표준 입출력 - 버퍼 및 버퍼링 정책 설정 (0) | 2017.07.27 |
---|---|
파일입출력 - 버퍼링 (0) | 2017.07.25 |
표준 입출력 라이브러리 (0) | 2017.07.25 |
파일 삭제, unlink, remove, rmdir 함수 (0) | 2017.07.25 |
물리적 파일에 접근하기 위한 경로, 하드 링크(link)와 심볼릭 링크(symlink) (2) | 2016.11.03 |
umask 값을 설정하여 파일 접근 권한 모드를 안전하게 (1) | 2016.11.02 |
chmod 명령의 또 다른 기능 스티키 비트와 set user id bit (0) | 2016.11.01 |
chmod, fchmod 시스템 호출로 파일의 접근 권한 변경 (0) | 2016.10.31 |
access 시스템 호출 (1) | 2016.10.31 |
stst 시스템 호출로 파일 종류 확인 (1) | 2016.10.31 |