权限管理

本小妞迷上赌 提交于 2019-12-04 04:27:34

1.权限基础

  • 权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所有组,通过这样的机制来限制哪些用户、哪些组可以对特定文件进行什么样的操作
  • 每个进程都是以某个用户的身份运行,所有进程的权限与该用户的权限一样,用户的权限大,该进程用户的权限就大
  • 文件的三种权限:

    注:目录必须拥有x权限,否者无法查看其内容

2.UGO模型

  • Linux权限基于UGO模型进行控制:
    • U代表User,G代表Group,O代表Other
    • 每一个文件的权限基于UGO进行设置
    • 权限三个一组(rwx),对应UGO分别设置
    • 每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件所属用户或所属组的使用O权限
  • 命令ls -l可以查看当前目录下文件的详细信息
    • 详细信息

 

    • 相关权限

 

 3.修改文件所属用户和组

  • 命令chown用以改变文件的所有用户:chown 用户名 文件名,-R参数递归的修改目录下的所有文件的所属用户

  • chown [-R] 用户名:用户组  文件名:变更文件及目录的拥有者和所属组(-R递归处理所有文件和文件夹)
  • 命令chgrp用以改变文件的所属组:chgrp 用户组 文件名,-R参数递归的修改目录下的所有文件的所属组

4.修改权限

  • 命令chmod用以修改文件的权限:chmod 模式 文件名;模式有如下格式:
    • u、g、o分别代表用户、组和其他
    • a可以代指ugo
    • +、-代表加入或删除对应权限
    • r、w、x代表三种权限
    • -R同样是递归修改目录下文件的权限

  • 数字方式修改权限
    • 三个权限分别有三个数字表示:
      • -r = 4
      • -w = 2
      • -x = 1
    • 使用数字表示权限时,每组权限分别为对应数字之和示例
      • rw=4+2=6
      • rwx=4+2+1=7
      • r-x=4+1=5

5.默认权限

  • 每一个终端都拥有一个umask属性,来确认新建文件、文件夹的默认权限
  • umask使用数字权限方式表示,如:022
  • 目录的默认权限是:777-umask
  • 文件的默认权限是:666-umask
  • 一般,普通用户的默认umask是002,root用户的默认umask是022
  • 对于普通用户来讲:
    • 新建文件的权限是:666-002=664

    • 新建目录的权限是:777-002=775

 

    • root用户:新建文件:644

    • 命令umask用以查看设置umask值:umask 022,新建文件默认权限变为644

 

 6.特殊权限

  • 三个特殊权限

    • suid:目的是让某些用户实现它原本没有权限去做的一些操作,通常用在可执行文件中,命令就是可执行文件
      • 通常是给命令或可执行文件用的,命令或可执行文件都会去以一个用户的身份运行,之所以这样是为了限制命令能够去访问的资源,一般的命令都是谁去运行这个命令,我都是以这个命令的用户去运行,这个用户能够访问的权限都会传递给这个命令;
      • 需求:希望用户执行某些命令获得额外的资源和功能;
      • 比如一个命令可以修改操作系统的功能,它的所属用户是root,我让其他用户能够运行这个命令,即o权限设置为r-x,但是又不想开放这个功能,因为普通用户没有修改操作系统的权限,即使你o权限设置为r-x,但其他用户也做不了修改,给这个文件设置suid,普通用户去执行这个文件的时候并不是以用户的身份去执行,而是以这个命令所属用户的身份去执行
      • 系统某些权限只有root用户才有,虽然给普通用户配置了相应的权限,但是仍然执行不了某些操作,所以给文件设置了suid后,普通用户就以所属用户的身份去操作这个文件;
      • 比如命令passwd,用户的密码存放在/etc/shadow下面,除了root,其他所有用户什么权限都没有,所以给passwd设置了所属用户root的权限,可以修改密码

    • sgid:设置了sgid的目录,所有新建的文件和文件夹都会继承(递归)该目录的所属组,方便权限控制
    • sticky:设置了sticky的目录,对目录拥有写入权限的用户不能删除其他用户的文件,常用于同部门(组)员工可以相互访问其他的文件,但是无法删除其他用户的文件
  • 设置特殊权限
    • 设置suid:chmod u+s 文件名

    •  设置sgid:chmod g+s 文件名

    • 设置sticky:chmod o+t 文件名

  • 与普通权限一样,特殊权限也可以使用数字方式表示
    • -suid = 4
    • -sgid = 2
    • -sticky = 1
    • chmod 6755 文件名:即同时拥有suid和sgid两个特殊权限
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!