2.14 文件和目录权限chmod

# ls -l
-rw-r--r--. 1 root root    0 8月   9 10:53 1.txt   # 该文件权限:可读、可写、不可执行。
# 权限位末尾有'.',则表示该文件受制于selinux(防火墙)
# 临时开关
# setenforce 0  #0为关闭,1为开启
# getenforce # 查看是否开关
Permissive  #Permissive为关闭,Enforcing为开启

  • 如果要彻底关闭selinux需要改配置文件

    # vi /etc/selinux/config# This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.               # '强制开启'
    #     permissive - SELinux prints warnings instead of enforcing.     # '警告,不会强制开启'
    #     disabled - No SELinux policy is loaded.                        # '关闭'
    SELINUX=enforcing        # '更改=号后面的值';更改完毕再重启。然后创建新的文件就不会带'.'了。
    # SELINUXTYPE= can take one of three two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected.
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted

  • -|rwx|r--|r--:文件权限信息;第一节为类型;第二节为所有者权限:包含可读、可写、可执行;第三节为该文件所属用户组用户对该文件的权限。第四节为其他用户对该文件的权限。

    • 权限可以用数字表示:r = 4 ; w = 2 ; x = 1 ; rwx = 7 ; rw- = 6 ; --x = 1 ; rw-r--r-- = 644 ;(每3个是一个权限位,自己的权限相加。)
    • rwx:w:可写;r:可读;x:可执行。(没有该权限用-表示)
    • r--:表示所属用户组:可读,不可写,不可执行。
    • r--:其他用户:可读,不可写,不可执行。

chmod = change mode

  • chmod nnn xxx:更改权限 (只对于目录本身,其下的子目录及文件权限不会做修改)

    # chmod 700 1.txt #更改1.txt权限
    # ls -l 1.txt
    -rwx------. 1 root root 0 8月   9 10:53 1.txt #权限从rw-r--r--变更为rwx------

  • chmod -R nnn xxx:更改权限,该目录及子目录和文件都做权限修改。
  • 其他用法
    # 这个方法不推荐。写数字多方便
    # chmod u=rwx,g=rw,o=r 1.txt
    # ls -l 1.txt
    -rwxrw-r--. 1 root root 0 8月   9 10:53 1.txt# 把所有项都加上x权限
    # chmod a+x 1.txt
    # ls -l 1.txt
    -rwxrwxr-x. 1 root root 0 8月   9 10:53 1.txt# chmod a-x 1.txt
    # ls -l 1.txt
    -rw-rw-r--. 1 root root 0 8月   9 10:53 1.txt

2.15 更改所有者和所属组chown

chown = change owner

  • chown uuu xxx :更改文件所有者

    # ls -l 1.txt # 查看原所有者 root
    -rwxrw-r--. 1 root root 0 8月   9 10:53 1.txt# chown longlong 1.txt # 更改所有者# ls -l 1.txt # 查看更改后所有者 longlong
    -rwxrw-r--. 1 longlong root 0 8月   9 10:53 1.txt

  • chown uuu:ggg xxx:更改用户和组
    • chown :ggg xxx:只更改组

      • 加上 -R;也会把子目录及文件的用户和组更改

        # ls -l 2.txt # 查看原用户和组
        -rw-r--r--. 1 root root 0 8月   9 12:14 2.txt# chown longlong:long 2.txt # 更改用户和组# ls -l 2.txt # 查看更改后用户和组
        -rw-r--r--. 1 longlong long 0 8月   9 12:14 2.txt

chgrp = change group

  • chgrp ggg xxx :更改文件所有者

    # chgrp long 1.txt # 更改所属组
    # ls -l 1.txt # 查看所属组 long
    -rwxrw-r--. 1 longlong long 0 8月   9 10:53 1.txt

2.16 umask

为什么创建目录和创建文件的权限不一样?

# umask # 查看默认权限
0022 # 默认值0022# umask 0002 # 更改默认权限;首位0可以省略
# umask
0002 #更改后的默认权限# 更改默认权限前后创建文件和目录的权限值对比
# mkdir bb     # 创建bb目录
# touch 2.txt  # 创建2.txt
# ls -l
-rw-r--r--. 1 root root 0 8月   9 16:17 1.txt   # 更改前文件
-rw-rw-rw-. 1 root root 0 8月   9 16:19 2.txt   # 更改后文件
drwxr-xr-x. 2 root root 6 8月   9 16:16 aa      # 更改前目录
drwxrwxrwx. 2 root root 6 8月   9 16:19 bb      # 更改后目录

  • 目录必须有x权限,因为目录要执行了,才能看到目录下的子目录及文件。
  • 更改前计算公式:
    • 目录:777(rwxrwxrwx) - 022(----w--w-) = 755(rwxr-xr-x)
    • 文件:666(rw-rw-rw-) - 022(----w--w-) = 644(rw-r--r--)
  • 更改后计算公式:
    • 目录:777(rwxrwxrwx) - 002(-------w-) = 775(rwxrwxr-x)
    • 文件:666(rw-rw-rw-) - 002(-------w-) = 664(rw-rw-r--)
  • 第二次更改umask后再创建文件和目录

    # umask 0003   # 更改默认权限
    # mkdir cc     # 创建cc目录
    # touch 3.txt  # 创建3.txt
    # ls -l
    -rw-r--r--. 1 root root 0 8月   9 16:17 1.txt   # 更改前的文件
    -rw-rw-rw-. 1 root root 0 8月   9 16:19 2.txt   # 第一次更改后的文件
    -rw-rw-r--. 1 root root 0 8月   9 18:22 3.txt   # 第二次更改后的文件
    drwxr-xr-x. 2 root root 6 8月   9 16:16 aa      # 更改前的目录
    drwxrwxrwx. 2 root root 6 8月   9 16:19 bb      # 第一次更改后的目录
    drwxrwxr--. 2 root root 6 8月   9 18:22 cc      # 第二次更改后的目录

  • 更改后计算公式:

    • 目录:777(rwxrwxrwx) - 003(-------wx) = 775(rwxrwxr--)
    • 文件:666(rw-rw-rw-) - 003(-------wx) = 664(rw-rw-r--)

2.17 隐藏权限lsattr/chattr

  • lsattr xxx:查看是否有隐藏权限。

    • lsattr -R xxx:可以查看目录及所有子目录和文件的隐藏权限。
    • lsattr -a xxx:可以查看目录及所有子目录和文件的隐藏权限包括隐藏的。
      # lsattr
      -----a---------- ./aa
      ---------------- ./1.txt
      ---------------- ./bb
      ---------------- ./2.txt
      ---------------- ./cc
      ---------------- ./3.txt
      
      # lsattr -R
      -----a---------- ./aa./aa:
      ---------------- ./aa/11.txt
      ---------------- ./aa/11_txt.swp
      ---------------- ./aa/4913
      ---------------- ./aa/11.tx~
      ---------------- ./aa/22_txt.swp
      ---------------- ./aa/22.txt
      -----a---------- ./aa/33.txt
      ---------------- ./aa/33_txt.swp
      ---------------- ./aa/5036
      ---------------- ./aa/33.tx~---------------- ./1.txt
      ---------------- ./bb./bb:---------------- ./2.txt
      ---------------- ./cc./cc:---------------- ./3.txt  

  • chattr +i xxx:增加一个隐藏权限。给文件或目录增加i权限(谁都无法增删改,但是可以复制该目录),把其变成只读。(可以修改目录下原有文件内容和复制该文件,不能增加、删除、移动、重命名文件。)
    • chattr +a xxx:给文件或目录增加a权限;该权限只能复制该文件和追加内容,不能删除和更改文件内容及重命名文件名。(目录下只能增加文件和复制目录,不能删除、移动、重命名文件)。

      • 可以touch该文件。但是只更改创建时间,内容不变。
    • chattr -i xxx:删除一个隐藏权限。给文件或目录删除i权限
      # tree
      .
      ├── aa
      │   ├── 1.txt
      │   └── 2.txt
      ├── bb
      │   ├── 11.txt
      │   └── 22.txt
      └── cc├── a.txt└── b.txt
      # chattr +i aa/  # 给aa目录增加i权限
      # chattr +a bb/  # 给bb目录增加a权限
      # chattr +i cc/a.txt  # 给a文件增加i权限
      # chattr +a cc/b.txt  # 给b文件增加a权限
      # lsattr -R
      ----i----------- ./aa./aa:
      ---------------- ./aa/1.txt
      ---------------- ./aa/2.txt-----a---------- ./bb./bb:
      ---------------- ./bb/11.txt
      ---------------- ./bb/22.txt---------------- ./cc./cc:
      ----i----------- ./cc/a.txt
      -----a---------- ./cc/b.txt# mv aa dd                         # i权限的aa目录无法重命名
      mv: 无法将"aa" 移动至"dd": 不允许的操作
      # mv aa/1.txt aa/3.txt             # i权限的aa目录下的文件无法重命名
      mv: 无法将"aa/1.txt" 移动至"aa/3.txt": 权限不够
      # mv aa/1.txt cc/
      mv: 无法将"aa/1.txt" 移动至"cc/1.txt": 权限不够     # aa目录下的文件无法移动
      # vi aa/1.txt                      # 可以修改aa目录下文件的内容
      # cat aa/1.txt
      qq
      # rm aa/1.txt                      # 不可以删除aa目录下的文件
      rm:是否删除普通文件 "aa/1.txt"?y
      rm: 无法删除"aa/1.txt": 权限不够
      # mkdir aa/aa                      # 不可以在aa目录下创建目录
      mkdir: 无法创建目录"aa/aa": 权限不够
      # touch aa/3.txt                   # 不可以在aa目录下创建文件
      touch: 无法创建"aa/3.txt": 权限不够
      # rm bb/11.txt                     # 不可以删除a权限的bb目录下的文件
      rm:是否删除普通空文件 "bb/11.txt"?y
      rm: 无法删除"bb/11.txt": 不允许的操作
      # mv bb/11.txt cc/d.txt            # a权限的bb目录下的文件无法移动
      mv: 无法将"bb/11.txt" 移动至"cc/d.txt": 不允许的操作
      # mv bb/11.txt bb/33.txt           # a权限的bb目录下的文件无法重命名
      mv: 无法将"bb/11.txt" 移动至"bb/33.txt": 不允许的操作
      # touch bb/33.txt                  # 可以在bb目录下创建文件
      # lsattr -R
      ----i----------- ./aa./aa:
      ---------------- ./aa/1.txt
      ---------------- ./aa/2.txt-----a---------- ./bb./bb:
      ---------------- ./bb/11.txt
      ---------------- ./bb/22.txt
      ---------------- ./bb/33.txt---------------- ./cc./cc:
      ----i----------- ./cc/a.txt
      -----a---------- ./cc/b.txt

转载于:https://www.cnblogs.com/ksqinglong/p/8666893.html

二周第三次课(3月28日)相关推荐

  1. 三周第三次课(12月27日)

    三周第三次课(12月27日) 3.7 su命令 su 切换用户 whoami id su -aming su aming 切换用户,但是没有切换家目录 su - -c "touch /tmp ...

  2. Linu20180415三周第三次课(4月4日)

    3.7 su命令 3.8 sudo命令 3.9 限制root远程登录 su就是切换用户的命令 su - username 切记要使用 - . 我经常使用的时候是不加上-的,这样的话切换的不彻底,尚在之 ...

  3. 三周第三次课(11月1日) 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

    2019独角兽企业重金招聘Python工程师标准>>> 3.7 su命令 su - 用户名 切换用户(加-彻底切换用户包括一些配置文件) 不加 - 的话 还会在root 家目录下 加 ...

  4. 三周第五次课(4月10日)

    4.5/4.6 磁盘格式化 df -Th 查看分区的文件系统 [root@test220 ~]# df -hT Filesystem Type Size Used Avail Use% Mounted ...

  5. 【2017 数据技术嘉年华】10月28日广州站即将华丽来袭!

    还有 8 天 我们就要 到达广州站 啦 在各位业界同仁的支持下,ACOUG 已经成功举办六届千人规模的 Oracle 技术嘉年华.今年,秉承"云 • 数据 • 智能 - 数聚价值 智胜未来& ...

  6. linux五周第三次课(3月7日)笔记

    五周第三次课(3月7日) 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 搜索看一下有没有这两个shell,不安装. 8.2 命令历史 用过的 ...

  7. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)

    分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日) 本周Silverlight学习资源更新 Silverlight HttpUtil 封 ...

  8. 分享Silverlight/WPF/Windows Phone一周学习导读(8月28日-9月3日)

    分享Silverlight/WPF/Windows Phone一周学习导读(8月28日-9月3日) 本周Silverlight学习资源更新: Silverlight动画 cutylongshen Si ...

  9. Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月28日-2月3日)

    Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月28日-2月3日) 本周Windows 8开发学习资源更新 重新想象 Windows 8 Store Apps (7 ...

最新文章

  1. 模拟命令行自动输入的HTML,HTML5 命令行界面仿真和自动打字动画
  2. numpy(5)-astype
  3. [20161031]rman备份与数据文件OS块.txt
  4. 统计学习方法 第九章笔记: EM 算法
  5. 字符串换行截取_textwrap 文本自动换行与填充
  6. 今年不容易,要懂得爱护自己
  7. “睡服”面试官系列第二十一篇之class基本语法(建议收藏学习)
  8. BXP3.0安装指南(传统方法)(转)
  9. 第一章 批判性思维概念
  10. hitb-2017 1000levels writeup
  11. 2022年《社区护理学》 试题及答案
  12. 什么是NVMe硬盘?
  13. iOS 如何判断静音开关是否打开
  14. 最强思维导图训练营教程
  15. 关于HPM126A打印机共享问题-共享之后主机得打印一次后其他电脑才能打印
  16. 在西安,1000万人的城市,有多少家IT培训机构?
  17. 区块链智能资产的“硬链接”思考
  18. RSA算法的Python实现(模幂运算——原始算法)
  19. 推荐系统遇上深度学习(三十六)--Learning and Transferring IDs Representation in E-commerce...
  20. HTML开发过程中遇到的尺寸问题

热门文章

  1. Linux 下 zip unzip压缩与解压
  2. 2017-2018-1 20155338 《信息安全系统设计基础》 第三周学习总结
  3. Cocoapods 第三方类库管理工具
  4. [转载] 中文核心期刊目录(2008)
  5. c#编码规范【转载】
  6. 杭电多校(二)2019.7.24--暑假集训
  7. 论c++/java/c 与python的语法上的区别
  8. API接口通讯参数规范
  9. Django之session
  10. Modern C++ Design 学习笔记-第3章