chmod更改文件权限+测试代码

  变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:

  u:User,即文件或目录的拥有者。

  g:Group,即文件或目录的所属群组。

  o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。

  a:All,即全部的用户,包含拥有者,所属群组以及其他用户。

  有关权限代号的部分,列表于下:

  r:读取权限,数字代号为"4"。

  w:写入权限,数字代号为"2"。

  x:执行或切换权限,数字代号为"1"。

  -:不具任何权限,数字代号为"0"。

  s:特殊?b>功能说明:变更文件或目录的权限。

语法

  chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...]

  chmod [-cfRv][--help][--version][数字代号][文件或目录...]

  chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]

选项说明

  -c或--changes  效果类似"-v"参数,但仅回报更改的部分。

  -f或--quiet或--silent  不显示错误信息

  -R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。

  -v或--verbose  显示指令执行过程。

  --help  在线帮助。

  --reference=<参考文件或目录>  把指定文件或目录的权限全部设成和参考文件或目录的权限相同

  --version  显示版本信息。

  <权限范围>+<权限设置>  开启权限范围的文件或目录的该项权限设置。

  <权限范围>-<权限设置>  关闭权限范围的文件或目录的该项权限设置。

  <权限范围>=<权限设置>  指定权限范围的文件或目录的该项权限设置。


       #include <sys/stat.h>
       

       int chmod(const char *path, mode_t mode);
       int fchmod(int fd, mode_t mode);

       S_ISUID  (04000)  set-user-ID  (set  process  effective  user   ID   on
                         execve(2))


       S_ISGID  (02000)  set-group-ID  (set  process  effective  group  ID  on
                         execve(2);  mandatory  locking,   as   described   in
                         fcntl(2);  take a new file's group from parent direc‐
                         tory, as described in chown(2) and mkdir(2))


       S_ISVTX  (01000)  sticky bit (restricted deletion flag, as described in
                         unlink(2))


       S_IRUSR  (00400)  read by owner


       S_IWUSR  (00200)  write by owner


       S_IXUSR  (00100)  execute/search  by owner ("search" applies for direc‐
                         tories, and means that entries within  the  directory
                         can be accessed)


       S_IRGRP  (00040)  read by group

       S_IWGRP  (00020)  write by group


       S_IXGRP  (00010)  execute/search by group


       S_IROTH  (00004)  read by others


       S_IWOTH  (00002)  write by others


       S_IXOTH  (00001)  execute/search by others



RETURN VALUE
       On  success,  zero is returned.  On error, -1 is returned, and errno is
       set appropriately.



//chmod更改文件权限
/*
#include<stdio.h>
#include <sys/stat.h>

 int main(int argc,char**argv)
 {
	int ret=-1;
	
	if(argc != 2)
	{
		printf("usage:%s filename.\n",argv[1]);
		return -1;
	}
	 
	ret= chmod(argv[1], S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP |  S_IROTH);
	 if(ret<0)
	 {
		 printf("chmod");
		 return -1;
	 }
    return 0;
 	 
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值