本文主要用于学习linux中的文件权限和用户身份,本文的目录结构与参考目录大致相同,但是会包含一些实践
主要参考 《Linux就该这么学》
及命令大全https://www.linuxcool.com/
用户身份和能力在Linux系统中,UID就相当于身份证号码一样具有唯一性,因此可通过用户的UID值来判断用户身份
- 管理员UID为0:系统的管理员用户。
- 系统用户UID为1~999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
- 普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。
为了方便管理,引入了用户组,创建一个用户默认会创建于其同名的基本用户组,一个用户只会有一个基本用户组,如果将该用户纳入到其他用户组,则其他用户组被称为扩展用户组
格式: id 用户名
简介: 显示用户详细信息
格式: useradd [参数] 用户名
简介: 创建新的用户账户
useradd命令中的参数以及作用
格式: groupadd [参数] 群组名
简介: 创建新的用户组
格式: usermod [参数] 用户名
简介: 修改用户的属性
用户信息保存在文件中,可以修改文件,也可以修改已创建的用户信息
usermod命令中的参数以及作用:
开始尝试例子
格式: passwd [参数] 用户名
简介: 修改用户的密码、过期时间等信息 普通用户只能使用passwd命令修改自己的系统密码,而root管理员则有权限修改其他所有人的密码
passwd命令中的参数以及作用:
锁定用户, 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
解锁
格式: userdel [参数] 用户名
简介: 删除已有的用户账户 ,删除用户时该用户的home目录会被保留
userdel命令中的参数以及作用:
在Linux中每个文件都有归属的所有者和所有组,并且规定了所有者、所有组和其他人对文件所拥有的、、等权限
- 对于一般文件:可读表示读取文件的内容,可写表示能够编辑、新增、修改、删除,可执行表示运行一个脚本程序
- 对于目录文件:可读表示读取目录内的文件列表,可写表示能够在目录内新增、删除、重命名文件、可执行表示能够进入到该目录
如下图 读写执行权限对于文件与目录可执行命令的区别
文件的读、写、执行权限字符表示及数字表示如下图,读为4、写为2、执行为1
文件权限的数字法是为了简化权限的表示方式
文件权限 :++ 表示可读r、可写w、可执行x
文件权限 :表示 rwxrw-r-- ,所有者可读可写可执行,所属组可读可写,其他用户可读,其中-代表占位符,表示没有权限,数字表示为0也是就表示
练习如下
在复杂多变的环境中,单纯的文件权限rwx无法满足对安全的灵活性的需求,所以有了 、与的特殊权限位.
SUID是一种对二进制程序进行设置的特殊权限,能够让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
如下
所有者的权限由变成了,其中改变成就意味着该文件被赋予了SUID权限。如果原本的权限是呢?如果原先权限位上没有执行权限,那么被赋予特殊权限后将变成
查看结果为红色,预警小心这个权限
注: 一旦某个命令文件被设置上了SUID权限,那么就意味着凡是执行的人都可以临时获取到更高的权限,千万不要设置到vim、cat、rm等命令上面!!!
有两种应用场景,当对二进制程序进行设置时,能够让执行者临时获取到文件所有组的权限;而对目录进行设置时,则是让目录内新创建的文件自动继承该目录原有用户组的名称
如第一种场景如下
总结:有上图可知,/etc/shadow这个文件无任何权限,但是可以找到这个文件,找不到这个文件
对比一下和的权限发现的权限 在所属组的位置出现了,这代表着这个命令文件上增加了 SGID特殊权限位 ,也就是说用户在执行这个命令的时候会临时获取对应文件的所属组的权限
场景二:
格式: chmod [参数] 文件名
简介: 设置文件的一般权限及特殊权限 , 针对目录进行操作时需要加上大写参数-R来表示递归操作
格式: chown 所有者:所有组 文件名
简介: 设置文件的所有者和所有组 , 针对目录进行操作时需要加上大写参数-R来表示递归操作
可确保用户只能删除自己的文件,而不能删除其他用户的文件 , 换句话说,当对某个目录设置了SBIT权限后,那么该目录中的文件就只能被其所有者执行删除操作了。
当设置SBIT权限后,文件的其他人权限部分的/就会被提低成为/
SUID、SGID、SBIT特殊权限的设置参数 :
授权结合数字
SUID、SGID与SBIT也有对应的数字法表示,分别即是4、2、1 ,也就是说满权限应该是7777,第一个数字代表特殊权限位,由构成
:去除最后一位SBIT数字为,添加上SBIT结果为
去除SUID的s和SGID中的S数字为,添加上SUID和SGID数字为
文件的隐藏属性Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限
专用的设置命令是chattr,专用的查看命令是lsattr。
格式: chattr [参数] 文件名称
简介: 设置文件的隐藏权限 想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”
chattr命令中的参数及其作用
格式: lsattr [参数] 文件名称
简介: 查看文件的隐藏权限
对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(FACL,File Access Control Lists)
通俗来讲,基于普通文件或目录设置ACL访问控制其实就是针对指定的用户或用户组设置文件或目录的操作权限,更加精准的派发权限。另外,如果针对某个目录设置了ACL,则目录中的文件会继承其权限;若针对文件设置了ACL,则文件不再继承其所在目录的权限
格式: setfacl [参数] 文件名称
简介: 用于管理文件的ACL权限规则 。 ACL权限提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制
setfacl常用命令中的参数以及作用
切换root用户给,去除几个权限
切换用户
切换给temp授权
切换,发现可以进入了
注:当授予权限的时候最后会追加一个
格式: getfacl [参数] 文件名称
简介: 查看文件的ACL权限规则
由于授权以后会把原来的权限给覆盖,所以可以通过 递归参数备份权限,通过参数恢复
用于快速切换账户,和用户名之间有时候会有一个 这表示:完全切换到新用户,及吧环境变量也更新成新用户相关信息
注:生产环境尽量不要用root用户,也不要普通用户切root用户,以防被黑客盗取密码
格式: sudo [参数] 用户名
简介: 给普通用户提供额外的权限
sudo常用命令中的可用参数以及作用
还可以使用命令来配置用户权限( /etc/sudoers),以解决多个用户同时修改权限造成的冲突问题,还能进行语法检查
查看文件
修改用户权限需要在下一行填写
格式: 谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
- 谁可以使用:稍后要为那位用户进行命令授权。
- 允许使用的主机:可以填写ALL代表不限制来源主机,亦可填写如192.168.10.0/24的网段限制来源地址,只有从允许网段登录时才能使用sudo命令。
- 以谁的身份:可以填写ALL代表系统最高权限,也可以是另外一位用户的名字。
- 可执行命令的列表:可以填写ALL代表不限制命令的列表,亦可填写如/usr/bin/cat的文件名称来限制命令列表,多个命令文件之间用逗号(,)间隔。
如下能以root管理员的身份执行命令
切换用户
每次输入密码很麻烦可以修改为:
作者:zhao56
以上就是本篇文章【linux专题(四)用户身份与文件权限】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/2600.html 行业 资讯 企业新闻 行情 企业黄页 同类资讯 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多