目录

  • 1 权限
    • 1.1 权限的查看
    • 1.2 权限解读
  • 2 权限修改
    • 2.1 修改文件/目录普通权限
      • 2.1.1 方法1:指定权限修改
      • 2.1.2 方法2:八进制赋权法
    • 2.2 修改文件所属信息
    • 2.3 修改目录及可执行文件的特殊权限
      • 2.3.1 粘滞位
      • 2.3.2 sgid权限
      • 2.3.3 suid权限
  • 2.4 撤销权限
  • 3 与权限相关的其他操作
    • 3.1 按权限查找文件
    • 3.2 设置系统不再允许添加新用户
    • 3.3 设置umask
    • 3.4 修改密码默认最长有效期时间
  • 4 总结权限相关命令
    • 4.1 chmod 命令
    • 4.3 chown命令
    • 4.4 chgrp命令
    • 4.5 chattr命令
    • 4.6 find命令
    • 4.7 其他
  • 5 归纳
  • 参考文章

1 权限

权限的作用:规定哪些用户对哪些资源可以如何使用。

1.1 权限的查看

(1)以root身份在tmp目录下创建一个目录test与一个文件test.txt。


(2)查询文件与目录的权限信息。使用命令 ls -l 文件名 查询文件权限,使用命令 ls -ld 目录名 查询目录权限。可以分别缩写为 ll 文件名 、 ll -d 目录名 。

1.2 权限解读

如上图中的test.txt文件,前10位为“- rw- r– r-- ”,各位表示含义如下:

(1)第一个字段就是描述文件和目录权限的编码。这个字段的第一个字符代表了对象的类型

  • -代表文件
  • d 代表目录
  • l 代表链接
  • c 代表字符型设备
  • b 代表块设备
  • n 代表网络设备

(2)之后每3个字符组成一个组,共有3组。这三组的含义分别为,①第1组表示对象的所属者owner权限;②第2组表示对象所属组group权限;③第3组表示系统其他用户other权限(其他用户是指既不是文件的所有者又不是文件所属组中的用户)。每一组定义了3种访问权限:

  • r 代表对象是可读
  • w 代表对象是可写
  • x 代表对象是可执行

(3)而对于文件和目录,这三种权限的详细解读如下:

  • 1)文件权限
    ① r(read):可读取此文件的实际内容,如读取文本文件的文字内容;
    ② w(write):可以编辑、新增或是修改文件的内容(不包含删除文件);
    ③ x(eXecute):该文件具有可以被系统执行的权限;若文件不是可执行文件,通常情况下是没有可执行权限的。

  • 2)文件夹权限
    ① r:表示具有读取目录结构列表的权限,当你具有一个目录的r权限时,表示你可以查询到该目录下的文件名数据;
    ② w:表示具有改变目录结构的权限,包括新建文件与目录、删除文件与目录、重命名文件及目录、移动文件及目录位置;
    ③ x:代表用户能否进入该目录成为工作目录。

2 权限修改

2.1 修改文件/目录普通权限

2.1.1 方法1:指定权限修改

(1)方法:使用公式 chmod 对象 算数运算符 权限 文件 ,对特定文件的特定用户或组修改权限。该方法对目录同样适用。
(2)参数说明

  • 1)对象:u代表所属者、g代表所属组、o代表其他用户、a代表所有人。
  • 2)算数运算符:+ 附加权限、- 移除权限、= 指定权限。
  • 3)权限:r w x。

(3)例子:修改test.txt文件权限为其他用户不可读,输入命令为chmod o-r /tmp//test.txt。再查看权限,从下图可以看出,此时其他用户连可读权限都没有了。

2.1.2 方法2:八进制赋权法

(1)方法:采用0~7的数字代表不同用户的权限,采用命令 chmod xxx 文件 ,对特定文件的特定用户或组修改权限,其中每一个x表示0~7。该方法对目录同样适用。
(2)参数说明:

x数值 二进制数值 权限
0 000
1 001 –x
2 010 -w-
3 011 -wx
4 100 r–
5 101 r-x
6 110 rw-
7 111 rwx

(3)使用技巧:记住1(–x)、2(-w-)、4(r–)对应的权限,其余数值可以转为这三个数相加,也代表其权限的叠加。
(4)例子:使用该方法,修改test.txt权限为所有用户可读可写可执行。

2.2 修改文件所属信息

(1)修改文件所属者:使用命令 chown 新所有者 文件 。例如,将/tmp/test.txt的所属者改为tom。
(2)修改文件所属组:使用命令 chgrp 新所有组 文件 。例如,将/tmp/test.txt的所属组改为tom。

2.3 修改目录及可执行文件的特殊权限

2.3.1 粘滞位

功能:粘滞位针对目录赋权,目录中创建的文件只有建立者可以删除,其他人不能删。
赋权方法chmod o+t 目录名
例子:验证粘滞位
(1)在没有设置粘滞位之前:
①新建用户tom和Jerry;
②采用root用户在/tmp目录下建立一个具有最高权限的目录test;

③tom在test目录下建立新文件tom.txt;
④jerry在test目录下建立新文件jerry.txt,jerry去删除gerry.txt和tom.txt,均可以删除。

(5)设置粘滞位及验证:①root用户修改目录test的权限,输入命令chmod o+t /tmp/test给test设置粘纸位;②tom在test目录下建立新文件tom.txt;③erry在test目录下建立新文件jerry.txt,jerry去删除jerry.txt和tom.txt,jerry.txt可以删除,但tom.txt不可以删除;

2.3.2 sgid权限

功能:sgid针对目录建立的权限,在该目录中建立的文件所属组继承父目录的所属组。
赋权方法chmod g+s 目录名
例子:root用户修改目录test的权限,输入命令chmod g+s /tmp/test给test设置sgid。

2.3.3 suid权限

功能:suid是针对可执行文件建立的权限。赋权后,无论谁运行该可执行文件,均具有该文件所属者的权限。
赋权方法chmod u+s 目录名
例子:假如tom想查看并修改/etc/shadow。
①首先输入命令查看/etc/shadow的权限。一般情况下看不了/etc/shadow。tom输入vim /etc/shadow查看/etc/shadow,发现权限不足看不了。


②对vim命令设置suid权限。输入which vim查看vim命令在哪?输入命令chmod u+s /usr/bin/vim,给vim设置suid权限。

③tom用户再去查看/etc/shadow。输入命令,可以查看了,并且还可以修改。


tips:
任何文件的权限都限值不了root用户。

2.4 撤销权限

将上述命令的+号改为-号,或者采用八进制赋值法将对应权限位设为0.

3 与权限相关的其他操作

3.1 按权限查找文件

思路:使用find命令配合八进制赋权法进行查找。find可以查找什么名的文件在哪?什么类型的文件在哪?什么权限的文件在哪?

查找方法find 目标目录 -perm xxxx ,perm表示对权限进行查找。命令中不同位的x含义如下:

  • 第1位x:表示特殊权限,1表示粘滞位已赋权、2表示sgid已赋权、4表示suid已赋权。
  • 第2位x:表示所属者权限rwx。
  • 第3位x:表示所属组权限rwx。
  • 第4位x:表示其他用户权限rwx。
    例子find /usr/bin -perm 4755

3.2 设置系统不再允许添加新用户

思路:创建用户的时候哪些地方会改变?会变化的主要有:/etc/group、/etc/passwd、/etc/shadow、/home/xxxx等,那么我们是否可以从这些文件入手,锁定这些文件,使文件不再变化。
使用方法chattr +i 文件... 。其中+i表示增加不可更改的属性,文件可以为多个,主要可以是以下文件:

  • /etc/group:表示不再新增组。
  • /etc/passwd:表示不再新增用户,一般配合shadow使用。
  • /etc/shadow:表示不再新增用户,一般配合passwd使用。

例子:将 /etc/group、/etc/passwd、/etc/shadow文件的属性设置为不可更改。若需要撤销,只需要将+改为-.

3.3 设置umask

当一个文件被不同用户创建时,其默认权限是不一样的,当一个文件被普通用户和root用户创建时,文件所属者的默认权限不同,这是因为不同用户的umask不一样。其中umask是指在建立文件时预设的权限掩码。

默认情况下,文件或目录的权限=最高权限-所属者的umask。默认情况下,root的umask为0022,普通用户的umask为0002。默认情况下,目录的最高权限为0777,文件的最高权限为666。以root用户为例,新建目录时默认权限为0777 - 0022 = 0755;新建文件时默认权限为666 - 022 = 644。

那么为什么默认情况下,root的umask为0022,普通用户的umask为0002呢?在操作系统中的/etc/profile文件以及/etc/bashrc文件有对umask值进行规定。

3.4 修改密码默认最长有效期时间

保存密码默认参数的文件在/etc/login.defs中,使用vim编辑器修改其默认值,即可完成修改。

4 总结权限相关命令

4.1 chmod 命令

功能:改变文件的访问权限。
用法:主要有以下两种:
(1)chmod [选项] 模式(mode) 文件(file)
模式:[ugoa…][[+ - =][rwxXstugo…]…][,…]
①u代表所属者、g代表所属组、o代表其他用户、a代表所有人。
② +附加权限、- 移除权限、= 指定权限。
③ 字符串’rwxXstugo’:(r )读权限、(w)写权限、 (x)执行权(或对目录的访问权),(X)只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性,(s)同时设定用户或组ID,(t)粘滞位(保存程序的文本到交换设备上),(u)目标文件属主,(g)目标文件属主所在的组,(o)其他用户。
④例子:(因此,'chmod g-s file’撤消sgid位,'chmod ug+s file’同时设置了suid和sgid位,'chmod o+s file’则没有进行任何设置)

(2)chmod [选项] 八进制模式 文件
八进制模式:xxx,x为0~7的数字。

4.3 chown命令

功能:改变文件所属者
用法chown 新所有者 文件

4.4 chgrp命令

功能:改变文件所属组
用法chown 新所有组 文件

4.5 chattr命令

功能:修改文件属性

用法chattr [ -RV ] [ -v version ] [ mode ] files

  • 模式:[+ - =] 属性

例子chattr +i /etc/group /etc/passwd /etc/shadow。其中+i指增加不可更改的属性。

4.6 find命令

功能:查找,可以查找什么名的文件在哪?什么类型的文件在哪?什么权限的文件在哪?
用法find [path...] [expression]

例子:对权限的查找,find /usr/bin -perm 4755。其他详细的用法可以通过命令man find查看帮助手册。

4.7 其他

echo $PATH   #查看PATH变量里保存了哪些信息

5 归纳

(1)掌握设置权限的作用;
(2)掌握权限的查看方式;
(3)能够解读文件和目录的权限表达式,理解权限表达中各字段代表的含义;
(4)掌握修改文件和目录权限的两种方法;
(5)掌握修改目录和可执行文件的特殊权限(粘滞位、sgid和suid)的方法;
(6)了解与权限相关的其他操作。

参考文章

[1] 《linux文件权限和文件夹权限解读》
[2] 《Kali Linux系统调整文件及目录权限》
[3] 视频传送门

【Linux系统】第10节 linux系统文件及目录权限详解相关推荐

  1. windows启动linux系统,windows 10 启动linux系统

    windows 10 启动linux系统 [2021-02-18 21:26:20]  简介: 系统运维 Windows中tocmat设置为服务开机启动一 安装Java,tomcat安装jdk,解压t ...

  2. linux系统下top命令的详细用法、参数详解、以及模式配置

    用过linux系统的人都知道top命令,它是Linux下一个最常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一 ...

  3. linux man 位置,Linux系统如何查看命令帮助,man命令使用详解

    man命令是linux中的一个基础命令,使用man命令可以了解更多关于Linux中的命令和工具. 使用man,可以查找任何支持它的命令的手册,这些手册最多分为9个章节,描述该命令是如何工作的,可用的参 ...

  4. Linux系统内核介绍及Linux系统运行级别,uname,vmstat,top命令参数详解 和一些排查案例

    Linux系统内核:内核是操作系统的核心,有很多基本功能,负责管理系统的进程 内存设备驱动程序 文件和网络系统,决定着系统的性能和稳定性 Linux内核相关介绍: 内存管理(Linux采用虚拟内存) ...

  5. 制作光盘安装linux系统教程,CentOS 7.0全自动安装光盘制作详解

    1,复制光盘文件 1 )挂载 iso 镜像 创建目录用于挂载光盘: mkdir /root/centos7 挂载 iso 镜像 mount -o loop CentOS-7.0-1406-x86_64 ...

  6. linux系统top命令:virt,res,shr详解

    2019独角兽企业重金招聘Python工程师标准>>> VIRT:virtual memory usage 虚拟内存 1.进程"需要的"虚拟内存大小,包括进程使用 ...

  7. Linux系统CentOS进入单用户模式和救援模式详解

    一.概述 目前在运维日常工作中,经常会遇到服务器异常断电.忘记root密码.系统引导文件损坏无法进入系统等等操作系统层面的问题,给运维带来诸多不便,现将上述现象的解决方法和大家分享一下,本次主要以Ce ...

  8. 退出linux用户登录命令,Linux系统中用户的登入登出命令详解

    loginlogin 命令:使用户放弃现在的使用的身份,重新登录系统.也可以在后面加入用户,在直接输入密码,登录系统 例: 复制代码 代码如下: [root@localhost test]# logi ...

  9. linux登出用户,Linux系统中用户的登入登出命令详解

    login login 命令:使用户放弃现在的使用的身份,重新登录系统.也可以在后面加入用户,在直接输入密码,登录系统 例: 复制代码 代码如下: [root@localhost test]# log ...

最新文章

  1. ios appIcon配置
  2. Python(17)_urllib下的parse的编码解码函数
  3. 模拟电路技术之基础知识(八)
  4. 实例源码_SpringBoot数据库源码解析Template实例化操作
  5. POJ-2186 Popular Cows (Tarjan缩点) 文末有测试数据
  6. MongoDB 去重(distinct)查询后求总数(count)
  7. RestTemplate实践
  8. ubuntu 配置 tftp 服务器
  9. [转]Using TRY...CATCH in Transact-SQL
  10. 【刷题】BZOJ 1003 [ZJOI2006]物流运输
  11. 软件开发常用的四种模式
  12. 如何使用腾讯云存储图片
  13. ppt菜鸟学飞第一天——基础知识及字体知识
  14. 华为手机pc模式机型_华为 P20 搭载的 PC 模式厉害了,刷新你对手机的认知
  15. linux逻辑分区如何创建,linux 创建扩展分区以及逻辑分区
  16. 8.随机生成一个矩阵并对其转置
  17. 搭建gos_Gos ast Package pt 1的好东西
  18. linux gdb中c(continue)的使用总结
  19. t-star腾讯安全高校挑战赛2022 writeup
  20. 教育:构造主义和机能主义

热门文章

  1. 深夜切题——PAT (Basic Level)-1015
  2. 初识VB(一)——浏览文件并载入外部…
  3. PPT扁平化设计总结
  4. wordpress 调整段落间距和字体大小
  5. 索尼机型刷机不用愁 带你玩转一键解锁
  6. IT6565/IT6563/IT65631/IT6561 DP转HDMI设计方案|替代IT6565/IT6563/IT65631/IT6561芯片|GSV2201可完全替代兼容IT6565/IT656
  7. idea运行springboot出现Process finished with exit code -1073741819 (0xC0000005)
  8. 【Unity3D插件】DoTween插件的简单介绍及示例代码
  9. 更新最大内码,金蝶开发
  10. 安装侧边翻译,划词翻译,看外文论文神器,比知云还好用Edge Translate