一、       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. React动画组件——React-Transitio-group动画实现

    React动画组件--React-Transitio-group动画实现 安装 项目目录下使用命令行 yarn add react-transition-group 安装组件.在需要使用动画的页面加入 ...

  2. OpenCV3.3.0 + CLion + CMake 配置(Mac巨细无敌版)

    目录 开始 完成了 参考链接: 1,cmake编译 http://blog.csdn.net/baidu_36316735/article/details/53168438 2,CLion导入open ...

  3. Docker安装管理界面portainer

    在Ubuntu或者Debian已经部署完毕Docker 拉取镜像文件: sudo docker pull docker.io/portainer/portainer Using default tag ...

  4. Sunday串匹配算法 C语言实现

    unsigned char * sunday( void * a_buf1, unsigned int len1, void * a_buf2, unsigned int len2 ){ unsign ...

  5. fast-fail事件的产生及其解决办法

    1.fail-fast事件出现的情景 import java.util.*; import java.util.concurrent.*; /* * * * fail-fast事件产生的条件:当多个线 ...

  6. 重写父类、多线程、多进程、logging模块

    1. 重写父类 1)  子类定义父类同名函数后,父类函数被覆盖: 2)  如果需要,可以在子类中调用父类方法:”父类名.方法(self)”.”父类名().方法()”.”super(子类名,self). ...

  7. C#_02.15_基础六_.NET类

    C#_02.15_基础六_.NET类 一.类继承是一个类在另一个类的基础上进行的扩展. 继承的子类拥有父类的全部成员.索引子类拥有本身的全部成员以及父类的全部成员. 可以对基类成员进行隐藏,如果必须的 ...

  8. __c语言__测一段代码的运行时间

    2017-09-16 13:35:56 感觉很实用. /************************************** time ./a.out 命令所花费的real时间.user时间和 ...

  9. linux常用命令和关闭防火墙

    linux常用命令和关闭防火墙   2.        linux常用命令 Mkdir 创建 Rm -rf 删除 Chmod -R 777 权限 Mysql -uroot -r quit退出 find ...

  10. Nginx的https配置记录以及http强制跳转到https的方法梳理

    一.Nginx安装(略)安装的时候需要注意加上 --with-http_ssl_module,因为http_ssl_module不属于Nginx的基本模块.Nginx安装方法: 1 2 # ./con ...