Linux基础学习-Linux权限管理命令

  • 第十七节 Linux权限管理命令学习6 重要
    • 17.1权限分类
    • 17.2 ugo权限
      • 17.2.1查看ugo权限
      • 17.2.2.ugo权限字符
      • 17.2.3.ugo权限和文件操作关联
      • 17.2.4.修改文件属主/属组命令—root(chown)
      • 17.2.5 修改文件ugo权限(chmod)
        • 17.2.5.1修改字母(rwx)改权限
        • 17.2.5.2修改数字(rwx--421)改权限
    • 17.3 facl权限
      • 17.3.1 查看facl权限(getfacl)
      • 17.3.2修改facl权限(setfacl)
    • 17.4 特殊权限
      • 17.4.1suid权限(针对命令文件权限)
      • 17.4.2sgid权限(属组跟随)
      • 17.4.3 sticky权限
      • 17.4.4 总结
    • 17.5隐藏权限(文件扩展属性)
      • 17.5.1查看隐藏权限
      • 17.5.2设置隐藏权限
    • 17.6文件默认权限(Umask /反掩码/)
      • 17.6.1查看和修改反掩码
      • 17.6.2计算默认权限

第十七节 Linux权限管理命令学习6 重要

为甚进行权限管理?
Linux操作系统是多用户操作,操作者通过用户使用计算机。
因此为了控制这些用户的行为,通过限制用户的权限来实现。
权限管理(root)

17.1权限分类

1.常用权限:Ugo权限(最多用的)
Facl权限(补充ugo权限没有的)
2.特殊权限:Suid权限
Sgid权限
Sticky权限
3.文件扩展属性/隐藏权限
4.umask/反掩码/文件默认权限

17.2 ugo权限

17.2.1查看ugo权限

1.查看ugo权限
使用命令:ll 或者 ls-l -----》查看文件属性
例如:- rw-r–r--. 1 root root 196 sep 3 08.21 passwd

  • 文件类型—(普通文件)
    Rw-r—r–: ugo权限(九位)
    . :linux系统有关文件
    1 :硬链接数
    Root :文件属主/文件所有者/文件属于哪个用户
    Root :文件属组/文件所属组/文件属于哪个用户组
    196 :文件大小
    sep 3 08.21 :最近修改时间
    passwd :文件名
    2.具体分析:
    (1) Rw- r-- r-- ugo----user(属主用户)group(属组成员)other(其他用户)
    属主用户权限:----例如:rw- (前三位) -----一个人
    属组成员权限:----例如:r–(中三位) ------一批人
    其他用户权限:----例如:r–(后三位) ------一堆人
    使用不同的用户操作同一文件,权限是不同的,能进行的操作也是不同的。

17.2.2.ugo权限字符

Ugo权限出现的字符:rwx(顺序固定,第一个是r,第二个是w,第三个是x)
r: read 读权限
w:write 写权限
x:execute 执行权限
-: null 补位
补充:r(读取):对于普通文件可以读取文件的实际内容,如,读取文本文件的文字内容等
w(写入):编辑,新增,修改该普通文件的内容(但不含删除文件)
x(执行): 普通文件具有可以被执行的权限

r(读取):对于目录文件可以读取目录结构列表----ls
w(写入):(1)建立新的目录文件(用cat,vim,touch等命令看的)
(2)删除依旧存在的普通文件和目录文件(不论该普通文件的权限是什么)
删除目录时要递归删除
删除文件和文件没有关系,是和文件所在的目录有关系
(3)将已存在的文件或目录进行改名:
(4)移动该目录内的文件,目录位置
x(执行): 目录没有执行这么一说,目录的x代表的是用户能否进入该目录成为工作目录(当前目录)-----cd 到某目录
例如:vim /etc/passwd rw
Cat /etc/passwd r
cp涉及到的权限:
cp 的目标路径要有读取文件内容(r) ,目标路径进入目录(x),创建同名文件(w),写入(粘贴)文件内容(w)
cp /etc/passwd /tmp 成功
cp /etc/shadow /tmp 失败(r shadow不具备r权限)
cp /etc/passwd /usr 失败(usr不具备w权限)
cp /etc/passwd /root 失败(passwd不具备x权限)
Mv涉及到的权限:源文件路径…目标路径(目录)----指定文件移动到指定目录
Mv /etc/shadow /usr
Mv 涉及到的权限:
目标路径进入目录(x)删除同名文件(w),目标路径(x)创建同名文件(w)

17.2.3.ugo权限和文件操作关联

1.普通文件:有以下权限的对应操作
R(read读) : Cat tac more less head tial vim
W(write写): vim----->:w 1> 2> &> 1>> 2>> &>>
X 执行文件:(命令文件,脚本文件)

  • 补位 : —到rwx,没有哪个权限就用-补位
    例如:rwx r-- rw-

2.目录文件:
r ls
w rm touch创建 mkdir ,mv


X cd

  • 补位
  1. Ugo权限对root用户没有约束力(即使9位权限都是-,也不影响root的操作,可读可写),除了x权限(如果没有x执行权限,就算是root也不能执行)

17.2.4.修改文件属主/属组命令—root(chown)

只有Root用户能改文件属主和属组,一般使用者没有权限可以改变别人的文件拥有者,也没没有权限把自己的文件拥有者改设为别人
1.Chown指令(change owner):
基本语法:chown +(属主:可以是用户名/uid)+ 文件路径/名称
-R 表示递归文件
Chown user_name 文件路径/名称
功能描述:将指定文件的拥有者改为指定的用户
其他用法:
(1): chown user_name:group_name 文件路径/名称
Chown user1:user1 passwd ----->passwd的属主和属组改为user1
功能描述: 将指定文件的拥有者和拥有组改为指定用户和用户组
(2):chown :group_name 文件路径/名称
Chown :root passwd ---->passwd文件的属组改为root,属主不变
功能描述:将指定文件的拥有组改为指定用户组
练习1:
a.使用ll查看root命令下的文件 abc ,其对应的属主为root,权限是可读可写

b.使用chown hhp abc 修改abc属主,从root改为hhp,现在hhp用户下abc就具备读写权限

c.切换到hhp用户下,查看abc文件,并进行编辑操作.


练习2: 将wj的属主和属组都改为hhp

练习3:将abc改为属组是root chown :root abc
总结:
(1) Chown user_name 文件路径/名称 只修改属主
(2) Chown :group_name 文件路径/名称 只修改属组
(3) Chown group_name 文件路径/名称 只修改属组
(4) Chown user_name:group_name 文件路径/名称 同时修改属主和属组
(5) Chown user_name: 文件路径/名称 同时修改属主和属组(属组是之前创建用户自己自动生成的一个属组))
其中(4)和(5)的区别是
(4)中的属主和属组是指定修改的,(5)是属主指定,属组自动修改的
没有修改之前:abc的属主和属组分别是hhp和root

执行命令后, abc文件的属主和属组都是xh

2.chgrp指令(change group)
基本语法:chgrp +(属组:可以是用户组/gid)+ 文件名/路径
Chgrp group_name 文件名/路径
功能描述:将指定文件的拥有组改为指定的用户组
练习:将abc的属组改为hhp

17.2.5 修改文件ugo权限(chmod)

17.2.5.1修改字母(rwx)改权限

  1. 修改文件ugo权限-----》要么是root用户,要么是文件属主
    例如:passwd的属主就是test1,test1和root都可以修改文件ugo权限

2.Chmod(change mode)指令
ugo权限----user(属主用户)group(属组成员)other(其他用户)
(1)chmod u+(r,w,x) 文件名称/路径 ----添加属主用户权限
(2)chmod u-(r,w,x) 文件名称/路径 ----减少属主用户权限
(3)chmod g+(r,w,x) 文件名称/路径 ----添加属组成员权限
(4)chmod g-(r,w,x) 文件名称/路径 —减少属组成员权限
(5)chmod o+(r,w,x) 文件名称/路径 ----添加其他用户权限
(6)chmod o-(r,w,x) 文件名称/路径 —减少其他用户权限
(7)chmod a+(r,w,x) 文件名称/路径 ----全部权限都加(属主,属组,其他)

(8)chmod a-(r,w,x)文件名称/路径 ----全部权限都减去(属主,属组,其他)

写多个权限一起写时要用,分隔
例如:

练习:在test1用户中,给passwd的拥有者加上读和写的权限,拥有组和其他用户加上读权限
Chmod u+rw,g+r,o+r passwd《------》chmod a+r,u+w passwd

3.练习:
创建3个用户,test1,test2,test3,将passwd文件复制到当前目录下
将passwd的属主和属组都改为test1
使test2对文件有读和写的权限,但是test3么有这个权利
Useradd test useradd test2 useradd test3--------创建用户,只有root可以做

Cp /etc/passwd .

将root属主改为test1 ,Chown test1:test1 passwd ,切换到test1用户下

Gpasswd -a test2 test1 -----usermod -G test1 test2 -------只有root用户可以做

Chmod g+rw passwd--------------------------》root和文件属主都可以修改权限

退出test2用户,重新登录su,这样才能生效,test2才能达到效果*********
这样test3不能修改passwd文件,但是这样的操作会产生隐藏的危险
危险1:Gpasswd -a test2 test1 (将test2用户添加到test1组中0
(1)test2用户的权限从读变成读写,不只是针对passwd一个文件,还针对test1用户下所有的文件,test2都有读和写的权限,无形中将test2的权限放大,存在隐患
危险2:Chmod g+rw passwd (给test1的组权限改为读写)
(2)test1用户下可能还有其他用户,如果将组的权限从读到读写,这样其他用户也可以对其他文件进行操作。无形中也将其他用户的权限放大,存在隐患。

17.2.5.2修改数字(rwx–421)改权限

1.数字对应字母
R=4 W=2 r=1 三位求和(前三位,中三位,后三位)
例如:rwx rw- r-- 表示:rwx=7 rw=6 r=4 -----》权限表示为764
Rw- rw- — 表示:rw=6 rw=6 —=0-----》权限表示为660
练习:

2来源:
转换成三位连续二进制-----》八进制数代替字符权限
Rwx-----111 rw-:110 r–:100

17.3 facl权限

Facl/acl权限(file access control list )文件访问控制列表
对单独用户操作权限

17.3.1 查看facl权限(getfacl)

Getfacl 指令:
基本语法getfacl +【参数】} 文件名/路径
功能描述:获取目录或文件访问控制列表
练习:getfacl passwd

17.3.2修改facl权限(setfacl)

Setfacl指令-----------------这个只有root和属主可以使用
基本语法:setfacl+参数+(u:user_name:权限,g:group_name:权限,o:other_name:
权限) 文件/文件路径 常修改u的权限
参数:-m(modify)—修改/添加
Setfacl -m u:user_name:权限 文件/文件路径—
-b-----清空
Setfacl -b 文件/文件路径 ------》全部删除
-x----删除
Setfacl -x u:user_name 文件/文件路径----指定删除
功能描述:修改访问控制列表
练习1:给test3中的主属用户权限改为读写,让其可以对passwd操作
只要出现+就表示出现了访问控制列表,就需要到访问控制列表中查看

用getfacl passwd查看结果,发现只有test3用户有读写

权限访问顺序:facl权限>ugo权限
练习2:给test4中的主属用户权限修改,只能读取passwd文件

练习3:删除test4的权限

练习4:清空文件列表

17.4 特殊权限

17.4.1suid权限(针对命令文件权限)

Suid场景:改密码
使用root用户----使用passwd命令—修改密码-----》最后密码保存在/etc/shadow
Test1 用户----- 使用 passwd命令-----修改密码----》最后密码保存在/etc/shadow—修改成功


Test1用户----使用cat/vim----》操作文件-----》/etc/shadow—失败
使用命令进行文件操作时,会进行权限验证。

(1)suid(set uid):是设置给命令文件(passwd,cat,vim等命令)的特殊权限,在查看命令信息时,出现在ugo中u的x位置上(s),当用户使用设置了suid权限的命令进行操作时,会发生权限转化。用户权限会变成被操作文件属主的权限。

Test1权限------》passwd改密码(1.有suid功能,2.密码修改/etc/shadow)-----》
变成被操作文件属主的权限(root)
(2) 修改suid权限------将s改为权限去掉
Chmod u-s / usr/bin/passwd

(3)由于将在ugo中u的s位置上,执行命令u-s后,test1无法修改密码,失败

使用chmod u+s /usr/bin/passwd(passwd命令所在的路径), 权限由rwx----rws(x),再次修改用户密码就会成功

(4)练习:修改cat命令的权限,让test用户可以查看/etc/passwd
先查看cat命令的所在路径,----》/bin/cat

在修改命令文件的权限-----》chmod u+s /bin/cat

Test1用户查看/etc/shadow

(5)X执行权限 +suid特殊权限 共用一位,大小s主要是为区分x有无
rw- +suid=rwS----(-+s)(大写字母S
rwx +suid=rws----x+s=(小写字母s)

17.4.2sgid权限(属组跟随)

sgid出现在ugo权限中g的x位置中(s)

  1. Sgid可以设置给两类文件:
    (1). 命令文件----用户使用命令操作文件,用户权限会变成被操作文件的属组成员权限
    (2) 目录文件-----属组跟随(取决于属主用户,属组成员)
    /home/test1 +sgid-----》无论创建用户是谁,文件属主都是test1,目录属组都是root
    将/home 的主属组权限改为sgid,此时属主是root,属组成员是root

在test1用户的/home下创建文件abcd1,查看当前信息 发现属主是当前用户,但属组成员依旧是root------属组跟随

17.4.3 sticky权限

sticky出现在ugo权限中o的x位置(t)

  1. Sticky权限用于设置给目录文件,防止普通用户误删除
    能不能删除文件和文件是属于哪个用户的没有关系,删除文件看所在目录的权限
    删除文件,不是看文件而是看文件的目录有没有w权限,
    普通用户只能删除自己的文件,原则是谁创建建的谁删,如果不删除,Root用户都可以删除
    test1用户在/home下创建abc普通文件,查看/home/目录后给其他人读的权限,

在test3用户下删除刚才创建的abc普通文件,

假如有sticky权限,就不会出现其他用户删除文件的现象:
Chmod o+t /home/ ( 修改文件目录对应的其他用户的执行权限(x—t)

这次test3用户就无法删除test1创建的abc文件,提示没有权限,

17.4.4 总结

1特殊权限查看: ll
2. 特殊权限修改: chmod ugo +/-(x位为s或t)
数 字 表示: Suid 4 sgid 2 sticky 1
例如:chmod 755 passwd -----》rwx r-x r-x
Chmod 7755 passwd —》第一位为特殊权限,其余位为ugo权限
rws r-x r-x rwx r-s r-x rwx r-x r-s
三个中有一个是s

17.5隐藏权限(文件扩展属性)

限制root用户----防止root用户误删除

17.5.1查看隐藏权限

Lsattr 指令:
基本语法:lsattr 文件路径

17.5.2设置隐藏权限

Chattr指令:
基本语法:Chattr +/- i/a 文件路径
+a :不能对文件以及文件原内容进行改变操作,可以追加内容
一般在日志文件中加



 +i  :  不能进行任何文件和文件数据改变的操作----配置文件中加


总结:如果在root用户下,不能对任何文件操作(修改,删除),说明有隐藏的权限

17.6文件默认权限(Umask /反掩码/)

普通文件默认权限:644
目录文件默认权限:755

有一些情况是批量创建权限相同的文件,有2个方法
(1)创建出新的文件,使用chmod命令修改权限
(2)使用反掩码(umask)----可以决定文件默认权限,原始权限结合反掩码====默认权限,原始权限是固定的: 普通文件666,目录文件777

17.6.1查看和修改反掩码

Umask指令:(这个只针对于当前窗口生效,如果要一直生效可以在配置文件修改)
基本语法: umask +【四位数字】
Root用户的反掩码----umask是022

练习:将反掩码修改为002,并查看修改后的反掩码,在创建文件查看


永久生效修改配置文件:/etc/bashrc

17.6.2计算默认权限

默认权限==原始权限+反掩码
原始权限:普通文件666,目录文件777
反掩码:umask设置为011
(1)将原始权限先转换为二进制数
普通文件666: 转换为二进制:110 110 110
目录文件777:转换为二进制 111 111 111
(2)将反掩码展开成二进制:
反掩码011:转换为二进制 000 001 001
(3)对反掩码进行取反操作:(0变1,1变0)
将011------》000 001 001
取反后
111 110 110
(4)将取反后的反掩码与原始权限按位进行与(&)运算----按位(一位一位bit)
反掩码(取反):111 110 110
原始权限(666):110 110 110
与运算的结果: 110 110 110
转换为十进制: 6 6 6
反掩码(取反):111 110 110
原始权限(777):111 111 111
与运算的结果: 111 110 110
转换为十进制: 7 6 6
(5)补充:与或非运算“
1:二进制逻辑运算
与运算(1,0) ----双目操作符
1&&1=1 0&&0=0 1&&0=0 0&&1=0
或运算(1,0)----双目操作符 (同或,异或)
0||0=0 1 || 1=1 1||0=1 0||1=1
非运算(1,0)----单目操作符
!0=1 !1=0
2:命令执行状态的逻辑运算
真:true 假:false

13. Linux权限管理命令相关推荐

  1. linux 权限管理命令chown、chgrp、umask、linux新建文件或目录的默认权限755

    chown /bin/chown chown [用户] [文件或目录] 改变文件或目录的所有者 只有root可以改变文件或目录的所有者 root用户: mkdir /tmp touch /tmp/te ...

  2. linux 权限管理命令

    一.常用命令 二.特殊权限

  3. linux权限管理命令chown,详解Linux系统中管理文件权限的chown和chmod命令

    chown用法:chown [选项]... [所有者][:[组]] 文件... 或:chown [选项]... --reference=参考文件 文件... 更改每个文件的所有者和/或所属组. 当使用 ...

  4. Linux用户与权限管理命令

    目录 一.Linux用户介绍 二.用户和组相关文件 三.用户和组管理命令 四.Linux权限管理命令 一.Linux用户介绍 Linux用户类型分为三类:超级管理员用户.系统用户和普通用户 超级管理员 ...

  5. linux权限命令chgrp,Linux 基础——权限管理命令chown、chgrp

    一.chown命令与chgrp命令的作用 有时你需要改变文件或目录的属主,比如有人离职或开发人员创建了一个在测试或生产环境中需要归属在系统账户下的应用.Linux提供了两个命令来实现这个功能:chow ...

  6. linux之权限管理命令

    第一章 linux之帮助命令 第二章 linux命令行快捷键 第三章 linux之防火墙 第四章 linux之服务开机自启 第五章 linux之关机与重启 第六章 linux之环境变量 第七章 lin ...

  7. [Linux] 010 权限管理命令 chmod

    1. 权限管理命令:chmod 命令名称:chmod 命令英文原意:change the permissions mode of a file 命令所在路径:/bin/chmod 执行权限:所有用户 ...

  8. linux设置共享权限设置命令,Linux系列知识详解(三)--------- Linux链接命令和权限管理命令...

    Linux系列知识详解(三)--------- Linux链接命令和权限管理命令 一:链接命令ln 简介:什么是链接命令?链接命令分为软链接和硬链接.其中软链接产生的新文件是以路径的形式表示原文件,类 ...

  9. Linux常用命令(第二版) --权限管理命令

    权限管理命令 1.chmod[change the permissions mode of a file] : /bin/chmod 语法: chmod [{ugo}{+-=}{rwx}] [文件或目 ...

最新文章

  1. python基础学习中要懂的知识点:反射机制
  2. 如何从URL查询字符串获得/附加视图参数(示例)?
  3. Python - 调试Python代码的方法
  4. linux内核ddr初始化,X-007-UBOOT-DDR的初始化(Bubblegum-96平台)
  5. ES6 -数组的扩展
  6. 【Elasticsearch】揭秘 Elasticsearch 分片分配
  7. python tkinter载入图片_Python的GUI编程
  8. pytorch保存模型参数
  9. rxjava教程_RxJava教程
  10. 大数据分析应具备哪些属性
  11. 软件工程第一次作业程序开发历程
  12. Java求质数(素数)(超详细)
  13. sign-canvas 一个基于canvas开发,封装于Vue组件的通用手写签名板(电子签名板),支持pc端和移动端;
  14. 2019年:两成开发者月薪超1.7万,算法工程师最紧缺
  15. 界面控件DevExpress发布v18.2.7,新版全新出发|附下载
  16. Drools基础语法
  17. datastage(IBM InfoSphere Information Server )日志的获取和分析
  18. iOS代码实现布局(三)—用CocoaPods导入第三方库Masonry
  19. I.Gree的心房(思维题)
  20. Java求log2(N)

热门文章

  1. 强化学习—— Target Network Double DQN(解决高估问题,overestimate)
  2. div+css静态网页设计web网页设计实例作业 ——中国风的茶文化(4页) web课程设计-HTML网页制作代码
  3. 感觉自己不会的东西太多了,不知道如何下手?
  4. 查看计算机远程端口,如何查看服务器远程端口号.doc
  5. macbook linux 双系统,MacOS+Ubuntu双系统,原来MacBook安装linux也简单!
  6. 图像融合之泊松融合,原理讲解及C++代码实现(特别适合新手)
  7. 使用Dockerfile创建包含nginx-fair和nginx-check模块的nginx镜像
  8. 如何标题编号自动生成_标题编号的自动生成+自动修改的方法步骤
  9. VMware虚拟机配置IP地址
  10. 如何在众多快递物流中筛选出代收的单号