社区
Linux/Unix社区
帖子详情
mkdir函数参数问题,创建目录权限不正确
Iris_Zhou
2012-04-18 03:21:22
用mkdir()函数创建一个目录,比如设置参数为0755,但为什么实际创建的目录的权限不是755,还有一个特殊权限t,网上查了下说是粘滞键,谁能指点下?
...全文
749
4
打赏
收藏
mkdir函数参数问题,创建目录权限不正确
用mkdir()函数创建一个目录,比如设置参数为0755,但为什么实际创建的目录的权限不是755,还有一个特殊权限t,网上查了下说是粘滞键,谁能指点下?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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(文件权限屏蔽值)
linux
mkdir
函数创建指定
权限
的文件
linux的
mkdir
函数原型如下: int
mkdir
(const char *pathname, mode_t mode); 函数说明:
mkdir
()函数以mode方式创建一个以参数pathname命名的目录,mode定义新
创建目录
的
权限
。 返回值: 若目录创建成功,则返回0;否则返回-1,并将错误记录到全局变量errno中。 m
linux 目录操作(
mkdir
, rmdir, opendir. readdir, closedir)
本章介绍linux提供的函数如何创建(
mkdir
),删除(rmdir), 打开(opendir),读取(readdir),关闭(closedir)目录。 1. 函数讲解 1.1
mkdir
函数 注意:调用函数
mkdir
函数
创建目录
时,设置mode
权限
事mode值会先与umask的取反值相与后得到的值才是最终的目录
权限
,例如参数(mode == 777), linux的(umask == 002)则umask取反~umask == 775,最终目录创建成功后全职为(mode & (~umask) ==
Linux
创建目录
函数
mkdir
一、Linux
创建目录
函数
mkdir
的mode设置
问题
函数原型: #include <sys/stat.h> int
mkdir
(const char *path, mode_t mode); 参数: path是目录名 mode是目录
权限
返回值: 返回0 表示成功, 返回 -1表示错误,并且会设置errno值。 mode模式位: S_IRUSR:用户读
权限
S_IWUSR:用户写
权限
S_IRGRP:用户组读
权限
S_IWGRP:用户组写
权限
S_IROTH:其他组都权
Linux命令大全:
mkdir
命令 -
创建目录
1. 详解
mkdir
命令是“make directories”的缩写,用来
创建目录
。 注意: 默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续
创建目录
。 所以在
创建目录
时,应保证新建的目录与它所在目录下的文件没有重名。
mkdir
命令还可以同时创建多个目录,是不是很强大呢? 语法格式 :
mkdir
[参数] [目录] 常用参数: 参数 说明 -p 递归创建多级目录 -m 建立目录的同时设置目录的
权限
-z 设置安全上下文 -v 显示目录的创建过程 2.
Linux
mkdir
创建目录
时同时设置
权限
Linux
mkdir
创建目录
时同时设置
权限
mkdir
-m 777 test4 创建
权限
为777的目录。
Linux/Unix社区
23,209
社区成员
74,537
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章