Linux中unmask的使用原理,永久生效

Linux无线热点创建:从原理到实践,linux-wifi-hotspot工具详解 在计算机网络中,无线接入点(AP)是实现设备无线互联的关键组件,其核心原理是通过无线网卡创建虚拟接口,运行hostapd服务进行认证与管理。为实现网络共享,需借助NAT(网络地址转换)与DHCP/DNS服务(如dnsmasq)完成地址分配与数据转发,这是构建临时局域网或共享互联网连接的技术基础。该技术对开发者、运维人员及高级用户具有重要价值,能快速搭建测试环境、实现网络共享或部署隔离网络。然而在Linux系统中,由于网络管理方案(如NetworkManager与systemd-networkd)的多样性与底 阅读详情

首先,查看自己当前unmask情况:

$ umask
0022

umask每一位对应的是一个八进制,转成二进制来说明,0022的二进制是 000 000 010 010

忽略掉开头的三个零(我们一会儿再讨论)

关键在于:掩码的二进制形式中,出现数字1的位置,表示关掉相应一个文件模式属性。为0的保持不变

预备知识点:linux的默认权限(无umask时的权限)都为目录777 — rwx rwx rwx,文件666 — rw- rw- rw-

举例1:

原文件权限— rw- rw- rw-
umask000 000 000 010
结果— rw- rw- r–

举例2:

原文件权限— rw- rw- rw-
umask000 000 010 010
结果— rw- r-- r–

所以,umask作用的是位置,可将umask理解成原权限要减去的权限:

umask=000
(rw-rw-rw-)-(---------)=rw-rw-rw-=666

umask=011
(rw-rw-rw-)-(-----x--x)=rw-rw-rw-=666

umask=022
(rw-rw-rw-)-(----w--w-)=rw-r--r--=644

umask=033
(rw-rw-rw-)-(----wx-wx)=rw-r--r--=644

umask=044
(rw-rw-rw-)-(---r--r--)=rw--w--w-=622

umask=055
(rw-rw-rw-)-(---r-xr-x)=rw--w--w-=622

其实本质上,是和默认权限做了NOT运算

例如:
666=0110 0110 0110
umask=000=0000 0000 0000 NOT运算 1111 1111 1111

0110 0110 0110
1111 1111 1111
------------------------------
0110 0110 0110=666

umask=011=0000 0001 0001 NOT运算 1111 1110 1110

0110 0110 0110
1111 1110 1110
------------------------------
0110 0110 0110=666

umask=022=0000 0010 0010 NOT运算 1111 1101 1101

0110 0110 0110
1111 1101 1101
------------------------------
0110 0100 0100=644

umask=033=0000 0011 0011 NOT运算 1111 1100 1100

0110 0110 0110 
1111 1100 1100
------------------------------
0110 0100 0100=644

开头的三个零

一些特殊权限

虽然我们通常看到一个八进制的权限掩码用三位数字来表示,但是从技术层面上来讲, 用四位数字来表示它更确切些。为什么呢?因为,除了读取,写入,和执行权限之外,还有 其它的,较少用到的权限设置。

其中之一是 setuid 位(八进制4000)。当应用到一个可执行文件时,它把有效用户 ID 从真正的用户(实际运行程序的用户)设置成程序所有者的 ID。这种操作通常会应用到 一些由超级用户所拥有的程序。当一个普通用户运行一个程序,这个程序由根用户(root) 所有,并且设置了 setuid 位,这个程序运行时具有超级用户的特权,这样程序就可以 访问普通用户禁止访问的文件和目录。很明显,因为这会引起安全方面的问题,所有可以 设置 setuid 位的程序个数,必须控制在绝对小的范围内。

第二个是 setgid 位(八进制2000),这个相似于 setuid 位,把有效用户组 ID 从真正的 用户组 ID 更改为文件所有者的组 ID。如果设置了一个目录的 setgid 位,则目录中新创建的文件 具有这个目录用户组的所有权,而不是文件创建者所属用户组的所有权。对于共享目录来说, 当一个普通用户组中的成员,需要访问共享目录中的所有文件,而不管文件所有者的主用户组时, 那么设置 setgid 位很有用处。

第三个是 sticky 位(八进制1000)。这个继承于 Unix,在 Unix 中,它可能把一个可执行文件 标志为“不可交换的”。在 Linux 中,会忽略文件的 sticky 位,但是如果一个目录设置了 sticky 位, 那么它能阻止用户删除或重命名文件,除非用户是这个目录的所有者,或者是文件所有者,或是 超级用户。这个经常用来控制访问共享目录,比方说/tmp。

这里有一些例子,使用 chmod 命令和符号表示法,来设置这些特殊的权限。首先, 授予一个程序 setuid 权限。

chmod u+s program

下一步,授予一个目录 setgid 权限:

chmod g+s dir

最后,授予一个目录 sticky 权限:

chmod +t dir

当浏览 ls 命令的输出结果时,你可以确认这些特殊权限。这里有一些例子。首先,一个程序被设置为setuid属性:

-rwsr-xr-x

具有 setgid 属性的目录:

drwxrwsr-x

设置了 sticky 位的目录:

drwxrwxrwt

永久生效

umask 命令设置的掩码值只能在当前 shell 会话中生效,若当前 shell 会话结束后,则必须重新设置。
怎样使掩码值永久生效?

/etc/profile 中加上如下:
umask 你需要的掩码值
然后重新登录

Linux之进程掩码 umask 在用户登录Linux系统环境下,设置用户创建目录和文件的初始化权限。Linux文件的最大权限是。chmode的命令格式一样。 阅读详情

相关推荐

Linux下CH34x串口设备与brltty冲突的深度解析与解决方案

在Linux系统中,串口通信是嵌入式开发、物联网设备调试和工业控制等领域的基础技术。其原理是通过tty子系统管理物理或虚拟的串行端口,实现数据的稳定传输。这项技术的核心价值在于为硬件与软件之间提供了标准化的通信接口。在实际应用中,开发者常使用USB转串口芯片(如CH340、CH341)连接微控制器进行编程与调试。然而,一个常见却令人困惑的问题是,设备插入后能被系统识别,但对应的/dev/ttyUSB*设备节点却无法访问,这往往源于与系统服务brltty的**资源占用冲突**。本文聚焦于这一典型场景,深入剖析

weixin_33726313的博客 332

linux 权限_Linux 下一些特殊权限

我在上篇文章中详细介绍了 Linux 下文件和目录的权限:Eglinux:Linux 权限管理​zhuanlan.zhihu.com在介绍掩码 umask 的时候有提到高级权限,但是没有具体讲,今天我们就来看看这些特殊的权限是怎么样的。Eglinux:Linux 权限管理​zhuanlan.zhihu.com这篇文章中,umask 掩码的使用的时候,都是用文件的原始权限减去掩码中后三位八进制数展开...

weixin_39914868的博客 217

Linux下CH34x串口设备与brltty服务冲突的解决方案

在Linux嵌入式开发中,USB转串口设备是连接微控制器与开发环境的关键桥梁。其工作原理是通过芯片实现USB协议与串行通信协议的转换,使得开发者能够通过虚拟串口进行程序烧录和调试。这一技术的核心价值在于为Arduino、ESP32等开源硬件提供了低成本、高兼容性的开发接口。然而,在Linux桌面环境中,系统服务间的设备管理冲突可能中断这一流程,影响开发效率。具体表现为brltty服务因设备ID匹配规则而误占CH34x芯片,导致串口设备节点无法正常访问。本文针对这一常见问题,从udev规则修改、服务禁用等角度

weixin_34198453的博客 412

Linux 命令unmask

新建文件夹或文件的权限是由所谓基本码减去称之为umask的屏蔽位得到的。 按照规约: 文件夹的基本码是rwxrwxrwx(777), 文件的基本码是rw-rw-rw-(666) 例如unmask 022 因此新建文件夹是777-022=755(rwxr-xr-x), 新建文件是666-022=644(rw-r–r--) ...

weixin_43740223的博客 1617

Linux文件权限原理与实战:从inode校验到生产排障

Linux文件权限是操作系统访问控制的基础机制,其核心在于内核对inode中mode_t字段的原子化校验,结合UID/GID所有权模型实现自主访问控制(DAC)。该机制决定了进程能否读写文件、执行程序或遍历目录,直接影响Web服务部署、Docker容器挂载、Git协作及安全加固等关键场景。理解chmod、chown、umask等命令背后的权限计算逻辑(如八进制映射、符号模式增量修改、umask按位取反),能避免777滥用、403错误、Operation not permitted等高频故障。本文深入inod

weixin_33701294的博客 432

linux中权限管理命令详解(chmod/chown/chgrp/unmask)

Linux操作系统对多用户的管理,是非常繁琐的,所以用组的概念来管理用户就变得简单,每个用户可以在一个独立的组,每个组也可以有零个用户或者多个用户。本文给大家介绍linux中权限管理命令详解(chmod/chown/chgrp/unmask),具体内容如下: chmod 解释 命令名称:chmod 命令英文原意:change the permissions mode of a file 命令所在路径:/bin/chmod 执行权限:所有用户功能描述:改变文件或目录权限 语法 chmod [{ugoa}{+-=}{rwx}] [文件或目录] chmod [mode=421] [文件或目录

LINUX UMASK详解

一 权限掩码umask umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)+写(2)+执行(1),同组的和其它用户有读和执行权限) 二 umask的作用 默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2

上善若水 的专栏 2938

AI训练加速30%!用numactl玩转多显卡绑核的隐藏技巧

本文深入探讨了如何利用Linux系统的numactl工具,通过精确的NUMA绑核策略优化多GPU AI训练性能。文章详细解析了NUMA架构对性能的影响,提供了从拓扑探查、命令实战到多卡脚本化部署的完整指南,并分享了性能验证与常见陷阱,帮助开发者实现高达30%的训练加速。

web99的专栏 448

Linux 链式与层级中断控制器讲解:原理与驱动开发

Linux 内核中链式和层级中断控制器的工作原理与实现细节,基于 4.9.88 版本的源码,深入对比两种中断控制器的处理流程,剖析其特点及适用场景。文中不仅涵盖了中断处理流程中重要的结构体与函数,还详细解读了 irq_domain 的核心作用。同时,通过虚拟硬件模型与实际代码示例(包括 gpio-mxc.c、设备树配置等),分步骤介绍链式与层级中断控制器的驱动开发方法。

caiji0169的博客 5066

告别玄学:用Multisim或LTspice仿真带你直观理解PFC的三种工作模式(CCM/DCM/CrM)

本文通过Multisim和LTspice仿真工具,详细解析了PFC(功率因数校正)的三种工作模式(CCM、DCM、CrM)的本质差异。从波形捕捉到参数优化,提供了实用的仿真技巧和工程实践策略,帮助工程师直观理解并优化PFC电路设计,提升THD和功率因数。

weixin_30363285的博客 396

手把手教你用mitmproxy抓包抖音数据流(附Python脚本模板)

本文详细介绍了如何使用mitmproxy抓包抖音数据流,包括环境搭建、证书安装和Python脚本模板。从mitmproxy配置到抖音API解析,提供完整的移动端数据流分析方案,帮助开发者快速掌握数据抓取技术,适用于应用优化、竞品分析和安全审计等场景。

weixin_33670786的博客 307

linux权限命令chgrp,linux中权限管理命令详解(chmod/chown/chgrp/unmask)

Linux操作系统对多用户的管理,是非常繁琐的,所以用组的概念来管理用户就变得简单,每个用户可以在一个独立的组,每个组也可以有零个用户或者多个用户。本文给大家介绍linux中权限管理命令详解(chmod/chown/chgrp/unmask),具体内容如下:chmod解释命令名称:chmod 命令英文原意:change the permissions mode of a file 命令所在路径:/...

weixin_42372963的博客 227

对角两对双差速轮AGV的平移、直行、转弯和原地旋转之PID控制

本示例将展示如何使用PID控制算法,控制具有对角线布置的两对双差速轮(左前和右后)的AGV,实现平移、直行、转弯和原地旋转等运动。通过对车辆的运动学和PID控制器的设计,我们可以精确地控制AGV的运动

xiaoc100200的博客 1510

linux 上传目录权限,linux下 ftp服务器如何设置上传文件的权限

1、先用vi打开 vsftpd.conf vsftpd的配置文件在Ubuntu下是vi /etc/vsftpd.conf在centos 下是vi /etc/vsftpd/vsftpd.conf这个在不同的系统下可能不同原理一样2.找到unmsk默认是022 ,修改成你要的权限就可以了。3.下面说下unmsk的具体含义umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限。针对文件的...

weixin_29798625的博客 1099

windows server 2012安装升级MySQL

本篇文章主要介绍的是windows server 2012 R2操作系统安装升级以及过程中遇到的问题和对应的解决方法。(数据库低版本为:mysql-5.7.27-winx64;数据库数据库高版本为:mysql-5.7.44-winx64;提示:以下是本篇文章正文内容,下面案例可供参考。

qq_42776231的博客 780

基于Python的CT骨料图像分割与STL批量导出完整指南

本文介绍了一套完整的Python解决方案,用于CT骨料图像的分割与STL导出。针对CT图像中颗粒粘连、噪声伪影等技术难点,提出基于分水岭算法的分割策略,结合距离变换与标记控制实现颗粒分离。内容包括环境配置、数据读取与预处理、Otsu阈值分割、分水岭算法实现、表面提取与STL导出等关键步骤。教程提供详细代码及解释,帮助读者从CT体数据出发,最终生成每个颗粒的三维网格文件,便于后续定量分析和数值模拟。

huanghm88的专栏 236

Rocky Linux 8防火墙原理:firewalld与nftables协同机制解析

firewalld并非iptables的替代品,而是构建在nftables(或iptables)之上的动态策略管理层,解决的是防火墙规则的生命周期管理、区域化信任建模与服务语义封装问题。其核心价值在于将‘端口开放’等运维意图转化为可审计、可回滚、可复用的安全策略,通过zone(网络区域)、service(预定义服务)、rich rule(富规则)和runtime/permanent双模式实现工程级可靠性。在Rocky Linux 8中,firewalld默认后端已切换至nftables,所有firewall

weixin_30616969的博客 402

基于DSIFT多尺度图像融合的MATLAB代码

多尺度图像融合是一种常用的图像处理技术,它可以将具有不同尺度和空间频率特征的图像融合成一幅更具信息丰富度和视觉效果的图像。DSIFT算法是一种基于SIFT算法的改进版本,它在提取图像特征时采用了密集采样的方法,能够有效地提取图像的局部特征。多尺度图像融合基于DSIFT算法的思想,通过在不同尺度下提取图像的DSIFT特征,并将这些特征进行融合,得到最终的融合图像。然后,通过DSIFT算法提取了两幅图像的特征。通过运行上述代码,我们可以在MATLAB中实现基于DSIFT多尺度图像融合的算法,并观察到融合结果。

IELLQUI9的博客 181

Linux handle_level_irq电平触发与mask_ack_irq序列

mask操作切断了信号线到CPU的路径。如果设备未能清除中断源,unmask后中断线仍然有效,将立即重新触发mask_ack_irq序列,CPU陷入循环处理。当电平触发中断的action链表为空时,中断处理会直接将pending中断丢弃但不屏蔽——这与边沿触发不同,边沿触发在action为空时会调用mask_irq永久屏蔽。对于电平触发中断,重新处理意味着重新执行mask_ack_irq和handle_irq_event。Linux handle_level_irq电平触发与mask_ack_irq序列。

2501_94114815的博客 13

PyTorch深度学习项目实战100例数据集

最近很多订阅了的用户私信咨询有些数据集下载不了以及一些文章中没有给出数据集链接,为了解决这个问题,专门开设了本篇文章,提供数据集下载链接,打包100例的所有数据集。本专栏适用人群:深度学习初学者,专栏将具体讲解如何快速搭建深度学习模型用自己的数据集实现深度学习小项目。 本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

linux文件初学学习小记(一)

文件特殊权限: SUID:执行者需要有X权限,执行者在执行本文件时,会暂时获得程序所有者的权力 SGID:执行者需要有X权限,执行者在执行过程中,会获得该程序用户组的支持 SBIT(只对目录有效):需要该执行者对该目录有WX权限,当执行者在该目录下创建文件或目录时,仅有自己于ROOT才能删除 touch filename 更新或者修改filename的访问时间 unmask 修改文...

weixin_30549657的博客 100

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

linux中systemctl详细理解及常用命令

一、systemctl理解 Linux 服务管理两种方式service和systemctl systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。 systemd对应的进程管理命令是systemctl 1. systemctl命令兼容了service 即systemctl也会去/etc/init.d目录下,查看...

GoodIdea 1141

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LINUX:第六单元:Linux下的进程管理

Linux下的进程管理

VINIJR_QIAO的博客 409

详细Linux基础知识

SSH 远程连接解析,Vim 基础操作,用户管理.....

2301_81704123的博客 1248

Linux进程间通信(IPC)实战:原理、选型与性能优化

进程间通信(IPC)是操作系统实现多进程协同的核心机制,其本质是通过内核提供的共享资源实现数据交换。从技术原理看,Linux支持管道、消息队列、共享内存、信号量和套接字等IPC方式,各有其适用场景和性能特征。在分布式系统和高性能计算领域,合理的IPC选型能显著提升吞吐量,例如金融交易系统常采用共享内存+信号量的组合保证原子性,而物联网设备则偏好轻量级的消息队列。现代Linux内核通过memfd_create和io_uring等新特性进一步优化IPC性能,结合NUMA感知的内存分配策略,可降低跨核访问延迟。掌

weixin_30768881的博客 117

《吐血整理,tomcat原理面试

是的,内核可以编辑,因为它是根据通用公共许可证发行的。 6.什么是BASH? 回答:  Bash是Brian Fox为GNU项目编写的Unix shell和命令处理器。它是免费软件,可以代替Bourne Shell。这是一个解释后的未编译过程,也可以在终端窗口中运行。这使用户可以编写命令并引起动作。Bash能够从Shell脚本读取命令。 7.什么是LILO? 回答:  LILO表示Linux Loader是用于Linux操作系统的引导加载程序。大多数Linux操作系统

m0_64384202的博客 1248
上一篇: Python-可扩展性方案,ABC虚拟子类使用
下一篇: Linux 内存:物理内存和虚拟内存
Code_LT
博客等级 码龄10年 307粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值