当前位置: 技术问答>忘记chmod命令的格式怎么写了
iis7站长之家
chmod的使用
来源: 互联网 发布时间:2016-08-08
本文导语: 在程序中使用chmod()函数修改文件的权限,但是修改后为什么权限没有改变 代码如下: #include #include #include #define NEW_MOD S_IRUSR | S_IRGRP | S_IROTH int main(void) { int fd; struct stat buf; mode_t mode; printf("before chmod:n...
在程序中使用chmod()函数修改文件的权限,但是修改后为什么权限没有改变
代码如下:
打印结果:
before chmod:
-rwxrwxrwx 1 root root 0 2010-03-05 10:10 test2.txt
-rwxrwxrwx 1 root root 0 2010-03-05 10:10 test.txt
after chmod:
-rwxrwxrwx 1 root root 0 2010-03-05 10:10 test2.txt
-rwxrwxrwx 1 root root 0 2010-03-05 10:10 test.txt
代码如下:
#include
#include
#include
#define NEW_MOD S_IRUSR | S_IRGRP | S_IROTH
int main(void)
{
int fd;
struct stat buf;
mode_t mode;
printf("before chmod:n");
system("ls -l test*");
//第一种改变文件权限的方法
if(chmod("test.txt", NEW_MOD) == -1)
{
perror("fail chmod");
exit(1);
}
//第二种改变文件权限的方法
if(stat("test2.txt", &buf) == -1)
{
perror("fail stat");
exit(1);
}
mode = buf.st_mode;//取得文件权限字
mode &= (~S_IRWXU & ~S_IRWXG & ~S_IRWXO);//关闭文件所有的权限
mode |= (NEW_MOD);//打开读权限
if(chmod("test2.txt", mode) == -1)
{
perror("fail chmod 2");
exit(1);
}
printf("nafter chmod:n");
system("ls -l test*");
return 0;
}
打印结果:
before chmod:
-rwxrwxrwx 1 root root 0 2010-03-05 10:10 test2.txt
-rwxrwxrwx 1 root root 0 2010-03-05 10:10 test.txt
after chmod:
-rwxrwxrwx 1 root root 0 2010-03-05 10:10 test2.txt
-rwxrwxrwx 1 root root 0 2010-03-05 10:10 test.txt
|
我的测试结果
before chmod:
-rwxrwxrwx 1 root root 18 3月 1 14:56 test.txt
-rwxrwxrwx 1 root root 5 3月 5 11:23 test2.txt
after chmod:
-r--r--r-- 1 root root 18 3月 1 14:56 test.txt
-r--r--r-- 1 root root 5 3月 5 11:23 test2.txt
before chmod:
-rwxrwxrwx 1 root root 18 3月 1 14:56 test.txt
-rwxrwxrwx 1 root root 5 3月 5 11:23 test2.txt
after chmod:
-r--r--r-- 1 root root 18 3月 1 14:56 test.txt
-r--r--r-- 1 root root 5 3月 5 11:23 test2.txt
|
莫非还跟机器有关。。。
|
可能权限不够吧
lz应该是用root账号编译执行的程序吗?
lz应该是用root账号编译执行的程序吗?