C함수 소유권 변경하기 chown()
파일의 소유권을 변경합니다. 주의하실 점은 root, 즉 수퍼유저가 실행했을 때 가능합니다.
- 헤더: unistd.h
- 형태: int chown(const char *path, uid_t owner, gid_t group)
- 인수: char *path 파일 전체 이름
uid_t owner 파일에 대한 새로운 소유자의 사용자 ID, 만일 -1이면 변경 취소
gid_t group 파일에 대한 새로운 소유자의 그룹 ID, 만일 -1이면 변경 취소 - 반환: int 0 == 성공, -1 == 실패
C언어 chown() 함수 예제
#include <stdio.h>
#include <unistd.h>
#include <pwd.h>
#include <sys/stat.h>
int main()
{
struct passwd *root_pw;
if ( 0 != getuid()){
printf( "수퍼유저만 사용할 수 있습니다.\n");
return -1;
}
root_pw = getpwnam( "jwjw");
if ( -1 == chown( "./a.out", root_pw->pw_uid, root_pw->pw_gid))
printf( "소유권 변경 실패\n");
}
C언어 chown() 예제 실행 결과
]# ls -al
합계 20
drwxr-xr-x 2 jwjw jwjw 4096 9월 25 11:21 .
drwxr-xr-x 7 jwjw jwjw 4096 9월 25 06:20 ..
-rwxr-xr-x 1 root root 5112 9월 25 11:21 a.out
-rw-r--r-- 1 jwjw jwjw 482 9월 25 11:21 test.c
]$ ./a.out
]# ls -al
합계 20
drwxr-xr-x 2 jwjw jwjw 4096 9월 25 11:21 .
drwxr-xr-x 7 jwjw jwjw 4096 9월 25 06:20 ..
-rwxr-xr-x 1 jwjw jwjw 5112 9월 25 11:21 a.out
-rw-r--r-- 1 jwjw jwjw 482 9월 25 11:21 test.c
]$
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 소유권 변경하기 함수 fchown() (0) | 2020.03.15 |
---|---|
C언어 파일의 접근 권한 변경 함수 fchmod() (0) | 2020.03.15 |
C언어 파일 접근 권한 변경 함수 chmod() (0) | 2020.03.15 |