C语言chown()函数:改变文件所有者
相关函数:fchown, lchown, chmod
头文件:#include <sys/types.h> #include <unistd.h>
定义函数:int chown(const char * path, uid_t owner, gid_t group);
函数说明:chown()会将参数path 指定文件的所有者变更为参数owner 代表的用户,而将该文件的组变更为参数group 组。如果参数owner 或group 为-1,对应的所有者或组不会有所改变。root 与文件所有者皆可改变文件组,但所有者必须是参数group 组的成员。当root 用chown()改变文件所有者或组时,该文件若具有S_ISUID或S_ISGID 权限,则会清除此权限位,此外如果具有S_ISGID 权限但不具S_IXGRP 位,则该文件会被强制锁定,文件模式会保留。
返回值:成功则返回0, 失败返回-1, 错误原因存于errno.
错误代码:参考 chmod()。
范例
/* 将/etc/passwd 的所有者和组都设为root */
#include <sys/types.h>
#include <unistd.h>
main()
{
chown("/etc/passwd", 0, 0);
}
头文件:#include <sys/types.h> #include <unistd.h>
定义函数:int chown(const char * path, uid_t owner, gid_t group);
函数说明:chown()会将参数path 指定文件的所有者变更为参数owner 代表的用户,而将该文件的组变更为参数group 组。如果参数owner 或group 为-1,对应的所有者或组不会有所改变。root 与文件所有者皆可改变文件组,但所有者必须是参数group 组的成员。当root 用chown()改变文件所有者或组时,该文件若具有S_ISUID或S_ISGID 权限,则会清除此权限位,此外如果具有S_ISGID 权限但不具S_IXGRP 位,则该文件会被强制锁定,文件模式会保留。
返回值:成功则返回0, 失败返回-1, 错误原因存于errno.
错误代码:参考 chmod()。
范例
/* 将/etc/passwd 的所有者和组都设为root */
#include <sys/types.h>
#include <unistd.h>
main()
{
chown("/etc/passwd", 0, 0);
}