- 权限概述
- 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中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除。
- 使用root创建一个文件夹(/oo),权限默认,之后再在oo目录下创建文件(oo/xx.txt),需要给777权限,最后用test用户(不是文档所有者,也不是同组用户,属于other部分)进行操作:
- 字母形式
- 属主与属组设置
- 属主:所属的用户(文件的主人)
- 属组:所属的用户组,即创建用户的所属主组
- 删除用户是需要更改对应文件的属主和属组
- 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命令。
Linux权限管理操作
最新推荐文章于 2022-04-02 08:23:53 发布
本文详细介绍了Linux系统的权限操作,包括文件的读、写、执行权限以及owner、group和其他用户的分类。通过chmod命令,可以使用字母或数字形式设置文件权限。属主和属组的设置涉及到chown和chgrp命令。此外,文章还讨论了sudo命令在赋予普通用户特定权限上的应用,以及如何配置sudoers文件来限制用户执行特定操作。
摘要由CSDN通过智能技术生成