Press "Enter" to skip to content

标签: chmod

编写一个改变文件读写属性的C程序

编写一个改变文件读写属性的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(失败)

Leave a Comment