Linux文件权限问题
1.查看文件权限
2.目录和文件权限问题
目录具有x权限,能进入
目录具有r,x权限,能进入也能查看
但不能创建和删除
目录具有r,w,x权限,能进入和查看和创建
文件属主无权限,不具有查看和修改和执行权限
文件属主具有r权限
文件属主具有w权限
文件属主具有x权限
如果需要删除文件,则需要看目录权限,需要目录权限的w权限
3.属主和属组和其他人权限问题
3.1属主(u)
步骤和2目录和文件权限问题一样,里面就是属主。
3.2属组(g)
属组yyk用户数字法权限为0
属主用户才能对自己文件进行修改权限
属组yyk用户数字法权限为1
属组yyk用户数字法权限为5
属组yyk用户数字法权限为7
属组yyk用户创建的目录的属主和属组为yyk用户
3.3其他人(O)
其他人权限为1
其他人权限为5
其他人权限为7
4.权限分配
5.FTP和Smb和NFS等一些服务权限问题
5.1配置FTP服务
5.1.1匿名用户(其他人)
服务由ftp用户运行,那么不是ftp用户,其他人需要访问文件,则需要目录其他人权限
查看家目录命令:cat /etc/passwd | grep ftp
目录其他人缺少x权限,其他人无法进入该目录
目录其他人只有x权限,其他人能进入该目录
数主权限可以查看目录,而其他人不行
其他人进入目录为空
其他人具有r权限
其他人具有数字法7权限
小问题:当匿名登录的时候,目录权限和FTP配置文件权限问题。
目录权限:上面内容有说过,一些权限问题,我FTP连接过去,主要看其他人权限。
匿名登录:匿名登录进去,则看配置文件权限。
解释:因为FTP连接过去,会触及原来用户目录权限,以及会和登录用户进行绑定,所以两者的权限都需要管理好,这里就有了,为什么需要修改目录权限以及FTP服务配置文件权限问题。(个人理解)
通俗的理解 -> 解释:windows server里面目录或文件都有安全的选项,安全里面有什么用户或组成员具有什么权限,假设用户在该组里面,当一个用户具有rwx的权限的时候,组权限不具有r的权限,那么该文件就不具备r的权限。
问题1:
更加目录权限的时候不能为自己根目录,比如chmod 777 /ftp 或 chown ftp:root /ftp,要不然匿名登录失败。(可能是/ftp是该用户家目录,加上你是匿名登录的,比如windows server里面,本来我最多可以访问磁盘里面的一个目录的,能让你访问该用户的桌面吗?)
5.1.2本地登录(属主)
目录属主权限为4
目录属主权限为5
目录属主权限为7
FTP服务和目录权限关联在一起,与匿名用户一样,FTP配置文件让本地用户具有创建目录的权限,目录也需要具有w的权限,原理和上面匿名用户一样。
5.1.3虚拟用户登录(属主兼其他人)
第一点是用虚拟用户登录到一个本地用户当中,然后通过给虚拟用户的权限和文件属主和其他人权限进行判定最终权限问题。
属主权限为5
不会报错,因为属主登录用户为本地用户,则可以进入本地用户目录,但是不能访问到其他文件和目录。
属主和其他人权限为5
属主权限为7,其他人权限为5
因为虚拟用户登录,主要看属主权限,其次就是虚拟登录进去的用户是否能查看目录或文件则看其他人权限。(属主会影响到查看和修改和进入,其他人和属主的查看权限是互相绑定的)
例如:
属主权限为1,其他人权限为4
属主权限为5,其他人权限为4
总结:
匿名用户:匿名用户权限与文件或目录的其他人权限绑定,也与匿名用户配置文件有关。
本地用户:与属主有关。
虚拟用户登录:第一,匿名用户配置文件有关,第二,本地用户权限有关,第三匿名用户其他人权限有关,有主和其次。
5.2配置smb服务
5.2.1匿名用户(其他人权限)
其他人权限为1
其他人权限为5
其他人权限为7
注意:匿名用户登录不仅和文件或目录权限有关,也和smb配置文件有关。
5.2.2用户登录(属主和其他人)
第一种情况:比如我登录进去的用户为smb,smb家目录为/home/smb,smb家目录是共享的目录,那么用smb用户登录则看属主权限,如果共享出去的与家目录不搭边,则看其他人权限。
5.3配置NFS服务
权限同步
主要看其他人权限。
6.文件具有4位数权限
文件4位数权限分别为SUID、SGID、SBIT。
SUID是一种对二进制程序进行设置的特殊权限,能够让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效)。例如,所有用户都可以执行passwd命令来修改自己的用户密码,而用户密码保存在/etc/shadow文件中。仔细查看这个文件就会发现它的默认权限是000,也就是说除了root管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到shadow文件中。这很像在古装剧中见到的手持尚方宝剑的钦差大臣,他手持的尚方宝剑代表的是皇上的权威,因此可以惩戒贪官,但这并不意味着他永久成为了皇上。因此这只是一种有条件的、临时的特殊权限授权方法。
内容引用>>>https://www.linuxprobe.com/basic-learning-05.html
功能:让执行该文件的用户临时具有所有人权限,当有suid权限的文件被执行时,该文件将以所有者的身份去运行,就相当于普通用户执行这个文件时,就会拥有该文件属主的权限了;若属主为root,那么执行者就会在执行文件时拥有root用户的权限!!
作用范围:文件
注意:当写完一个脚本的时候,可以将文件存放到/bin目录下,本来执行脚本需要引用到sh和bash等命令。
当将脚本存放到该目录后,可以直接引用该脚本,这就是命令的由来!!!!
查看该脚本文件权限ll /bin/文件名 或者 ls /bin/文件名 -l
用faker用户进行执行命令,发现权限不够。
但是passwd却可以,不懂。
SGID特殊权限有两种应用场景:当对二进制程序进行设置时,能够让执行者临时获取文件所属组的权限;当对目录进行设置时,则是让目录内新创建的文件自动继承该目录原有用户组的名称。
SGID的第一种功能是参考SUID而设计的,不同点在于执行程序的用户获取的不再是文件所有者的临时权限,而是获取到文件所属组的权限。举例来说,在早期的Linux系统中,/dev/kmem是一个字符设备文件,用于存储内核程序要访问的数据
内容引用>>>https://www.linuxprobe.com/basic-learning-05.html
作用范围:目录和文件
功能1:作用在文件上,执行文件的时候,临时具有属组权限。
功能2:作用在目录上,本地用户创建文件或目录的时候,属组会根据sgid权限目录属组同步,当设置了sgid权限的文件夹,会保证在该文件夹下创建的所有文件或文件夹都会保持同样的属组权限属性(就相当于创建的文件或目录都会保持与上一级目录相同的属组)。
Faker用户创建文件,属组与上一级目录一样。
创建adminuser组,使sgid目录属组为adminuser
Root用户umask为0022
Faker用户umask为0002
现在,大学里的很多老师都要求学生将作业上传到服务器的特定共享目录中,但总是有几个“破坏分子”喜欢删除其他同学的作业,这时就要设置SBIT(Sticky Bit)特殊权限位了(也可以称之为特殊权限位之粘滞位)。SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。
最初不知道是哪位非资深技术人员将Sticky Bit直译成了“粘滞位”,刘遄老师建议将其称为“保护位”,这既好记,又能立刻让人了解它的作用。RHEL 8系统中的/tmp作为一个共享文件的目录,默认已经设置了SBIT特殊权限位,因此除非是该目录的所有者,否则无法删除这里面的文件。
与前面所讲的SUID和SGID权限显示方法不同,当目录被设置SBIT特殊权限位后,文件的其他用户权限部分的x执行权限就会被替换成t或者T—原本有x执行权限则会写成t,原本没有x执行权限则会被写成T。
作用范围:目录
Sbit沾滞位目录下的文件或目录在有权限删除和修改等权限下,都不能对其他用户的文件或目录进行查看、删除、修改等操作,除非是root超级用户。
如果没有设置sbit沾滞位,如果其他人权限够的话,其他用户可以忽略掉该文件或目录由谁创建,只要文件或目录权限足够,那么就能对该文件或目录进行删除、修改、移动。
Sbit目录权限为1777,满足了属主和属组以及其他人权限。
即使文件和目录权限足够,其他用户对该文件和目录进行删除、修改、移动等,都不能删除、修改、移动等。
7.SUID、SGID、SBIT总结:
SUID图:
SGID图:
执行文件与SUID类似,SGID会将上一级的属组和SGID权限位与当前目录属组权限也与SGID有关系。
SBIT图:
SUID、SGID、SBIT表格