1.函数说明 在创建时,任何文件的拥有者都是创建该文件的用户。当然用户可以修改该文件的拥有者及拥有者组。在 shell 中,使用 chmod 和 chgrp函数来修改。示例如下: [root@localhost home]# touch testfile //由 root 用户创建文件
[root@localhost home]# ls testfile –l
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile //文件的拥有者及拥有者级均为 root
[root@localhost home]# chown yangzongde testfile //修改文件拥有者为 yangzongde
[root@localhost home]# ls testfile -l
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件拥有者为 yangzongde,但组
仍为 root
[root@localhost home]# chgrp yangzongde testfile //修改拥有者组为 yangzongde
[root@localhost home]# ls testfile -l
-rw--w--w- 1 yangzongde yangzongde 0 Jun 7 19:35 testfile
[root@localhost home]# chown root:root testfile // 使用 chown 一次性修改拥有者及组
[root@localhost home]# ls testfile -l
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile
在 Linux 下 C 应用编程中,可以使用 chown 函数来修改文件的拥有者及拥有者组。此函
数声明如下:
//come from /usr/include/unistd.h
/* Change the owner and group of FILE. */
extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)__THROW
__nonnull ((1)) __wur;
此函数的第一个参数为欲修改用户的文件,第二个参数为修改后的文件拥有者,第三个
参数为修改后该文件拥有者所在的组。
对于已打开的文件,使用 fchown 函数来修改。其第一个参数为已打开文件的文件描述符,
其他同 chown 函数。该函数声明如下:
#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
/* Change the owner and group of the file that FD is open on. */
extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __THROW __wur;
对于连接文件,则可以使用 lchown 函数。其参数同于 chown 函数。
/* Change owner and group of FILE, if it is a symbolic link the ownership of the symbolic
link is changed. */
extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) __THROW
__nonnull ((1)) __wur;
以上这 3 个函数如果执行成功,将返回 0,否则返回-1。
--转自