首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么从666而不是777中减去umask for files?

从666而不是777中减去umask for files的原因是为了保护文件的安全性和权限控制。

首先,666和777都是文件的默认权限设置。其中,666表示文件所有者、所属组和其他用户都具有读写权限,而777表示文件所有者、所属组和其他用户都具有读写执行权限。

umask是一种权限屏蔽设置,用于限制新创建文件的默认权限。它通过从默认权限中减去指定的权限位来实现。例如,如果umask设置为022,则新创建的文件权限会从默认权限中减去写权限(022的二进制表示为000010)。

为了保护文件的安全性,通常不希望所有用户都具有文件的执行权限。因此,将umask应用于文件权限设置可以限制其他用户对文件的访问权限,提高文件的安全性。

具体来说,从666而不是777中减去umask for files的好处包括:

  1. 权限控制:通过减去umask设置中的权限位,可以限制其他用户对文件的访问权限,仅允许文件所有者和所属组具有特定的权限。这样可以更好地控制文件的访问范围,防止未经授权的用户修改或执行文件。
  2. 安全性:限制文件的执行权限可以减少潜在的安全风险。如果所有用户都具有执行权限,可能会导致恶意代码或脚本在系统中执行,从而危及系统的安全性。通过减去umask设置中的执行权限位,可以降低系统受到恶意代码攻击的风险。
  3. 隐私保护:通过限制其他用户对文件的访问权限,可以保护文件的隐私。只有文件所有者和所属组具有特定的权限,其他用户无法读取或修改文件内容,从而保护了文件中可能包含的敏感信息。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云安全产品:https://cloud.tencent.com/solution/security
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

数组下标为什么0开始,不是1?

例如:二叉树,堆,图,等,是非线性表,是因为,在非线性表中,数据之间并不是简单的前后关系。 数组是如何随机访问数组元素? 数组是如何实现根据下标随机访问数组元素的吗?...低效的“插入”和“删除” 插入 插入:最好O(1) 最坏O(n) 平均O(n) 什么时候会是O(1)?...将多次删除操作中集中在一起执行,可以先记录已经删除的数据,但是不进行数据迁移,仅仅是记录,当发现没有更多空间存储时,再执行真正的删除操作,这样减少数据搬移次数节省耗时。...为什么数组要从 0 开始编号,不是1? 偏移角度理解a[0] 0为偏移量,如果1计数,会多出K-1。增加cpu负担。...为什么循环要写成 for(inti=0;i<3;i++)不是 for(inti=0;i<=2;i++)。

6.1K10

漫话:如何给女朋友解释为什么计算机0开始计数,不是1开始?

0开始更优雅 在《为什么程序员喜欢使用0 ≤ i < 10这种左闭右开的形式写for循环?》一文中我们分析过,Dijkstra通过分析,得出在进行范围表达的时候,使用左闭右开的方式更加合理。...他认为,使用左闭右开的表达方式,当下标 1 开始时,下标范围为 1 <= i < N+1;当下标 0 开始时则是 0 <= i < N; 而显然后面这种表达式更加漂亮、优雅一些。...计数表示偏移量 很多人学习编程都是C语言开始的,那么,C语言就是一个典型的0-base语言(以0作为计数的开始),其实,这一约定早在BCPL时代就是这样的了。...在C语言还不叫C语言,还叫BCPL的时候,他的作者马丁·理察德就设计了数组0开始的索引方式。...开始的(1-based indexing),而对Python语言有巨大影响的另一门语言,C语言的索引则是0开始的。

99040

看了还想看—普通权限及umask

其中root的权限最大,能做任何事,之所以设定root用户权限为最大是为了方便与管理用户或系统重要信息的,不是在工作中用来维护服务器的,所以在生产环境中基本没人拿root来操作,只是必要时才使用,因为...系统默认创建文件是权限是666然后减去当前用户umask值,就得到创建文件的权限值。...//普通用户umask值为002,然后用系统默认的666和777减去umask值之后就得出文件和目录的权限值(664、775) [magedu@localhost ~]$ umask 0002 [magedu...因为系统默认创建文件或目录是权限是666和777,这样岂不是不太不安全,所有文件和目录权限都那么大万一使用root用户误操作不就完蛋了。所以引入umask值来控制用户在创建文件或目录是的权限问题。...这里需要再次注意的是当我们更改umask值之后如果文件默认的666减去我们更改umask值得到的结果如果有奇数,则统一加1,目录则不用管。 2. 把umask值写入配置文件中。

1.2K70

Linux系统文件的默认权限和特殊权限

如何计算umask值 在Linux系统中,目录最大的权限是777,文件最大的权限是666,因为基于安全原因,新建的文件不允许有执行权限,所以文件的权限位来看,文件比目录少了执行(x)权限。...--r-- 1 root root 0 Sep 30 16:41 file1 可以发现用666减去222就得到了444,但真的是这样计算吗?...666-123=543,而是644,目录的权限却是正常减出来的值777-123=654,这是为啥呢?...为了方便记忆可以用下面的这种计算方法: 目录:默认权限是777减去umask值的结果 文件:默认权限是666减去umask值,权限位对应的值如果为奇数则加1,例如:666-123=543,其结果是644...一般情况下,文件能不能访问取决于用户的身份,不是取决于文件本身。但是,有了suid权限的文件就不是这么一回事了,最明显的就是/etc/shadow这个文件。

4.2K10

算法:插入排序详解--为什么第二项开始,不是第一项

PS:对于插入排序这个算法,我们想要看清他就要从它的应用场景,概念,用法等去了解它,实现代码就那么几行,但有时还真是不好理解,比如说为什么第二项开始,不是第一项开始呢,下面我们来举个例子看一下。...插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2) 1:插入排序 /** * 第二项开始...:把第二项数据暂存,和第一项比较,如果第一项>第二项则调换, * 2:把第三项数据暂存,和第二项比较,如果第二项>第三项则调换, 这时调换后的第二项还要和第一项比较,然后再判断调换,当前下标开始向左遍历凡是大于...* * * 很多人估计不理解为什么第二项开始,不是第一项, * 这里我稍微做一下解释,插入排序就是将一个数据插入到已经排好序的有序数据中...,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序, * 我们对于一个数组,不知道哪里是排序好的,可能是前三条,也可能不是有序的,我们这时就要假设一段已经排好序的数组,我们直接取前三项的话

1.2K60

Linux系统中JAVA创建文件后权限不足的问题,无法设置权限的问题

我们知道在Linux系统规定,创建文件的最高权限为666,创建文件夹的最高权限为777,系统通过变量umask来控制创建文件的权限问题。...如果当umask的值为022时,则创建的文件权限为644,即权限是通过最高权限减去umask的值来控制的。...我们知道在Linux系统规定,创建文件的最高权限为666,创建文件夹的最高权限为777,系统通过变量umask来控制创建文件的权限问题。...如果当umask的值为022时,则创建的文件权限为644,即权限是通过最高权限减去umask的值来控制的。...但Linux系统umask的默认值是0022,也就是说创建的文件应该是644的权限,上传的文件却是640的权限。

5.1K20

文件基本权限与特殊权限

默认权限需要换算成字母再相减,所有建立文件之后的默认权限,为666减去umask的值 #比如 666-022=644 #文件默认最大权限666 umask值022 Linux中权限对目录的作用(注意对...:默认所有权限均开放即为777分,默认权限如下drwxrwxrwx(777) umask的分值是为了用在默认权限去掉其分值的所得的权限例如默认的umask的为022即实际上新建文件或者目录权限如下:...中的umask值 $source /etc/profile 注意事项: (1) 上述umask默认022不能由文件默认属性(666)和目录默认属性(777)进行相减运算; ---- 0x02 特殊权限之..._ #它会被permission deny,原因在于实际上admin组的用户只有read and write permission,这里当中显示的rwx是ACL_MASK的值不是group的permission...lsattr 权限 - 文件隐藏属性查看 描述:查看设置chattr的权限; 语法参数: lsattr [-adR]  文件名 # 选项: -a 显示所有文件和目录 -d 若目标是目录仅列出目录本身的属性,不是子文件的属性

4.7K10

Umask补习班

unzip foo.zip 此时查看目录和文件的权限,分别是: foo_dir:755(drwxr-xr-x) foo_file:644(-rw-r–r–) 这是因为目录的基准权限是777,文件的基准权限是666...,由于umask缺省是022,所以: 目录:777 – 022 = 755 文件:666 – 022 = 644 注:权限计算实际上是二进制位的与操作,参考All About the umask and...when extracting files instead of recorded permissions 使用tar命令时,对于root而言,缺省:extract all protection information...,对于非root而言,缺省:apply user’s umask when extracting files instead of recorded permissions。...当我们以非root身份运行tar命令时,虽然会应用umask,但tar有点特殊,它使用目录和文件本身的权限作为基准权限,不是777(目录)和666(文件),所以最终的权限变成了755(777 – 022

46110

详解linux下umask的使用

所以默认目录的最大权限是777,文件的默认最大权限就是666。...所在组 x 其他 r 其他 w 其他 x 所有权限666 1 1 0 1 1 0 1 1 0 umask掩码002 0 0 0 0 1 0 0 1 0 计算后的值 1 1 0 1 0 0 1 0 0...对于目录,直接使用777-umask即可,就得到了最终结果。 对于文件,先使用666-umask。 如果对应位上为偶数:最终权限就是这个偶数值。 如果上面的对应为上有奇数,就对应位+1。...文件的最大权限是666,都是偶数,你得到奇数,说明你的umask有奇数啊,读为4,写为2,都是偶数,说明你有执行权限的。...就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限。所以结果加1。

1.6K21

Linux安全权限

在正常情况下的一个安全临界点是 目录 755 rwxr-xr-x 用户和组 root root文件 644 rw-r--r-- 用户和组 root root 但是并不是所有的权限都能保持这样的状态,...只需要把用户和属组变成网站进程运行的用户就可以了,这个就是不得不开启权限时候的权限设置 目录 755 rwxr-xr-x 用户和组 www www文件 644 rw-r--r--用户和组 www www 一般都不给执行的权限,那为什么目录要给...可以发现root用户默认创建的权限就是我们前面所说的安全临界权限 那默认权限又是由什么来进行控制的,能不能把默认权限更改成其他的,是可以的,它是由umask来进行控制的,第一位表示特殊权限位 ?...目录的默认权限是777,那777减去022就是755了 文件的默认权限是666,那666减去022就是644了 可以通过直接更改umask来改变默认创建时候的权限 ?

1.4K30

umask命令

umask命令 在Linux和其他类Unix的操作系统上,将使用一组默认权限创建新文件,具体来说,可以通过应用称为umask的权限掩码,以特定方式限制新文件的权限,umask命令指定在建立文件时预设的权限掩码...语法 umask [-S] [mask] 参数 -S: 以文字的方式来表示权限掩码。 mask: 果指定了有效的掩码,则将umask设置为此值,如果未指定掩码,则返回当前的umask值。...工作 本质上,umask的每个数字都从操作系统的默认值中减去,以获得定义的默认值,这不是真正的减法,从技术上讲是将掩码按位取反,然后使用逻辑AND操作将此值应用于默认权限,例如umask值为0022:...在Linux系统上,默认的创建文件权限是666,默认创建文件夹的权限为777。...即文件默认权限666 - 022 = 644即现在创建的新文件的权限为644。 创建文件夹则为777 - 022 = 755即现在创建的新文件夹的权限为755。

38620

修改linux默认文件创建权限-umask命令解析

默认情况下,对于目录,用户所能拥有的最大权限是777;对于文件,用户所能拥有的最大权限是目录的最大权限去掉执行权限,即666。...root用户创建文件时,默认的权限则是用最大权限666去掉相应位置的umask值,即文件的默认权限是644。   ...在计算默认权限时,不应用最大权限直接减去umask值,而是将umask值所对应的相应位置的权限去掉,这样才能得到正确的结果。   .../etc/profile和/etc/bashrc都可以用于设置用户登录系统时自动执行某些操作,他们的区别是/etc/profile只在用户第一次登录时被执行,/etc/bashrc则在用户每次登录加载...因而,如果是修改/etc/profile文件,将只对新创建的用户生效;如果是修改/etc/bashrc文件,则对所有用户都生效。

3.8K30

记一个logrotate的配置文件权限问题

问题描述 git仓库更新了别人配置好的logrotate,发现不能正常运行。...但这个提交之前确实时有测试过的,为什么经过上传下载后,就不行了呢?到仓库中去,执行下chmod想修正下权限提交,发现chmod之后git却没检测到有修改。赶紧google学习下。...即当你chmod将文件664改为755时,git可以检测到修改,你也可以添加提交这个改动。 但git只记录执行权限,不记录读写权限。...什么决定了下载下来的文件权限 既然git中不记录读写权限,那么为什么下载下来时664,不是644,666,444等其他权限呢? 答案是,跟每个人本地设定的umask有关。...umask=002时, 创建的文件默认为664(666-002),文件夹默认为775(777-002) umask=022时,创建的文件默认为644(666-022),文件夹默认为755(777-022

1.4K20

Linux权限理解

显然不是,是因为他有会员,是会员用户。...假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask 格式: umask 权限值 说明: 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。...普通用户创建一个普通文件,它的权限都是664 普通用户创建一个目录,它的权限都是775 为什么会出现上述情况?...因为掩码的存在 结论: 默认给普通文件的起始权限是666 默认给目录的起始权限是777 通过umask查看掩码: 掩码会影响初始的权限: 凡是在权限掩码中出现的权限,不会出现在最终文件权限中出现...最终权限 = 起始权限 & (~umask) 666->110 110 110 002->000 000 010 ~umask: 111 111 101 666->110 110

11810

【Linux】掌握Linux系统编程中的权限与访问控制

:普通用户的名字 因为root用户可以再linux系统下做任何事情,不受限制,所以它切换到普通用户不用输入密码,当普通用户切换到超级用户时则需要输入超级用户的密码; ☑️如何创建一个普通用户?...类似Windows的快捷方式) b:块设备文件(例如硬盘、光驱等) p:管道文件 c:字符设备文件(例如屏幕等串口设备) s:套接口文件 可以看到上面创建的dir文件夹(目录)第一位是d;file...创建文件或目录的时候还要受到umask的影响,而我们当前的umask值为0022(第一个0可忽略不计,即022); ☑️umask命令将掩码(022)与文件默认权限(666)进行"与"运算,然后默认权限中去除相应的权限...(文件夹同理),如下图所示: 这里是umask & mask ^ mask(mask就是上图中的666) 或者也可以mask & ~umask ☑️所以我们创建文件显示出的权限是644 将现有的存取权限减去权限掩码后...结果如下: 实例二: umask 011 设置新的umask值为0011 此时我们再创建新文件时,可以看到权限和之前有所不同,变成了666: 3.结语 Linux权限是指对文件和目录的访问控制

10410

tomcat程序生成的日志文件不可读问题 - 运维总结

为了方便开发人员登录查看日志,日志文件的文件权限为"rw-r-r",同时也是系统默认的umask。这里简单说下umask权限码。...在Linux系统下,新建目录的权限是777减去umask码值,新建文件的权限是666减去umaks码值,由于linux默认的umask是0022,所以一般新建目录和文件的默认权限分别是755和644。...Tomcat在启动服务时可能会重新设置UMASK值,其默认值为0027,操作系统的默认值0022,两者不一样。...解决办法:需要到catalina.sh脚本里修改UMASK值: ? 如上,将catalina.sh脚本中的"UMASK"的值由"0027"改为"0022",即改成系统当前用户的umask即可!...m%n" /> 需要注意的是,spring-boot version1.5.7.release的spring-boot-starter-log4j2中引用的log4j2的版本是2.7,filePermissions

1.8K31

Linux | 文件权限管理

文件所有者[u]: 创建文件的用户,也就是文件的拥有者 同组用户[g]: 与文件中所属群组相同群组的用户,也就是和文件建立者在一个组内 其他用户[o]:既不是文件所有者,也不是和文件建立者同一个组下的其他用户...x4E2D;一共有三个类型 [-]代表的是&#x666E...chgrp root file.sh #将file.sh文件的群组改为root 预设权限umask...umask又可以叫被剪掉的权限,root用户管理文件默认值为0022,后三位有效,也就是022,普通用户管理文件的默认值是0002,最后三位有效也就是002 默认的最高权限减去umask的值就是说创建文件或者...其中,默认文件的最高权限为666[rw rw rw],默认目录的最高权限为777[rwx rwx rwx] root用户最终权限减去umask为[644][755] 普通用户最终权限减去umask为[664

2.1K10
领券