由于Linux是个多用户多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生,为了考虑每个人的隐私权以及每个人喜好的工作环境。
默认的情况下,所有的系统上的帐号与一般身份使用者,以及root的相关信息,记录在/etc/passwd文件内。个人的密码记录在/etc/shadow这个文件下。Linux所有的群组名称都纪录在/etc/group内。

文件拥有者(User)

假设我正在做一个minigame项目,可以对我的项目文件进行权限修改,让文件拥有隐私。
文件拥有者将文件放到自个儿主文件夹,通过修改User的读写运行权限,让其它用户或者自己限制访问和操作。

群组(Group)

假设有两组minigame项目组生在一台主机里面,第一个专题组别为project A,里面的成员有A,B,C三个;第二个专题组别为project B,里面的成员有D,E,F三个。这两个项目之间是有竞争性质的,但却要向同一位导师上交报告。每组的组员之间必须要能够互相修改对方的数据,但是其他组的组员则不能看到本组自己的文件内容。
通过修改Group的读写运行权限,让其他群组用户限制访问和操作。

其他人(Others)

相对于群组,群外的人就是其它人了。其它人,就是Others。
文件拥有者将文件放到自个儿主文件夹,通过修改Others的读写运行权限,让其它用户限制访问和操作。

Root用户

拥有一切权限修改

Linux文件属性

通过ls -al或者ll -a查看当前目录下文件的具体属性
image.png
image.png
r、w、x分也可以用数字代表,分别对应2、3、4

  • 第二栏表示有多少文件名链接到此节点(i-node):

每个文件都会将他的权限与属性记录到文件系统的i-node中,因为使用的目录树是使用文件名来记录,因此每个文件名就会链接到一个i-node。这个属性记录的,就是有多少不同的文件名链接到相同的一个i-node号码。

  • 第三栏表示这个文件(或目录)的“拥有者账号”
  • 第四栏表示这个文件的所属群组
  • 第五栏为这个文件的容量大小,默认为Byte
  • 第六栏表示这个文件的创建日期或者是最近的修改日期(时间距离现在过于遥远,则仅显示年份)

除非使用ls -l —full-time显示完整时间

  • 第七栏位这个文件的文件名:

如果文件名前多一个“.”,则代表这个文件是个隐藏文件,需要使用ls -a来查看

改变文件属性与权限(-R:递归变更)

  • chagrp:改变文件所属群组 —-> chgrp [-R] dirname/filename …
  • chown:改变文件拥有者 —-> chown [-R] 帐号名称 文件或目录

    —-> chown [-R] 帐号名称:群组名称 文件或目录

  • chmod:改变文件的权限:

可以通过数字修改,如:chmod 777 文件或目录,数字即为2、3、5相加的组合
也可以通过| chmod | u g o a | + (加入)-(除去)=(设置)| r w x | 文件或目录 |

目录与文件权限

image.png
对于文件而言,即使有w权限也不能删除,必须要目录也有w权限,目录有w权限可以删除已经存在的文件与目录

特殊权限:SUID,SGID,SBIT

image.png
image.png
Linux系统中,所有帐号的密码都记录在/etc/shadow这个文件里面,这个文件的权限为:“———-1 root root”,意思是这个文件仅有root可读且仅有root可以强制写入而已。 既然这个文件仅有root可以修改,那么一般帐号使用者能否自行修改自己的密码呢?你可以使用你自己的帐号输入“passwd”这个指令来看看,当然,一般使用者可以修改自己的密码。为什么dmtsai还能够修改这个文件内的密码?这就是SUID的功能:

1.一般用户对于/usr/bin/passwd这个程序来说是具有x权限的,表示能执行passwd;

2.passwd的拥有者是root这个帐号;

3.一般用户执行passwd的过程中,会“暂时”获得root的权限;

4. /etc/shadow就可以被一般用户所执行的passwd所修改。

image.png
image.png
image.png
image.png
image.png

  • SUID/SGID/SBIT权限设置
  • 4为SUID
  • 2为SGID
  • 1为SBIT

假设要将一个文件权限改为“-rwsr-xr-x”时,由于s在使用者权限中,所以是SUID,因此,在原先的755之前还要加上4,也就是:“chmod 4755 filename”来设置。或者u+s,g+s,o+t这样

如果没有x这个可执行的标志,则S,T代表的就 是“空的”。SUID是表示“该文件在执行的时候,具有文件拥有者的权限”,但是文件拥有者都无法执行了,哪里来的权限给其他人使用?当然就是空的。