Linux权限管理操作

本文详细介绍了Linux系统的权限操作,包括文件的读、写、执行权限以及owner、group和其他用户的分类。通过chmod命令,可以使用字母或数字形式设置文件权限。属主和属组的设置涉及到chown和chgrp命令。此外,文章还讨论了sudo命令在赋予普通用户特定权限上的应用,以及如何配置sudoers文件来限制用户执行特定操作。
摘要由CSDN通过智能技术生成
  • 权限概述
    • Linux的权限操作和用户、用户组是兄弟操作
    • 综述:一般文件可存/取访问的身份为3个类别:owner、group、others,且3种身份各有read、write、execute等权限
    • 1.权限的介绍
      • 操作权限的分类
        • 读:
          • 目录:读权限影响用户是否能够列目录结构
          • 文件:读权限影响用户是否可以查看文件内容
        • 写:
          • 目录:写权限影响用户是否能够进行创建、删除、复制、移动到文档
          • 文件:写权限影响用户是否能够编辑文件的内容
        • 执行:一般针对脚本文件
      • 身份权限的分类
        • owner(所有者——一般为文件或目录的创建者)
        • group (组成员)
        • others(其他成员)
        • root(超级管理员)
      • 文件权限识别
        • 文件类型:

        • 图例(图中的可执行要用x表示,当时打错了,注意不要记混)

  • 权限设置
    • 语法:chmod 选项 权限模式 文档
    • 常用选项:-R——递归设置权限 (当设置的为目录文件时)
    • 权限模式:该文档需要设置的权限信息
    • 文档:文件/文件夹,相对路径/绝对路径
    • 注:如果想给一个文件设置权限,要么为root用户,要么为该文件的所有者
    • 设置方式:
      • 字母形式
        • 用户字符:
          • u:表示所有者身份owner(user)
          • g:表示给所有者同组用户设置(group)
          • o:表示others,给其他用户设置权限
          • a:表示all,给所有人(包含ugo部分)设置权限——此选项也为默认选项
        • 权限字符:
          • r:读
          • w:写
          • x:执行
          • -:没有权限
        • 权限分配方式:
          • +:表示给具体的用户新增权限(相对当前)
          • -:表示删除用户的权限(相对当前)
          • =:表示将权限设置成具体的值(注重结果)【赋值】
        • 案例:给test.txt设置权限(-rw-------)
          • 方式一:chmod u+x,g+rwx,o+rwx test.txt
          • 方式二:chmod u=rwx,g=rwx,o=rwx test.txt
          • 方式三:如果三部分权限一样就可以一起写——chmod ugo=rwx
          • 如果文件什么权限都没有,可以使用root用户设置所有人都有执行权限,可以写成:chmod +x test.txt;chmod a=x test.txt;chmmod a+x test.txt。
      • 数字形式
        • 数字权限符
          • 案例:chmod 777 a.txt——是给文件设置成所有用户都有全部权限
          • 读:r——4
          • 写:w——2
          • 执行:x——1
          • 没有权限则为0
          • 常见数字权限
            • 全部权限(u):读+写+执行=4+2+1=7
            • 读和执行(g):读+执行=4+1=5
            • 读权限(o):读=4
          • 面试题:用超级管理员设置文档的权限命令是#chmod -R 731 aaa,请问这个命令有没有什么不合理的地方?
            • 拥有者:7=4+2+1=读+写+执行
            • 同组用户:3=2+1=写+执行
            • 其他用户:1=1=执行
            • 注意:在写权限的时候千万不要设置类似于上面的这种“奇葩权限”。如果一个权限数字中但凡出现2与3的数字,则该权限有不合理的情况。
      • 注意事项
        • 使用root创建一个文件夹(/oo),权限默认,之后再在oo目录下创建文件(oo/xx.txt),需要给777权限,最后用test用户(不是文档所有者,也不是同组用户,属于other部分)进行操作:
          • 问题1:test用户是否可以打开oo/xx.txt文件?【能打开】
          • 问题2:test用户是否可以编辑oo/xx.txt文件?【可以】
          • 问题3:test用户是否可以删除oo/xx.txt文件?【不可以,同样还不允许创建文件/文件夹、移动文件、重命名文件】
          • 在Linux中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除。
  • 属主与属组设置
    • 属主:所属的用户(文件的主人)
    • 属组:所属的用户组,即创建用户的所属主组
    • 删除用户是需要更改对应文件的属主和属组
    • chown(重点)
      • 作用:更改文档的所属用户——属主
      • 语法:chown -R username 文件路径
      • 案例:将root用户创建的cc目录所有者更改为test
        • chown test cc/
    • chgrp(了解)
      • 作用:更该文档的所属用户组
      • 语法:chgrp -R groupname 文档的路径
      • 案例:将刚才root用户创建的cc目录所属用户组改为test
        • chgrp test cc/
    • 同时修改属主和属组
      • 语法:chown -R username:groupname 文档路径
      • 案例:只使用chown指令,将目录的所属用户和用户组改回成root,其中包含其子目录
        • chown -R root:root cc/
  • 扩展(1)
    • 问题:reboot、shutdown、init、halt、user管理,在普通用户身份上都是操作不了,但是有些特殊的情况下又需要有执行权限。又不可能让root用户把自己的密码告诉普通用户
    • 解决方法:该问题是可以被解决的,可以使用sudo(switch user do)命令来进行权限设置。Sudo可以让管理员(root)事先定义某些特殊命令谁可以执行。
    • 默认sudo中是没有除root之外用户的规则,要想使用则先配置sudo。
      • Sudo配置文件:/etc/sudoers——此文件只能读不能改但可以通过visudo命令进行修改
      • 配置普通用户的权限
        • Root表示用户名,如果是用户组,则可以写成“%组名”
        • ALL:表示允许登录的主机(地址白名单)
        • (ALL):表示以谁的身份执行,ALL表示root身份
        • ALL:表示当前用户可以执行的命令,多个命令可以使用“,”分割
      • 案例:本身test用户不能添加用户,要求使用sudo配置,将其设置为可以添加用户,并且可以修改密码(但是不能修改root用户密码)。
      • 注意:在写sudo规则的时候不建议写直接形式的命令,而是写命令的完整路径。
      • 路径可以使用which命令来查看
      • 语法:which 指令名称
      • 在添加好对应的规则之后就可以切换用户,切换到普通用户test,再去执行:
      • 此时要想使用刚才的规则,则以以下命令进行:
      • sudo 需要执行的指令
      • 在输入sudo指令之后需要输入当前的用户密码进行确认的操作(不是root用户密码),输入之后在接下来5分钟内再次执行sudo指令不需要密码。
      • 特别注意:此处按照案例要求,不能让test用户修改root密码,因此规则还需要调整,不然其可以修改root密码的:
      • 禁止修改root密码的配置(先允许全部,再拒绝root密码设置): /usr/bin/passwd[A-Za-z]*, !/usr/bin/passwdroot
      • 补充:在普通用户下怎么查看自己具有哪些特殊权限呢?
        • sudo -l
      • 最后:sudo不是任何Linux分支都有的命令,常见centos与ubuntu都存在sudo命令。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值