首页 > 系统相关 >linux中umask值计算与配置

linux中umask值计算与配置

时间:2024-11-04 18:57:30浏览次数:3  
标签:101 配置 umask 用户 默认 linux 权限 目录

 

计算原理

  1. 将目录或文件的默认最高权限(目录777、文件666)和umask掩码值都转换为二进制。
  2. 对umask取反。
  3. 将两个二进制值做与运算。
  4. 将与运算后的二进制值转换为十进制,即为用户的新建目录或文件的默认权限。

  注:此处最高权777、666仅在运算过程中定义,非实际文件权限

目录场景

  • 掩码值:0022
  • 目录默认最高权限:777

计算默认权限:

  1. 转为二进制:
    777 = 111 111 111
    022 = 000 010 010
  2. umask取反
    NOT运算:111 101 101
  3. 与运算
    111 111 111 总权限777
    111 101 101 umask取反
    ====================
    111 101 101 新建目录默认权限
  4. 转为十进制
    111 101 101=755
    即该用户新建目录的默认权限为755,即为rwxr-xr-x。

文件场景

  • 掩码值:0022
  • 目录默认最高权限:666

计算默认权限:

  1. 转为二进制:
    666 = 110 110 110
    022 = 000 010 010
  2. umask取反
    NOT运算:111 101 101
  3. 与运算
    110 110 110 总权限666
    111 101 101 umask取反
    ====================
    110 100 100 新建目录默认权限
  4. 转为十进制
    110 100 100 = 644
    即该用户新建目录的默认权限为644,即为rw-r--r--。

公式

  按照umask计算的原理很麻烦,所以弄一个公式来总结计算如下:

  • 目录(文件)的初始权限 = 目录(文件)的最大默认权限 - umask权限

  而这种公式方式需要注意分类:

目录公式:
用户目录默认权限 = 777 - umask值

文件公式:
1)偶数umask:用户文件默认权限 = 666 - umask偶数值
2)奇数umask:用户文件默认权限 = 666 - umask奇数值 + 1

示例

对照原理示例umask值=022,计算如下:
用户目录默认权限:777-022=755,即为rwxr-xr-x。
用户文件默认权限:666-022=644,即为rw-r--r--。

对照引言中的实验umask值=027,计算如下:
用户目录默认权限:777-027=750,即为drwxr-x---。
用户文件默认权限:666-027+1=640,即为-rw-r-----。

umask值修改

暂时修改

  暂时修改的方式,可以通过umask命令来更改,比如计算出权限对应的umask值要改为027,则直接用该用户登录Linux系统后,使用命令umask 027即可。但是,一旦用户退出登录后,umask将恢复默认值,刚才设置的将会失效。所以,这种umask命令方式,只是适合当前会话。

永久修改

  除了使用umask命令进行当前会话的用户默认权限设置外,我们还可以对该用户永久性修改umask值。针对某个用户修改,需要用该用户登录Linux,然后修改/etc/profile文件中的umask值。
  修改前:


总结

  如果我们登陆Linux系统后,新建目录或者文件很多,且权限都是某种特定的,则可以通过umask命令来暂时设置当前会话的默认权限。如果后期需要永久性的可以修改/etc/profile中的umask值。
  当然,对于应用程序一些吐文件时需要先新建的目录或者文件设置权限时,我们为了安全方式,可能不能永久性修改umask值,但,我们可以在启动脚本里面加上umask 022这种命令,来使得当前应用启动时受到当前启动脚本中的umask来控制应用程序输出的文件或目录的默认权限。



转载自(部分内容修改):
链接:https://www.jianshu.com/p/ec80eb5fa548

 

标签:101,配置,umask,用户,默认,linux,权限,目录
From: https://www.cnblogs.com/itbox/p/18526018

相关文章

  • Linux系统压力测试工具(命令行工具)
    Linux的命令行压力测试工具在做基准测试时很有用,通过基准测试对了解一个系统所能达到的最大性能指标,这些指标可以作为后续性能比较、优化评估的参考依据。模拟CPU压力:可以使用stress命令使CPU处于高负载状态。例如,通过stress-c4命令(-c选项用于指定CPU核心数),会让系统的4个CPU核......
  • MySQL8.0安装配置教程【超级详细图解】
    万分感谢.参考文章内容:https://blog.csdn.net/m0_73442728/article/details/131359479万分感谢.参考文章内容:https://blog.csdn.net/qq_40187702/article/details/130618805目录**一、MySQL下载与安装二、MySQL安装三、MySQL连接测试四、配置环境变量一、MySQL下载与安......
  • Linux分区方案、分区建议
    一、Linux分区方案介绍1.标准分区:标准分区可以包含文件系统或交换空间,也能提供一个容器,用于软件RAID和LVM物理卷。2.BTRFS:Btrfs是一个具有几个设备相同的特征的文件系统。它能够处理和管理多个文件,大文件和大体积比的ext2,ext3和ext4文件系统。3.LVM(逻辑卷):创建一个LVM分区自动生......
  • 微信公众号服务器配置一直提示token验证失败?
    本地使用postman,请求了要设置在微信公众号服务器回调的URL,可以正常返回echostr,点击提交,一直报错token验证失败,请问这个是什么原因呢? 解决办法:解决了,我去,好坑啊,遇到该问题的朋友,请做如下检查: 1.检查,request是不是UTF-8,避免获取的数据是乱码  2.response.setContentTyp......
  • 【linux命令】史上最全Linux命令,结合用例通俗易懂
    前言:目前关于Linux命令的文章往往存在内容不全的问题,导致初学者和中级用户在使用过程中遇到困难。许多文章仅涵盖基础命令,而缺乏对系统管理、网络配置、包管理和脚本编写等重要主题的详细讲解。此外,实际操作中的常见问题及其解决方案也常常未被提及,使得用户在遇到困难时无法......
  • linux的Miniconda安装
    下载官网下载安装包:官网安装终端输入以下命令安装shMiniconda3-latest-Linux-x86_64.sh出现如下页面,摁住回车出现如下页面,松开回车,输入yes继续回车输入yes安装完成!重启终端生效,或者执行下面命令立即生效:source~/.bashrc......
  • Linux配置定时任务,定时(每分钟)查看jar是否运行,没有运行则重新启动
    Linux配置定时任务,定时(每分钟)查看jar是否运行,没有运行则重新启动部署在Linux服务器上的服务,有时会因为其他原因(如内存溢出,误杀)导致服务被kill了,影响业务的正常运行。为避免这类问题发生,需要配置监控(定时查询服务是否还在运行中),当发现服务被kill掉了,则重新启动!1、准备工作Jav......