当前位置:  技术问答>linux和unix

怎么设置文件权限为rw-rw-r-x

    来源: 互联网  发布时间:2016-09-13

    本文导语:  希望一个用户创建的文件默认权限是rw-rw-r-x 请问umask 后面应该设置为多少? | rw-rw-r-x 八进制容易记: r 4 w 2  x 1 - - - o 4+2 - - - g 4+2 - - - o 1 懂了吧 ? | 使用umask,屏蔽字为1的...

希望一个用户创建的文件默认权限是rw-rw-r-x
请问umask 后面应该设置为多少?

|

rw-rw-r-x

八进制容易记:
r 4
w 2 
x 1

- - - o 4+2
- - - g 4+2
- - - o 1

懂了吧 ?


|
使用umask,屏蔽字为1的位,在文件mode中的位就会被关闭。但是,要想确定创建文件的访问权限,仅使用umask并不能高枕无忧。它要结合程序中文件创建函数open或creat所使用的mode参数。
下面有一个例子,希望对LZ有所帮助。

#include ...

#define MODE ( S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IXOTH )
int main( void )
{
        umask( 0 );
        if ( open( "filename", O_CREAT, MODE ) == -1 )
        {
                perror( "open" );
                exit( EXIT_FAILURE );
        }

        close( 3 );
}

|
也别记2进制了直接记
read =4
write=2
execute=1
rw- rw- r-x
6   6   5
chmod 665 $filename

|
你要的是rw-rw-r-x 也就是665.
那么应该设置umask 112 
因为777-665=112 异或运算可以看成减法

|
新创建的文件默认是没用执行权限的
所以无论怎么改umask值,都不能到达那样的结果

|
$ chmod 665 filename

|
最前面的三位是user的读、写、执行权限,中间三位是group的读、写、执行权限,最后三位是other的读、写、执行权限。每一组按8进制计算。
rw-rw-r-x,对应二进制位是110 110 101,换算成8进制后是665。

|
需要umask和create函数联合起来使用哈

|

umask 112
touch test
结果为:-rw-rw-r--

mkdir test
结果为:
drw-rw-r-x

不知道为什么umask设置为 112 其他用户权限中没有 x ,但是新建文件夹的话文件夹会带上。


|


使用umask设置屏蔽字,保证相应权限一定会被屏蔽,但并不是对应于其他的权限的位就一定会被设置。要做到这一点,需要创建文件的程序中明确地指明mode。

大致的原理是这样的,至于更深一层的东西,我现在还不太确定。

|
出于对系统的安全考虑,新建的文件是没有执行权限的
哪怕你uname 000
得到的文件也不会有x属性

|
112
因为是与777相与。
   111 111 111
XOR
   001 001 010
---------------
   110 110 101
   rw- rw- r-x

|

默认的文件产生是没有执行权限的
umask 002
我们项目组就用的这个

    
 
 

您可能感兴趣的文章:

  • 如何给用户管理员设置权限及组的权限设置
  • 权限,怎样设置非root用户对目录的读写运行权限
  • 在redhat7.2中只有root权限才可以直接读写声卡文件吗?怎样设置普通用户的权限使其可以直接访问声卡?
  • 请问设置一个和root权限差不多的用户怎么设置?
  • destoon安全设置中需要设置可写权限的目录及文件
  • Linux中的文件权限设置问题
  • 应该如何设置权限
  • linux权限设置问题!!!
  • rsync怎么设置权限啊?
  • 用户权限设置
  • 如何设置某个目录下的所有文件和目录的权限
  • 请教VSS以及CVS目录权限设置的问题
  • destoon安全设置之目录与文件可写权限
  • 多组权限设置问题
  • CentOS5.2 如何设置目录读写权限,要求子目录均可以读写。
  • 请问下网站服务器根目录/权限如何设置
  • 请高手指点,我想设置vsftp让不同用户有不同权限怎么做?
  • 为什么目录设置了粘着位后提示touch无权限
  • 怎样设置目录的默认权限
  • 我这样的情况如何设置权限合适啊?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 网络技术 iis7站长之家
  • 请问怎样把一个目录下的所有文件夹属性设置为755,文件设置为644?
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • linux中端口号设置是在哪个配置文件,该如何设置?
  • CentOS yum 源设置为163的源操作步骤及配置文件参考
  • 高手指教:为何对文件的一块区域设置了读锁,仍可以设置写锁
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • 在vmware下设置了共享的Windows文件后,怎么在ubuntu里面查看这个文件夹?
  • centos6网络配置及网卡设置相关命令及配置文件
  • 设置密码保护的SqlServer数据库备份文件与恢复文件的方法
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • Linux中如何设置文件以及文件夹的颜色?
  • GCC编译程序时,有自定义头文件,提示找不到该头文件,但他就在这个目录中,如何设置GCC参数?
  • Linux 如何设置某文件是文件夹
  • 请教/var/adm/wtmpx文件的最大大小是多少?是一个数值还是一个与文件系统的比值?是如何设置大小限制的?谢谢!!
  • 设置nfs做为根文件系统问题
  • 如何设置删除文件时需要密码?
  • linux 如何设置文件的用户和组?
  • 如何设置文件默认的程序打开?
  • 怎样设置非执行文件的搜索路径?在线等待!!!
  • JSP中如何设置中的.CLASS文件和数据 库的路径?
  • C++ Bitsets 成员 count():返回被设置的位的个数
  • 在使用gcc之前,需要先设置环境吗?如何设置?在线等!!!
  • C++ I/O 成员 precision():设置精度
  • 用grub能否设置启动密码?如何设置?
  • C++ Bitsets 成员 any():如果有任何一个位被设置就返回true
  • 在linux服务器上面设置squid后怎么设置可以使客户端能使用QQ?
  • C++ Double Ended Queues(双向队列) 成员 assign():设置双向队列的值
  • 用JSP。XML开发网站。请问那种环境设置最好。该如何设置环境
  • C++ Vectors 成员 reserve():设置Vector最小的元素容纳数量
  • 环境变量设置设置与显示不一致


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3