설명

파일의 소유권을 변경합니다. 주의하실 점은 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
예제
#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");
}
]# gcc test.c
]# 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