例:chmod-R777/mnt/修改整个文件夹的文件权限
在linux中创建文件或者目录会有一个默认权限的,这个默认权限是由umask决定的(默认为0022) 。umask设置的是权限的“补码”,而我们常用chmod设置的是文件权限码 。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中设置umask值 。
umask计算
如root用户的默认umask为0022(第一个0 代表特殊权限位,这里先不考虑),创建的文件默认权限是644(即默认666掩上umask的022),创建的目录是755(即默认777掩上umask的022) 。
对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111),022权限二进制码为(000)(010)(010) 。
上面就是一个umask的正常计算过程,但是这样实在是太麻烦了 。我们使用如下的简单的方法快速计算 。
上面的这个方法计算是非常方便的, 为何得到奇数要+1呢?
文件的最大权限是666 , 都是偶数,你得到奇数,说明你的umask有奇数?。廖?,写为2,都是偶数,说明你有执行权限的 。
就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行 , 其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限 。所以结果加1 。
umask修改
如果想单独修改某个文件夹的新建文件的权限,可以使用setfacl命令 。
例:递归改变文件所有者和所有组 chown-Rhxr:hxr/mnt
例:
【转】Linux CAP介绍与k8s下配置使用 description: "使用 CAP 为容器提权"
date: 2021.11.07 10:34
categories:
- K8s
tags: [Linux, K8s]
keywords: Linux, CAP, capabilities
原文地址:
发音
译为 能力 或 功能 ,一般缩写 CAP , 以下我们简称 Capabilities 为 CAP
从内核 2.2 开始,Linux 将传统上与超级用户 root 关联的特权划分为不同的单元 , 称为 CAP。
CAP 作为线程( Linux 并不真正区分进程和线程)的属性存在,每个单元可以独立启用和禁用 。
如此一来,权限检查的过程就变成了:
在执行特权操作时,如果进程的有效身份不是 root ,就去检查是否具有该特权操作所对应的 CAP , 并以此决定是否可以进行该特权操作 。
比如要向进程发送信号( kill() ),就得具有 CAP_KILL ;如果设置系统时间 , 就得具有 CAP_SYS_TIME。
在 CAP 出现之前,系统进程分为两种:
特权进程可以做所有的事情: 进行管理级别的内核调用;而非特权进程被限制为标准用户的子集调用
某些可执行文件需要由标准用户运行 , 但也需要进行有特权的内核调用,它们需要设置 suid 位,从而有效地授予它们特权访问权限 。(典型的例子是 ping,它被授予进行 ICMP 调用的完全特权访问权 。)
这些可执行文件是黑客关注的主要目标——如果他们可以利用其中的漏洞,他们就可以在系统上升级他们的特权级别 。
由此内核开发人员提出了一个更微妙的解决方案: CAP。
意图很简单: 将所有可能的特权内核调用划分为相关功能组,赋予进程所需要的功能子集 。
因此,内核调用被划分为几十个不同的类别,在很大程度上是成功的 。
回到 ping 的例子 , CAP 的出现使得它仅被赋予一个 CAP_NET_RAW 功能,就能实现所需功能 , 这大大降低了安全风险 。
注意:比较老的操作系统上 , 会通过为 ping 添加 SUID 权限的方式 , 实现普通用户可使用 。
这存在很大的安全隐患 , 笔者所用操作系统( CentOS7 )上 ping 指令已通过 CAP 方式实现
- 如何使用cmd命令行提示符登录mysql服务器 cmd中登陆mysql
- redis缓存 redis缓冲常用命令
- mysql中删除记录的命令 mysql删除中继日志
- redis linux安装包 linux下redis包
- redis map底层实现 redis多个map命令
- mysql 授权命令 mysql限制授权
- mongodb常用命令 mongodb句柄数
- redis命令查看版本 怎样查看redis版本
- 查看redis所有数据 redis查看数据的命令
- redis重新加载配置 redis重新命令
