编写一个改变文件读写属性的C程序
[root@kiccleaf leaf]# ll
-rwxr-xr-x 1 root root 5277 Aug 9 19:47 mysql.sh
#采用VIM编辑c源程序
[root@kiccleaf leaf]# vim chmd.c
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
int main()
{
if(chmod("./mysql.sh",S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)==0)
{
printf("设置成功!\n");
}
else
{
printf("设置失败!文件不存在!\n");
}
return 0;
}
#采用gcc编译生成chmd可执行文件
[root@kiccleaf leaf]# gcc -g -Wall -o chmd chmd.c
[root@kiccleaf leaf]# ./chmd
[root@kiccleaf leaf]# ll
-rw-r--r-- 1 root root 5277 Aug 9 19:47 mysql.sh
文件显示“-rw-r–r–”
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
chmod()改变文档存取权限的函数
原形:int chmod(const char *path,int amode)
功能:根据amode的值,配置由path所指文档的存取权限。
amode的值 存取权限
S_IRUSR 用户可以读
S_IWUSR 用户可以写
S_IXUSR 用户可以执行
S_IRWXU 用户可以读写执行
———————————–
S_IRGRP 组可以读
S_IWGRP 组可以写
S_IXGRP 组可以执行
S_IRWXG 组可以读写执行
———————————–
S_IROTH 其他人可以读
S_IWOTH 其他人可以写
S_IXOTH 其他人可以执行
S_IRWXO 其他人可以读写执行
———————————–
S_ISUID 设置用户执行ID
S_ISGID 设置组的执行ID
———————————–
返回值:0(成功);-1(失败)