umask & fmask & dmask

本文介绍了umask、dmask及fmask的概念及其在文件系统权限管理中的应用,并提供了具体的fstab配置实例,帮助读者理解如何通过这些选项来设定文件和目录的默认权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

umask —— 设置目录和文件的权限过滤
fmask —— 设置文件的权限过滤
dmask —— 设置目录的权限过滤
dmask和fmask是mount的选项,针对fat/ntfs文件系统,适用于fstab配置(linux的/etc/fstab 文件,Android中没有)
不同于chmod/chown的权限值,它们三个是有mask——过滤的意思 ,以下是它们的对文件的读写权限:

    0   1   2   3   4   5   6   7
r   +   +   +   +   -   -   -   -
w   +   +   -   -   +   +   -   -
x   +   -   +   -   +   -   +   -

其实这个结果是通过 mask = rwx - 文件权限

如设置文件为0755权限,那么mask值则需为0022,即:0755=0777-0022

fstab实例

<file system> <mount point> <type>         <options>       <dump> <pass>
/dev/hda1      /media/win    ntfs  defaults,utf8,umask=111   0      0

其中:umask=111==>(777-111)=666=rw-rw-rw, 即文件拥有读写权限

可以重新设计更更严格的权限关系:dmask=022,fmask=133 即:f=755=rwxr-xr-x, d=644=rw-r--r--

注意:其实umask可理解为关闭某些权限。可以使用umask命令改变一个文件的权限:

umask 查看当前目录的权限mask值
umask <mask> 设置当前的mask值

转载于:https://www.cnblogs.com/cqufengchao/p/7422317.html

switch (poptl-&gt;type) { 292 case OPT_RO : 293 case OPT_FAKE_RW : 294 ctx-&gt;ro = TRUE; 295 break; 296 case OPT_RW : 297 ctx-&gt;rw = TRUE; 298 break; 299 case OPT_NOATIME : 300 ctx-&gt;atime = ATIME_DISABLED; 301 break; 302 case OPT_ATIME : 303 ctx-&gt;atime = ATIME_ENABLED; 304 break; 305 case OPT_RELATIME : 306 ctx-&gt;atime = ATIME_RELATIVE; 307 break; 308 case OPT_DMTIME : CID 166179:(#2 of 6):未初始化的标量变量 (UNINIT) [ &quot;选择问题&quot; ] CID 153052:CERT-CPP 表达式。 (CERT EXP53-CPP) [ &quot;选择问题&quot; ] CID 153482:CERT-C 表达式。 (CERT EXP33-C) [ &quot;选择问题&quot; ] 309 if (!intarg) 310 intarg = DEFAULT_DMTIME; 311 ctx-&gt;dmtime = intarg*10000000LL; 312 break; 313 case OPT_NO_DEF_OPTS : 314 no_def_opts = TRUE; /* Don&#39;t add default options. */ 315 ctx-&gt;silent = FALSE; /* cancel default silent */ 316 break; 317 case OPT_DEFAULT_PERMISSIONS : 318 default_permissions = 1; 319 break; 320 case OPT_PERMISSIONS : 321 permissions = 1; 322 break; 323#if POSIXACLS 324 case OPT_ACL : 325 acl = 1; 326 break; 327#endif 328 case OPT_UMASK : CID 166179: (#6 of 6): 未初始化的标量变量 (UNINIT) 22. uninit_use: 使用了未初始化的值 intarg。 CID 153482:CERT-C 表达式。 (CERT EXP33-C) [ &quot;选择问题&quot; ] CID 153052:CERT-CPP 表达式。 (CERT EXP53-CPP) [ &quot;选择问题&quot; ] 329 ctx-&gt;dmask = ctx-&gt;fmask = intarg; 330 want_permissions = 1; 331 break; 332 case OPT_FMASK : CID 153482:CERT-C 表达式。 (CERT EXP33-C) [ &quot;选择问题&quot; ] CID 166179:(#4 of 6):未初始化的标量变量 (UNINIT) [ &quot;选择问题&quot; ] CID 153052:CERT-CPP 表达式。 (CERT EXP53-CPP) [ &quot;选择问题&quot; ] 333 ctx-&gt;fmask = intarg; 334 want_permissions = 1; 335 break; 336 case OPT_DMASK : CID 166179:(#3 of 6):未初始化的标量变量 (UNINIT) [ &quot;选择问题&quot; ] CID 153052:CERT-CPP 表达式。 (CERT EXP53-CPP) [ &quot;选择问题&quot; ] CID 153482:CERT-C 表达式。 (CERT EXP33-C) [ &quot;选择问题&quot; ] 337 ctx-&gt;dmask = intarg; 338 want_permissions = 1; 339 break; 340 case OPT_UID : CID 153482:CERT-C 表达式。 (CERT EXP33-C) [ &quot;选择问题&quot; ] CID 166179:(#5 of 6):未初始化的标量变量 (UNINIT) [ &quot;选择问题&quot; ] CID 153052:CERT-CPP 表达式。 (CERT EXP53-CPP) [ &quot;选择问题&quot; ] 341 ctx-&gt;uid = intarg; 342 want_permissions = 1; 343 break; 344 case OPT_GID : CID 153482:CERT-C 表达式。 (CERT EXP33-C) [ &quot;选择问题&quot; ] CID 166179:(#1 of 6):未初始化的标量变量 (UNINIT) [ &quot;选择问题&quot; ] CID 153052:CERT-CPP 表达式。 (CERT EXP53-CPP) [ &quot;选择问题&quot; ] 345 ctx-&gt;gid = intarg; 346 want_permissions = 1; 347 break; 348 case OPT_SHOW_SYS_FILES : 349 ctx-&gt;show_sys_files = TRUE; 350 break; 351 case OPT_HIDE_HID_FILES : 352 ctx-&gt;hide_hid_files = TRUE;
最新发布
07-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值