mkdir函数参数问题,创建目录权限不正确

Iris_Zhou 2012-04-18 03:21:22
用mkdir()函数创建一个目录,比如设置参数为0755,但为什么实际创建的目录的权限不是755,还有一个特殊权限t,网上查了下说是粘滞键,谁能指点下?
...全文
749 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
root_jli 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:
mkdir 中mode设置的值与本进程的umask共同生成了这个文件的权限
比如你设置的mode为0755,但进程的umask为022,则最后生成0755-0022=0733

所以你得考虑进程的umask(文件权限屏蔽值)


你好,我试了下,发现真的如你所说,实际创建的权限值是受到参数和umask共同影响的,那么这是不是意味着在写程序,设置权限参数的时……
[/Quote]
umask的意义就是防止进程本身创建的文件权限大于进程,相当于现实生活中你不能创建比你权利大的部门,如果强行使umask失效,系统会影响系统整体的安全。
惬意 2012-04-18
  • 打赏
  • 举报
回复
文件模式创建屏蔽字是可以改的
#include <sys/stat>
mode_t umask(mode_t cmask);
文件模式创建屏蔽字被设置成为1的位,在创建文件时该位就会被关闭
Iris_Zhou 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
mkdir 中mode设置的值与本进程的umask共同生成了这个文件的权限
比如你设置的mode为0755,但进程的umask为022,则最后生成0755-0022=0733

所以你得考虑进程的umask(文件权限屏蔽值)
[/Quote]

你好,我试了下,发现真的如你所说,实际创建的权限值是受到参数和umask共同影响的,那么这是不是意味着在写程序,设置权限参数的时候要考虑到执行环境的umask值呢?还是说有办法使这个umask不起作用。
root_jli 2012-04-18
  • 打赏
  • 举报
回复
mkdir 中mode设置的值与本进程的umask共同生成了这个文件的权限
比如你设置的mode为0755,但进程的umask为022,则最后生成0755-0022=0733

所以你得考虑进程的umask(文件权限屏蔽值)

23,209

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧