1. chmod 改变已有目录或文件的权限

chmod 设置已有目录或文件的权限。可以为指定范围的用户添加或删除权限。

权限范围的表示法如下:

  • u:User,即文件或目录的拥有者;
  • g:Group,即文件或目录的所属群组;
  • o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
  • a:All,即全部的用户,包含拥有者,所属群组以及其他用户;

权限设置如下:

  • r:读取权限,数字代号为“4”;
  • w:写入权限,数字代号为“2”;
  • x:执行或切换权限,数字代号为“1”;
  • -:不具任何权限,数字代号为“0”;
  • s:特殊功能说明:变更文件或目录的权限。

语法:

chmod [选项] 权限模式 文件

选项:

  • -f 或 --quiet 或 --silent:不显示错误信息;
  • -R 或 --recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
  • -v 或 --verbose:显示指令执行过程;
  • --reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
  • +:开启权限范围的文件或目录的该选项权限设置;
  • -:关闭权限范围的文件或目录的该选项权限设置;
  • =:指定权限范围的文件或目录的该选项权限设置;

示例:

chmod u+x,g+w file  // 所有者添加可执行权限,同组用户添加可写入权限
chmod u=rwx,g=rw,o=r file  
chmod 764 file  
chmod a+x file  //对文件的 u,g,o 都设置可执行属性

2. umask 设置用户创建目录或文件时的默认权限

默认情况下的 umask 值是 022。

与 chmod 相反,umask 用来设置限制新建目录或文件的权限掩码,用于指定在新目录或文件的默认权限中删除哪些权限。当创建新目录或文件时,默认的初始权限由权限掩码决定。用户每次登陆系统时都会自动执行 umask 命令,并自动设置权限掩码来限制新文件的权限。可以手动执行 umask 命令来改变默认值。

设置掩码时,文件和目录的可执行权限有所区别。文件基数为 666,目录为 777,即文件无法设置可执行位,目录可设可执行位。所以 033 效果与 022 一样,假设使用 033 掩码进行设置,则真实权限应为 633 即 rw- r-x r-x,但前提规定文件不生成 x 位,所以文件的权限最终将以 rw-r--r-- 出现。因此建立的文件默认权限是 644,建立的目录的默认权限是 755。

语法:

umask [选项] [权限掩码]

选项:

  • -p:输出的权限掩码可直接作为指令来执行;
  • -S:以符号方式输出权限掩码。

示例:

将新文件和目录的默认权限就为 642,753:

umask 024

下面的两个命令创建相同作用的掩码,取消组用户的写权限,其他用户的读、写和执行权限:

umask u=, g=w, o=rwx

或

umask 027

上面的命令执行以后,对于下面创建的新文件,其文件主的权限未做任何改变,而组用户没有写权限,其他用户的所有权限都被取消。

查看当前权限掩码:

[root@VM_120_242_centos ~]# umask
0022
[root@VM_120_242_centos ~]# umask -S
u=rwx,g=rx,o=rx

umask 一般在 /etc/profile、~/.bash_profile 或 ~/.profile 中设置,由于 profile 的读取有一定的顺序:

/etc/profile -> ~/.profile -> ~/.bash_profile,所以在 .profile 里面设置的 umask 会被后面的 profile 覆盖,推荐设置在 ~/.bash_profile

[root@VM_120_242_centos ~]# cat /etc/profile
...
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
...

Linux 文件和目录的权限设置 - umask(默认权限),chmod(改变权限)的更多相关文章

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

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

  2. Linux文件和目录的属性及权限总结

    本文讲述的是文件或目录的属性及权限,比如索引节点inode.文件类型.文件权限及属主:还对setuid.setgid及粘贴位进行了相关的讲解.其中,对ln.chmod.chown.chgrp.umas ...

  3. Linux文件和目录的属性及权限

    Linux文件和目录的属性及权限讲解 文字解释: 第一列:inode索引节点 第二列:文件类型及权限 第三列:硬链接个数 第四列:文件或目录所属的用户(属主) 第五列:文件或目录所属的用户所归属的组( ...

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

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

  5. Linux文件和目录的777、755、644权限解释

    Linux文件和目录的权限 1.文件权限 在linux系统中,文件或目录的权限可以分为3种: r:4 读 w:2 写 x:1  执行(运行)-:对应数值0 数字 4 .2 和 1表示读.写.执行权限 ...

  6. Linux文件和目录权限实战讲解

    一 相关课程回顾1.1 linux文件类型当执行ls -l或ls -la 命令后显示的结果中最前面的第2~10个字符是用来表示文件权限 第一个字符一般用来区分文件和目录: d:表示是一个目录,事实上在 ...

  7. Linux文件和目录管理常用重要命令

    一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 "路径" 以及 "相对路径" 与 "绝 ...

  8. linux入门教程(六) Linux文件与目录管理

    在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件的路径,那么系统 ...

  9. CentOS(十)--与Linux文件和目录管理相关的一些重要命令②

    在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Lin ...

随机推荐

  1. 使用TreeSet对象去重排序

    java对象除了采用equals和hashCode判断对象是否相等外,开发人员也可以通过其他属性判断两个对象是否相等 以下案例采用TreeSet去掉重复对象 Teacher: public class ...

  2. 10、应用机器学习的建议(Advice for Applying Machine Learning)

    10.1 决定下一步做什么 到目前为止,我们已经介绍了许多不同的学习算法,如果你一直跟着这些视频的进度学习,你会发现自己已经不知不觉地成为一个了解许多先进机器学习技术的专家了. 然而,在懂机器学习的人 ...

  3. SQL SERVER SP命令及实现跨数据库查询

    1.数据库: (1)sp_helpdb:报告有关指定数据库或所有数据库的信息. 例:sp_helpdb   --显示所有数据库信息(名称.大小等) 例:sp_helpdb Recruitment   ...

  4. 事件对象e的实现原理

    转自:https://segmentfault.com/q/1010000007337410?_ea=1313467 事件对象传递原理 1.前置知识回顾 在讲传递原理前,我们先看看普通函数是如何传递参 ...

  5. 实现斐波那契数列之es5、es6

    es5实现斐波拉契函数数列: <script type="text/javascript"> function fibonacci(n) { var one = 1; ...

  6. JQ的简单使用(基础)——————JQ

    JQ基础--JQ的简单使用 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /&g ...

  7. C++基础之static(静态)变量

    static 表示静态   作用: 1.在函数体内,静态变量的值维持不变(记忆功能) 2.是一个本地的全局函数,即只能被本模块的函数访问(隐藏功能)   static变量: static全局变量和普通 ...

  8. 330-基于FMC接口的Kintex-7 XC7K325T PCIeX8 3U PXIe接口卡 光纤PCIe卡

    一.板卡概述      本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8.64bit D ...

  9. 将两个列表合并为字典_其中一个列表为Key_一个列表为Value

    #定义两个列表 list1 = range(0,10) list2 = range(10,20) #合并为字典,调用dict(zip()) dict_name = dict(zip(list1,lis ...

  10. OGG-00303

    解决方案:因为Defgen版本不同,注释数据定义文件对应的行 *Database type:ORACLE,用*在行首注释即可