Linux系统的权限有6种。

  • 读写执行为基本权限。
  • umask为默认权限。
  • 后边还有4种权限,会在之后的权限管理部分详细讲解。

1、文件和目录的默认权限

我们先创建一个文件abc,然后查看abc文件的长信息。

[root@192 ~]# touch abc
[root@192 ~]# ls -l abc
-rw-r--r--. 1 root root 0 12月 30 05:32 abc

可以看到上边新创建的文件,直接就有一定的权限,我们把这种权限叫默认权限。

Linux系统是如何得到文件和目录的默认权限?

是通过umask值来获得文件和目录的默认权限。

2、umask默认权限

(这个值基本上不用我们自己修改,但是我们一定要知道这个,并且能看懂就可以了。)

(1)查看系统的umask权限

[root@localhost ~ ] # umask
0022

注意:我们之前学的权限只有三位,我们现在忽略第一位,第一位的作用在以后文章中会详细说明。

(2)用八进制数值显示umask权限

#用字母表示文件和目录的初始权限
[root@localhost ~ ] # umask -S
u=rwx,g=rx,O=rx

(3)umask权限的计算方法

我们需要先了解一下新建文件和目录的默认最大权限。

  • 对文件来讲,新建文件的默认最大权限是666,没有执行(x)权限。这是因为执行权限对文件来讲比较危险,不能在新建文件的时候默认赋予,而必须通过用户手工赋予。
  • 对目录来讲,新建目录的默认最大权限是777。这是因为对目录而言,执行(x)权限仅仅代表进入目录,所以即使建立新文件时直接默认赋予,也没有什么危险。

按照官方的标准算法,umask默认权限需要使用二进制进行逻辑与逻辑非联合运算才可以得到正确的新建文件和目录的默认权限。这种方法对计算机来说很好计算,但是对人来说既不好计算,也不好理解,不推荐。

我们在这里还是按照权限字母来讲解umask权限的计算方法。(推荐算法)

我们就按照默认的umask值是022来分别计算一下新建文件和目录的默认权限吧。

提示:022,表示三位算一个权限,第一位表示文件类型。

  • 文件的默认权限最大只能是666,而umask的值是022,如下:

    -rw-rw-rw-减去-----w--w-等于-rw-r--r--
  • 目录的默认权限最大可以是777,而umask的值是022

    drwxrwxrwx减去d----w--w-等于drwx-r-xr-x

(4)注意:umask默认权限的计算绝不是数字直接相减。

例如umask是033呢?

修改umask值命令为:[root@192 ~]# umask 033

注意:(临时修改,如果需要永久修改,就要修改配置文件)

文件的默认权限最大只能是666,而umask的值是033,如下:

-rw-rw-rw-减去---wx-wx等于-rw-r-r-

r--=r

w-w=-

--x=-x(所有负的都为-

例如umask是033用数字相减呢?

666-033=633

翻译成权限为-rw--rx-rx,这就不对了。

提示:

修改umask值的配置文件在/etc/profile文件,/etc/profile文件是环境变量配置文件。

什么是环境变量配置文件?

修改该文件内容,会影响当前系统的操作环境。

环境变量配置文件并不是只有这一个,默认是有4个环境变量配置文件,另加一个目录(目录中有很多配置文件,以后用到哪个说哪个。)。

说明:

我们进入到上边所提到的/etc/profile环境变量配置文件,可以找到关于umask值的代码块,如下所示:

[user1@192 ~]$ cat /etc/profile

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi #在Linux系统中root用户的UID=0,而普通用户的UID>500,500以内是留给系统用户的。
#[ "`id -gn`" = "`id -un`" ]判断的是用户的UID和GID是相等的,暂时可以忽略不看。 root用户的umask值
[root@192 ~]# umask
0022 普通用户的umask值
[user1@192 ~]$ umask
0002

总结:

umask值重要度很高,默认自动赋值并生效。但是不需要用户介入(修改),能看懂,知道他就可以了。

『学了就忘』Linux基础命令 — 25、文件基本权限的管理的更多相关文章

  1. 『学了就忘』Linux基础命令 — 20、文件操作的相关命令

    目录 1.touch 命令 2.stat命令 3.cat命令 4.more命令 5.less命令 6.head命令 7.tail命令 1.touch 命令 touch命令用于创建空文件或修改文件时间, ...

  2. 『学了就忘』Linux基础命令 — 22、Linux中的硬链接和软链接

    目录 1.文件和目录的基本存储 2.In命令介绍 (1)我们来看看ln命令的基本信息 (2)ln命令的基本格式 3.创建硬链接 (1)如何创建硬链接 (2)硬链接特征 (3)硬连接原理 4.创建软链接 ...

  3. 『学了就忘』Linux基础命令 — 23、文件基本权限的介绍和作用

    目录 1.基本权限的介绍 (1)权限位的含义 (2)权限的优先级 2.权限的基本作用 (1)权限含义的解释 (2)目录权限说明 1.基本权限的介绍 (1)权限位的含义 前面讲解ls命令时,我们已经知道 ...

  4. 『学了就忘』Linux基础命令 — 24、文件基本权限的相关命令

    目录 1.chmod命令 2.权限模式 (1)用户身份. (2)赋予方式. (3)权限. 3.数字权限 4.文件常用权限 5.chown命令 6.chgrp命令 7.总结 常用基本权限操作命令: ch ...

  5. 『学了就忘』Linux基础命令 — 26、帮助命令

    目录 1.man命令 (1)man命令的快捷键 (2)man命令的帮助级别(了解即可) (3)man命令的使用 2.info命令 3.help命令 4.--help选项 1.man命令 man是最常见 ...

  6. 『学了就忘』Linux基础命令 — 28、别名和常用快捷键

    目录 1.别名 2.常用快捷键 1.别名 别名也是Shell中的命令. 命令的别名,就是命令的小名,主要是用于照顾管理员使用习惯的. 命令格式: # 查询系统中命令别名 [root@localhost ...

  7. 『学了就忘』Linux基础命令 — 30、find命令详细说明

    目录 1.find命令的基本信息 2.find命令基本使用 3.按照文件大小搜索 4.按照修改时间搜索 5.按照权限搜索 6.按照所有者和所属组搜索 7.按照文件类型搜索 8.逻辑运算符 (1)-a: ...

  8. 『学了就忘』Linux基础命令 — 32、压缩和解压缩相关命令

    目录 1.".zip"格式压缩 2.".gz"格式压缩 3.".bz2"格式压缩 4.".tar"格式打包 5.打包和压 ...

  9. 『学了就忘』Linux基础命令 — 18、Linux命令的基本格式

    目录 1.命令提示符说明 2.命令的基本格式 (1)举例ls命令 (2)说明ls -l命令的 输出内容 1.命令提示符说明 [root@localhost ~] # []:这是提示符的分隔符号,没有特 ...

随机推荐

  1. Dubbo 学习(二)服务注册与发现

    在上一篇中我们提到,dubbo官网上推荐使用ZooKeeper作为注册中心.那么今天我们就通过代码来实践一番,看看一个dubbo的服务消费者如果找到通过ZooKeeper暴露自己的dubbo服务提供者 ...

  2. DevOps与CICD简介

    整体知识点 ·Devops与CI/CD简介 ·Gitlab安装与Git命令使用 ·Gitlab实现持续集成 ·Gitlab实现分支管理 ·Jenkins简介及安装 ·Jenkins插件管理及基础配置 ...

  3. greedy algorithm, insertion sort, quick sort

    always makes the choice that seems to be the best at that moment. Example #1: @function:  scheduling ...

  4. python编码问题:UnicodeDecodeError: 'gbk' codec can't decode

    在获取yaml文件数据时,提示:UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 2: illegal multib ...

  5. Abp vNext 番外篇-疑难杂症丨浅谈扩展属性与多用户设计

    说明 Abp vNext基础篇的文章还差一个单元测试模块就基本上完成了我争取10.1放假之前给大家赶稿出来,后面我们会开始进阶篇,开始拆一些东西,具体要做的事我会单独开一个文章来讲 缘起 本篇文章缘起 ...

  6. P4590-[TJOI2018]游园会【dp套dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4590 题目大意 给出一个长度为\(m\)的字符串\(s\). 对于每个\(k\in[0,m]\)求有多少个长度为 ...

  7. C# 显示、隐藏窗口对应的任务栏

    WPF中全屏窗口,会自动隐藏任务栏. 那非全屏窗口如何隐藏任务栏?甚至有没有一种场景,隐藏任务后自定义一套系统任务栏来显示? 以下会分阶段讲述一些概念 1. 主屏任务栏 任务栏,其实也是一个窗口,主屏 ...

  8. 实验2:Open vSwitch虚拟交换机实践

    作业链接:实验2:Open vSwitch虚拟交换机实践 一.实验目的 能够对Open vSwitch进行基本操作: 能够通过命令行终端使用OVS命令操作Open vSwitch交换机,管理流表: 能 ...

  9. 数据结构与算法——迪杰斯特拉(Dijkstra)算法

    tip:这个算法真的很难讲解,有些地方只能意会了,多思考多看几遍还是可以弄懂的. 应用场景-最短路径问题 战争时期,胜利乡有 7 个村庄 (A, B, C, D, E, F, G) ,现在有六个邮差, ...

  10. Idea生成JavaDoc文档

    什么是JavaDoc javadoc是Sun公司提供的一个技术 它从程序源代码中抽取类.方法.成员等注释形成一个和源代码配套的API帮助文档 实现方式 命令行方式 javadoc -encoding ...