普通文件的权限是-rw-r--r--,要把它改为-rwx-r-xr-x,如何改呢,
譬如要该/aaa/bbb/cc中cc的属性,怎么写,我这样怎么改不了:
#include <sys/ctypes.h>
#include <sys/stat.h>
....
chmod("/aaa/bbb/cc","0755");
..........
改成其他东东了,请高手指点,最好给出完整代码段
关于linux下更改文件属性的chmod函数
答案:4 悬赏:60
解决时间 2021-02-19 11:25
- 提问者网友:放荡不羁
- 2021-02-18 22:25
最佳答案
- 二级知识专家网友:狠傷凤凰
- 2021-02-18 23:37
chmod应用格式为 其语法格式为:chmod [who] [opt] [mode] 文件/目录名
例如:chmod *** /xx/yy/zz
其中who表示对象,是以下字母中的一个或组合:
u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限
而mode则代表权限:
r:可读
w:可写
x:可执行
例如:为同组用户增加对文件a.txt的读写权限:
chmod g+rw a.txt
用数字设定法
而数字设定法则更为简单:chmod [mode] 文件名
关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:
111 101 100
再将其每三位转换成为一个十进制数,就是754。
例如,我们想让a.txt这个文件的权限为:
自己 同组用户 其他用户
可读 是 是 是
可写 是 是 可执行
那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:
chmod 664 a.txt
也可以这样看表示权限的数字表达方法 比二进制略简单
4代表读权限 2代表写权限 1代表可执行。然后将每段的rwx权限对应数值相加 (这样看权限:第一个-代表文档是目录还是文件 然后三个一看 三个一看 如-rw-r--r-- 则转化为 - 4+2,4,4 为644
这样就变为chnod 644 ***
你那个问题(-rwxr-xr-x)就可以这样看(- rwx r-x r-x)解决 chmod 755 /aaa/bbb/cc
例如:chmod *** /xx/yy/zz
其中who表示对象,是以下字母中的一个或组合:
u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限
而mode则代表权限:
r:可读
w:可写
x:可执行
例如:为同组用户增加对文件a.txt的读写权限:
chmod g+rw a.txt
用数字设定法
而数字设定法则更为简单:chmod [mode] 文件名
关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:
111 101 100
再将其每三位转换成为一个十进制数,就是754。
例如,我们想让a.txt这个文件的权限为:
自己 同组用户 其他用户
可读 是 是 是
可写 是 是 可执行
那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:
chmod 664 a.txt
也可以这样看表示权限的数字表达方法 比二进制略简单
4代表读权限 2代表写权限 1代表可执行。然后将每段的rwx权限对应数值相加 (这样看权限:第一个-代表文档是目录还是文件 然后三个一看 三个一看 如-rw-r--r-- 则转化为 - 4+2,4,4 为644
这样就变为chnod 644 ***
你那个问题(-rwxr-xr-x)就可以这样看(- rwx r-x r-x)解决 chmod 755 /aaa/bbb/cc
全部回答
- 1楼网友:24K纯糖
- 2021-02-19 02:46
chmod("/aaa/bbb/cc","0755");
把“0755” 改成 0755
另外,注意权限,你的程序有权限修改aaa/bbb/cc的mode么
- 2楼网友:厌今念往
- 2021-02-19 01:43
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
int main()
{
chmod("/home/beyes/chmod_test.txt", 0755);
return 0;
}
----------------
简单的程序,不做出错检查。
首先检查你对文件是否有修改的权限。
声明的头文件为 sys/types.h
注意,你的 chmod() 函数参数传递有误,右面的 0755 不是指针类型。
- 3楼网友:劳资的心禁止访问
- 2021-02-19 00:07
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
int main()
{
chmod("/home/beyes/chmod_test.txt", 0755);
return 0;
}
----------------
简单的程序,不做出错检查。
首先检查你对文件是否有修改的权限。
声明的头文件为 sys/types.h
注意,你的 chmod() 函数参数传递有误,右面的 0755 不是指针类型。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯