我通过以只读模式打开源并以只写模式打开目标来复制文件。这很简单,也很有效。
问题是,有时我正在复制一个位于NFS驱动器或其他网络驱动器上的文件,在这些情况下,权限会被搞砸,SELinux会抱怨。然后我去手动设置我刚刚复制的文件的权限,这没关系。我可以再次访问它们(通过ftp,web等)。
有没有办法复制文件并将权限更改为某个用户和组?
代码表示赞赏。 感谢
编辑:
会像
open(argv[2], O_WRONLY | O_CREAT, 0666)
工作?
答案 0 :(得分:2)
对于用户和组设置更改,请使用chown()函数。 chmod()处理st_mode值,如protectctions和setuid,setgid,sticky bit。
答案 1 :(得分:0)
根据http://www.delorie.com/gnu/docs/glibc/libc_290.html,有一个功能:
int chmod (const char *filename, mode_t mode)
这应该做你想要的。