一、       umask介绍

  Linux 系统用户创建一个新的目录或文件时,系统会默认会分配相应的权限。目录或文件的权限是如何产生的呢?

  1、这就是umask的功能,umask设置了用户创建文件或目录的默认权限。Linux 系统umask设置的默认权限属于安全权限的临界点,如果高于这个临界点,文件的权限就太过危险,如果低于这个临界点,文件的权限太过苛刻,操作麻烦。

  2、Linux系统root系统管理员用户默认umask值为0022,对应创建目录默认权限为755,对应创建文件默认权限为644.Linux系统其它用户默认uamsk值为0002, 对应创建目录默认权限为775, 对应创建文件默认权限为664.

root系统管理员用户创建文件和目录:

[oldgirl@oldboy ~]$ whoami

oldgirl

[root@oldboy ~]# umask

0022

[root@oldboy ~]# mkdir test

[root@oldboy ~]# ls -ld /test/

drwxr-xr-x 2 root root 4096 Dec  1 11:47 /test/

[root@oldboy ~]# touch /test/file.txt

[root@oldboy ~]# ls -l /test/file.txt

-rw-r--r-- 2 root root 0 Dec  5 09:47 /test/file.txt

test普通用户创建文件和目录:

[test@oldboy ~]$ whoami

test

[test@oldboy ~]$ umask

0002

[test@oldboy ~]$ mkdir hello

[test@oldboy ~]$ ls -ld hello/

drwxrwxr-x 2 test test 4096 Dec  5 10:03 hello/

[test@oldboy ~]$ touch testfile.txt

[test@oldboy ~]$ ls -l testfile.txt

-rw-rw-r-- 1 test test 0 Dec  5 10:03 testfile.txt

Linux 系统umask默认值存在于bashrc系统文件:

[test@oldboy ~]$ sed -n '65,69p' /etc/bashrc

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

umask 002

else

umask 022

fi

Linux 临时设置umask默认值:(umask默认是四位,第一位是文件特殊权限位,可以暂时忽略):

[test@oldboy ~]$ umask 033

[test@oldboy ~]$ umask

0033

二、umask值对应文件权限计算方法(以系统管理员root用户操作)

文件权限计算方法

文件的起始权限值

umask值

操作

计算后文件权限

举例

666

022  (每位如果都是偶数)

相减

644

范例1

666

033  (每位如果有奇数或偶数)

相减(奇数位相减后在其原奇数位加1)

644

范例2

666

325(每位如果有奇数或偶数)

相减(奇数位相减后在其原奇数位加1)

442

范例3

目录权限计算方法

文件的起始权限值

umask值

操作

计算后文件权限

举例

022

相减

755

范例1

033

相减

744

范例2

325

相减

452

范例3

范例1:

[root@oldboy ~]# umask

0022

[root@oldboy ~]# mkdir /oldboy

[root@oldboy ~]# touch /oldboy/test.sh

[root@oldboy ~]# ls -ld /oldboy/

drwxr-xr-x 2 root root 4096 Dec  5 11:16 /oldboy/

[root@oldboy ~]# ls -l /oldboy/test.sh

-rw-r--r-- 1 root root 0 Dec  5 11:16 /oldboy/test.sh

[root@oldboy ~]# stat /oldboy/ | awk -F '[: ]+' 'NR==4 {print $2}'

(0755/drwxr-xr-x)

[root@oldboy ~]# stat /oldboy/test.sh | awk -F '[: ]+' 'NR==4 {print $2}'

(0644/-rw-r--r--)

范例2:

[root@oldboy ~]# umask 033

[root@oldboy ~]# umask

0033

[root@oldboy ~]# mkdir /oldboy

[root@oldboy ~]# touch /oldboy/test.sh

[root@oldboy ~]# ls -ld /oldboy/

drwxr--r-- 2 root root 4096 Dec  5 11:26 /oldboy/

[root@oldboy ~]# ls -l /oldboy/test.sh

-rw-r--r-- 1 root root 0 Dec  5 11:26 /oldboy/test.sh

[root@oldboy ~]# stat /oldboy/ | awk -F '[: ]+' 'NR==4 {print $2}'

(0744/drwxr--r--)

[root@oldboy ~]# stat /oldboy/test.sh | awk -F '[: ]+' 'NR==4 {print $2}'

(0644/-rw-r--r--)

范例3:

[root@oldboy ~]# umask 325

[root@oldboy ~]# umask

0325

[root@oldboy ~]# mkdir /oldboy

[root@oldboy ~]# touch /oldboy/test.sh

[root@oldboy ~]# ls -ld /oldboy/

dr--r-x-w- 2 root root 4096 Dec  5 11:34 /oldboy/

[root@oldboy ~]# ls -l /oldboy/test.sh

-r--r---w- 1 root root 0 Dec  5 11:34 /oldboy/test.sh

[root@oldboy ~]# stat /oldboy/ | awk -F '[: ]+' 'NR==4 {print $2}'

(0452/dr--r-x-w-)

[root@oldboy ~]# stat /oldboy/test.sh | awk -F '[: ]+' 'NR==4 {print $2}'

(0442/-r--r---w-)

Linux 文件umask默认权限_012的更多相关文章

  1. Linux文件的默认权限:umask

    1. 文件的默认权限 Linux下当我们新建一个文件和目录时,该文件和目录的默认权限是什么? 通过umask命令来查看: $ umask0002 $ umask -Su=rwx,g=rwx,o=rx ...

  2. Linux—用户新建目录和文件的默认权限设置:umask详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   我们有没有思考过一个问题,在登录Linux系统后,我们创建的目录或者文件的权限,为什么每次创建都是统一的?我们做以下实验:新建一 ...

  3. 文件的默认权限:umask

    1. 文件的默认权限 linux下当我们新建一个文件和文件夹时,该文件和文件夹的默认权限是什么? 通过umask命令来查看: $ umask 0002 $ umask -S u=rwx,g=rwx,o ...

  4. Linux文件及目录权限解析

    Linux系统9位基础权限体系 文件权限   * r权限 可读          对文件具有读取及查看文件内容的全新啊   * w权限 可写        对文件具有新增.修改文件内容的权限     ...

  5. Linux学习之十四-Linux文件和目录权限

    Linux文件和目录权限 在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允 ...

  6. umask 默认权限控制和特殊权限

    权限简单介绍: 在Linux中,创建目录或者文件之后总会有默认的权限.共9个,分为三组.分别代表u.g.o(属主.属组.其他用户).r.w.x 也代表各自的权限. r:读   在文件中的权限代表次文件 ...

  7. umask默认权限及特殊权限

    1. linux系统中,创建一个新的文件或者目录的时候,新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关. 用户创建一个文件,文件的默认权限为 -rw-rw-rw-(6 ...

  8. umask默认权限分配

    umask默认权限分配的命令 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情.umask设置了用户创建文件的默认 权限,它与chmod的效果刚好 ...

  9. Linux文件和目录权限详细讲解

    转载请标明出处: http://www.cnblogs.com/why168888/p/5965180.html 本文出自:[Edwin博客园] Linux文件和目录权限解读 如何设置Linxu文件和 ...

随机推荐

  1. c++检查内存泄漏

    使用_CrtDumpMemoryLeaks()函数检查内存泄漏 #include <cstdio> #include <cstdlib> #include <crtdbg ...

  2. UDP与TCP

    网络模型分为OSI参考模型和TCP/IP参考模型 两台主机之间传输联系 TCP和UDP就是传输层的东西.叫做传输控制协议和用户数据报协议两者的区别是 网络通信底层通过Socket实现. UDP:Soc ...

  3. Luogu 2018 秋令营 Test 2

    T1: 题目描述 你正在使用过时的浏览器,洛谷暂不支持. 请 升级浏览器 以获得更好的体验! Bob 来到了一个 $n \times m$ 的网格中,网格里有 $k$ 个豆子,第 $i$ 个豆子位于 ...

  4. 安装并运行Hello World

    新建虚拟环境并安装Flask pip install Flask 运行HelloWorld from flask import Flask #导入Flask类 app = Flask(__name__ ...

  5. php 公共方法Util

    总结了一个公共类方法类: class Util extends ArrayHelper { /** * 判断是否为空数组 * @param mixed $arr * @return boolean * ...

  6. Android requestcode resultcode的作用

    requestcode 一个页面的不同事件,激发不同的函数,startActivityForResult中传入不同的请求码的值以调用下一个界面,在被调用界面结束返回第一个界面时,请求码会自动返回(自动 ...

  7. 用PowerShell激活anaconda的环境

    1.以管理员身份打开PowerShell 2. 执行conda install -n root -c pscondaenvs pscondaenvs 3. 执行 Set-ExecutionPolicy ...

  8. Vue(一)创建第一个Vue程序

    一.下载安装nodeJs 基于node.js,利用淘宝npm镜像安装相关依赖.由于国内使用npm会很慢,这里推荐使用淘宝NPM镜像 -- npm install -g cnpm --registry= ...

  9. Ubunut操作系统下nDPI的部署及简单使用

    [系统:Ubuntu16.04LTS ] [ nDPI版本:2.5.0] [ 内核:4.15.0-39-generic] 前期准备工作--依赖安装 所需依赖包(前两个ubuntu16已有不需安装) g ...

  10. [Web 前端] mobx教程(三)-在React中使用Mobx

    copy from : https://blog.csdn.net/smk108/article/details/85053903 Mobx提供了一个mobx-react包帮助开发者方便地在React ...