一、       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. CallContext,ThreadStatic,AsyncLocal<T>,ThreadLocal<T>,学习笔记

    1.CallContext 在当前调用上下文的线程数据槽里存储对象 2.ThreadStatic 是一个特性 3.AsyncLocal<T> 是一个类型,该字段应当为static,保证单例 ...

  2. HDU 5961 传递 随机化

    传递 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5961 Description 我们称一个有向图G是传递的,当且仅当对任意三个不同的顶点a,,若 ...

  3. 将一个C++的AES加密算法(有向量的)翻译成C#

    /****************************************************************************** Copyright (c) 2012-2 ...

  4. elastic-job详解(五):自定义任务参数

    在elastic-job详解(三):Job的手动触发功能一文中讲到了如何手动触发一个Job,但是我们手动触发的时候常常需要输入一些参数.举个栗子:我们有个日统计报表,每天凌晨统计一次,统计上一天的数据 ...

  5. js的几个补充事件

    在这里我做几个前面文章当中没有介绍的javascript补充事件 1.onscroll:当元素滚动条滚动时执行的事件: <div class="container"> ...

  6. 【贪心】经营与开发 @upc_exam_5500

    目录 经营与开发 @upc_exam_5500 PROBLEM 题目描述 输入 输出 样例输入 样例输出 提示 SOLUTION CODE 经营与开发 @upc_exam_5500 PROBLEM 题 ...

  7. Ubuntu下实验安装

    1.Ubuntu下安装sublime : http://www.linuxidc.com/Linux/2015-01/112137.htm 2.http://www.linuxidc.com/Linu ...

  8. javaScript系列 [01]-javaScript函数基础

    [01]-javaScript函数基础 1.1 函数的创建和结构 函数的定义:函数是JavaScript的基础模块单元,包含一组语句,用于代码复用.信息隐蔽和组合调用. 函数的创建:在javaScri ...

  9. Android 模拟器启动不了-问题解决方案

    一.Android 模拟器启动不了问题解决方案 在安装Android开发环境时,首先安装java虚拟机,然后下载android adk 管理android虚拟机. 在完成工作后,添加android的虚 ...

  10. Django 用户登陆访问限制 @login_required

    #用户登陆访问限制 from django.http import HttpResponseRedirect #只有登录了才能看到页面 #设置方法一:指定特定管理员才能访问 def main(requ ...