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. HDU 6649 Data Structure Problem(凸包+平衡树)

    首先可以证明,点积最值的点对都是都是在凸包上,套用题解的证明:假设里两个点都不在凸包上, 考虑把一个点换成凸包上的点(不动的那个点), 不管你是要点积最大还是最小, 你都可以把那个不动的点跟原点拉一条 ...

  2. jQuery难学是因为什么?

    我们看别人写的js代码,发现很多不明白,其实只是你对语法不清楚.对函数方法了解的不全面. /****************************************************** ...

  3. 【推荐系统】知乎live入门3.召回

    参考链接 [推荐系统]知乎live入门 目录 1. 概述 2. 画像过滤 3. 协同过滤 4. 内容过滤 5. 模型过滤 6. 其他过滤 7. 总结 ========================= ...

  4. vue防抖节流函数---组件封装,防止按钮多次点击

    1.vue 封装utils.js /** * @param {function} func 执行函数 * @param {number} time 防抖节流时间 * @param {boolean} ...

  5. Vue 实现一个分页组件

    实现分页组件要分三个部分 样式,逻辑,和引用 首先新建一个vue文件用来承载组件内容 第一步:构建样式 <template> <nav> <ul class=" ...

  6. git 和码云的上传文件代码操作

    Git与Github的连接与使用 一 安装git软件 1.git介绍 ''' git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.​ 分布式相比于集中式的最大区别在于开发 ...

  7. 一、Rabbit使用-安装教程

    首先我去官网上面下载RabbitMQ安装包:https://www.rabbitmq.com/which-erlang.html 现在下载的版本是3.7.17  因为我erlong安装的是20.3

  8. CentOS 7系统安装nginx+php

    安装介绍1.系统环境CentOS7 2.nginx版本1.12 3.PHP版本7.2 下载地址 4.MySQL版本5.7 安装nginx添加centos7的 nginx yum源 然后执行安装 sud ...

  9. VPS 安装MySQL

    目前Centos下默认支持的数据库是MariaDB,MariaDB是mysql的增强版本,由于mysql被Oracle收购之后,mysql之父担心之后mysql会变成闭源的软件,就又开发了这个版本,支 ...

  10. 随笔3 HashMap<K,V>

    equals.hashcode和==的区别 在介绍HashMap之前,我想先阐述一下我对这三者的理解,equals这个方法呢,就是在判断是否为同一对象(注意,这里的同一对象和相同的内存地址是不同的), ...