linux查看进程umask值,在Linux中设置UMASK值

2023-05-16

umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。

对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。执行umask命令可以查看当前用户的umask值。

[root@localhost ~]# umask

0022

umask值一共有4组数字,其中第1组数字用于定义特殊权限,我们一般不予考虑,与一般权限有关的是后3组数字。

默认情况下,对于目录,用户所能拥有的最大权限是777;对于文件,用户所能拥有的最大权限是目录的最大权限去掉执行权限,即666。因为x执行权限对于目录是必须的,没有执行权限就无法进入目录,而对于文件则不必默认赋予x执行权限。

对于root用户,他的umask值是022。当root用户创建目录时,默认的权限就是用最大权限777去掉相应位置的umask值权限,即对于所有者不必去掉任何权限,对于所属组要去掉w权限,对于其他用户也要去掉w权限,所以目录的默认权限就是755;当root用户创建文件时,默认的权限则是用最大权限666去掉相应位置的umask值,即文件的默认权限是644。

可以通过下面的测试操作来了解umask值。

[root@localhost ~]# mkdir directory1 #创建测试目录

[root@localhost ~]# ll -d directory1 #目录的默认权限是755

drwxr-xr-x. 2 root root 4096 12月 2 13:08 directory1

[root@localhost ~]# touch file1 #创建测试文件

[root@localhost ~]# ll file1 #文件的默认权限是644

-rw-r--r--. 1 root root 0 12月 2 13:09 file1

通过umask命令可以修改umask值,比如将umask值设为0077。

[root@localhost ~]# umask 0077

[root@localhost ~]# umask

0077

此时创建的目录默认权限为700,文件默认权限是600:

[root@localhost ~]# mkdir directory2

[root@localhost ~]# ll -d directory2

drwx------. 2 root root 4096 12月 2 13:14 directory2

[root@localhost ~]# touch file2

[root@localhost ~]# ll file2

-rw-------. 1 root root 0 12月 2 13:14 file2

考虑一下,如果将umask值设为0003,那么此时创建的目录或文件的默认权限是多少?

正确的结果应该是:目录的默认权限是774,文件的默认权限是664。在计算默认权限时,不应用最大权限直接减去umask值,而是将umask值所对应的相应位置的权限去掉,这样才能得到正确的结果。

umask命令只能临时修改umask值,系统重启之后umask将还原成默认值。如果要永久修改umask值,需要修改/etc/profile文件或是修改/etc/bashrc文件,例如要将默认umask值设置为027,那么可以在文件中增加一行“umask 027”。

/etc/profile和/etc/bashrc都可以用于设置用户登录系统时自动执行某些操作,他们的区别是/etc/profile只在用户第一次登录时被执行,而/etc/bashrc则在用户每次登录加载Bash Shell时都会被执行。

因而,如果是修改/etc/profile文件,将只对新创建的用户生效;而如果是修改/etc/bashrc文件,则对所有用户都生效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux查看进程umask值,在Linux中设置UMASK值 的相关文章

  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • Gtk-ERROR **:检测到 GTK+ 2.x 符号

    我正在使用 gcc 编译我的 c 应用程序 并使用以下标志 gcc evis c pkg config cflags libs gtk 2 0 libs clutter gtk 1 0 libs gthread 2 0 Wall o evi
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 如何在基于 Linux 的系统上的 C 程序中使用 mqueue?

    如何在基于 Linux 的系统上的 C 程序中使用 mqueue 消息队列 我正在寻找一些好的代码示例 可以展示如何以正确且正确的方式完成此操作 也许是一个操作指南 下面是一个服务器的简单示例 该服务器接收来自客户端的消息 直到收到告诉其停
  • 如何减去两个 gettimeofday 实例?

    我想减去两个 gettimeofday 实例 并以毫秒为单位给出答案 这个想法是 static struct timeval tv gettimeofday tv NULL static struct timeval tv2 gettime
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 使用 Grep 查找两个短语之间的文本块(包括短语)

    是否可以使用 grep 来高亮所有以以下内容开头的文本 mutablePath CGPathCreateMutable 并以以下内容结尾 CGPathAddPath skinMutablePath NULL mutablePath 这两个短
  • 快速像素绘图库

    我的应用程序以每像素的方式生成 动画 因此我需要有效地绘制它们 我尝试过不同的策略 库 但结果并不令人满意 尤其是在更高分辨率的情况下 这是我尝试过的 SDL 好的 但是慢 OpenGL 像素操作效率低下 xlib 更好 但仍然太慢 svg
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost

随机推荐

  • MFC获取字符串长度的5中方法

    char s1 61 34 中文ABC 34 wchar t s2 61 L 34 中文ABC 34 1 sizeof 获取字符数组的字节数 xff08 包括结束符0 xff09 sizeof s1 61 8 ANSI sizeof s2
  • python学习笔记(12)常用模块

    一 模块 包 什么是模块 xff1f 模块实质上就是一个python文件 它是用来组织代码的 xff0c 意思就是说把python代码写到里面 xff0c 文件名就是模块的名称 xff0c test py test就是模块名称 什么是包 x
  • python学习笔记(13)常用模块列表总结

    os模块 os remove 删除文件 os unlink 删除文件 os rename 重命名文件 os listdir 列出指定目录下所有文件 os chdir 改变当前工作目录 os getcwd 获取当前文件路径 os mkdir
  • python获取当前时间的用法

    python获取当前时间的用法 1 先导入库 xff1a import datetime 2 获取当前日期和时间 xff1a now time 61 datetime datetime now 3 格式化成我们想要的日期 xff1a str
  • nmap使用教程

    nmap简介 nmap是一个免费开放的网络扫描和嗅探的工具包 也叫网络映射器 nmap强大之处在于简单 易用 看一下nmap的基本功能 探测一组主机是否在线扫描主机端口 嗅探所提供的网络服务 推断出主机所用的操作系统丰富的脚本功能 wind
  • awk命令中BEGIN和END的作用

    BEGIN中的内容表示在awk起作用 xff08 扫描 xff09 前执行 xff0c 通常被用来初始化一些常量或者环境变量 END表示END之后的操作内容在awk全部扫描完之后执行
  • 国外最漂亮的50个网站欣赏

    http news cnblogs com n 44079 转载于 https www cnblogs com starcrm archive 2008 12 23 1360212 html
  • 串口的Hex/AscII发送与显示

    都要大四了还搞不清这个概念也真是丢脸 首先 xff0c 底层的数据传输都是字节流 xff0c 所以不管选择什么方式 xff0c 都会被分解为一个一个的字节 1选择Hex发送就代表你要发送的内容是纯数字 xff0c 由程序完成String到I
  • vue 数组对象取值

    转载于 https www cnblogs com classmethond p 10799334 html
  • vs调试工具栏不可用(变灰)解决办法

    菜单中页不能进行调试 使用vs的命令行工具 在命令行中运行 xff1a devenv ResetSkipPkgs 重新打开vs xff08 注 xff1a 第一次没有关闭vs xff0c 运行这条命令后 xff0c 会新打开vs没有变化 x
  • Nginx 反向代理Tomcat服务器获取真实IP问题

    1 nginx conf 配置 修改 Server location配置 增加 proxy set header X Real IP remote addr 保留代理之前的真实客户端ip proxy set header X Forward
  • Python实例浅谈之三Python与C/C++相互调用

    一 问题 Python模块和C C 43 43 的动态库间相互调用在实际的应用中会有所涉及 xff0c 在此作一总结 二 Python调用C C 43 43 1 Python调用C动态链接库 Python调用C库比较简单 xff0c 不经过
  • C语言允许以下划线开头的函数存在

    首先 xff0c C 43 43 里关于下划线的问题是源于C语言 xff0c 因为C 43 43 允许用extern C 来修饰代码以C语言语法方式编译 然后说C语言里的下划线 xff1a C语言确实允许以下划线开头的函数存在 xff0c
  • Linux top命令的用法详细详解

    查看多核CPU命令 mpstat P ALL 和 sar P ALL 说明 xff1a sar P ALL gt aaa txt 重定向输出内容到文件 aaa txt top命令经常用来监控Linux的系统状况 xff0c 比如cpu 内存
  • c# WInform 自定义导航布局

    问题形成原因 xff1a 软件一般都是左侧树导航或上部菜单导航 xff0c 做好一个软件后 xff0c 有的客户可能想用一个页面做导航图像 而各个客户用的功能可能不同 xff0c 所以导航布局需要自定义 思路 xff1a 1 把菜单列出来
  • 为什么字符数组要以\0结尾

    一个数组能不能把数组元素大小作为一个元素放在数组的末尾 如果是char类型数组 char string 6 61 39 h 39 39 e 39 l 39 l 39 39 o 39 5 我觉得是可以的 xff0c 但是如果这个数组元素比较长
  • 安装 oh my zsh 提示curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

    最近新买了一台电脑 xff0c 回来从官网安装oh my zsh 时发现一直报错 xff1a curl 7 Failed to connect to raw githubusercontent com port 443 Connection
  • 服务器开机必须要按f1才能进系统,每次开机都要按F1才能进入系统的解决方法...

    有用户反应自己的电脑每次开机都要按F1才能进入系统 xff0c 这一般是由于BIOS设置不正确造成的 xff0c 按F1是为了加载BIOS默认设置 xff0c 下面就教大家如何解决这个问题 1 首先在提示界面按Delete键进入BIOS设置
  • kali安装与配置

    闲来没事 xff0c 把kali虚拟机重新装到了电脑上 xff0c 记录下步骤 1 在kali官网 xff08 https www kali org downloads xff09 直接下载的 ova虚拟机 xff0c 因为之前从官网下载的
  • linux查看进程umask值,在Linux中设置UMASK值

    umask值用于设置用户在创建文件时的默认权限 xff0c 当我们在系统中创建目录或文件时 xff0c 目录或文件所具有的默认权限就是由umask值决定的 对于root用户 xff0c 系统默认的umask值是0022 xff1b 对于普通