1. Linux权限的概念
什么是权限?就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
命令:su [用户名]
功能:切换用户
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。
例一:
例二:
直接切换:exit或者ctrl+d
su -会改变家目录
不切身份的情况下,执行更高权限的命令呢?
2 文件访问者的分类。
文件和文件目录的所有者:u---User
文件和文件目录的所有者所在的组的用户:g---Group
其它用户:o---Others
所有者 (User/Owner)
定义:文件的所有者通常是创建文件的用户,或者是通过某些命令(如 chown)被指定为文件所有者的用户。
目的:所有者对文件有最大的控制权,通常能够设置文件的权限和修改文件的内容。这样设计是为了确保文件的创建者或者指定的用户能够完全控制自己的文件资源。
所属用户组 (Group)
定义:每个文件还关联有一个用户组,这通常是由创建文件时用户的默认组决定的,但也可能通过 chgrp 或 chown :groupname 命令被更改。
目的:所属用户组的权限允许一组用户共享对文件的访问控制,而无需将所有用户都设置为文件的所有者。这在团队协作中尤其有用,因为团队成员可以被添加到同一个组中,从而共享对某些文件的访问权限。
其他用户 (Others)
定义:除了文件所有者和所属用户组的成员之外的任何用户。
目的:其他用户权限的存在确保了系统中非直接相关用户对文件的访问控制,防止未经授权的访问。这有助于保护数据的安全性和完整性,防止未授权用户读取、修改或执行敏感文件。
为什么需要这样的设计?
安全性:通过限制对文件的访问,可以防止未经授权的用户访问敏感数据或进行潜在破坏性的操作。
协作性:用户组的概念使得团队成员可以方便地共享文件,而不需要将文件的所有权转移给每一个需要访问文件的用户。
灵活性:不同的用户和用户组可以有不同的权限,这使得管理员可以根据具体需求灵活地调整访问控制策略。
3. 修改权限:
chmod 八进制 filename chomd u/g/o +- r /w/x filename
4.修改角色:
chown chgrp
更改文件拥有者,需要root或者提权(sudo)
5.面试会考:关于权限的三个问题
控制变量验证
前提是:
(1):如果想要进入一个目录我应该有什么权限
答:x权限决定了能否进入一个目录
(2)r对于目录有什么意思?
验证知道:无权查看指定目录下的文件信息
(3)w对于目录有什么意思?
无权在指定目录内部新建文件,删除,修改文件名等会进行修改文件的操作,都不支持。
六:缺省权限(权限掩码)
系统默认的权限掩码和权限掩码的作用原理
系统默认的权限掩码是:
这里需要注意的一个点是:
系统默认给普通文件的起始权限其实是666。
系统默认给普通文件的起始权限其实是777。
文件或目录的最终权限属性=文件或目录的起始权限属性&(~umask)
缺省文件权限
664 rw- rw- r--
缺省目录权限:
775 rwx rwx r-x
七:粘滞位
1.Linux多用户下,对于文件的访问,是隔离的。
2.需求:我们想让Linux下不同的账户用户,共享文件呢?
-----/共享文件只能在其他目录下,例如根目录下,即是超级用户root,绝对不能在任何一个普通账号的家目录里面
3.什么是粘滞位?
如果用户对目录有写权限,即使该用户不是这些文件的所有者,而且也没有读或写许可,仍然可以删除其中的文件和子目录。但是如果设置了粘滞位出现在执行许可的位置上,用t表示,其它用户就不可以删除不属于他的文件和目录。但是该目录下的目录不继承该权限,要再设置才可使