1.Linux中的用户分为超级用户和普通用户,可以在两种身份间进行切换
普通->超级:su/su -
超级->普通:su 用户名
2.sudo:对用户进行指令的短暂提高权限
例如:安装软件到系统中时,需要管理员的权限,此时普通用户需要切换到超级用户,或者使用sudo进行提权
补充:ls /etc/sudoers:将普通用户加入白名单,使得普通用户拥有root权限
3.权限是什么?权限的本质是能或者不能做某事
为什么要设置权限?
1.控制用户行为,防止发生错误
2.权限首先限制的是角色(拥有者,所属组,other),权限要求目标必须具备对应的属性
权限=角色+目标权限属性(r,w,x)
补充:r: 读权限 w:写权限 x:可执行权限
怎么修改权限?chmod u-r 文件:删除拥有者的读权限
注:1.用户只能更改自己的文件权限
2.如果没有权限的话系统会拒绝我们访问
3.确定权限信息时,系统会先确定用户是谁
在Centos下,系统只进行一次用户确定,顺序为:拥有者(u),所属组(g),other(o)
4.root不受权限限制
5.可执行权限!=文件可执行,文件需要有可执行的能力加上被允许执行的权限才可以执行
6.chmod 666 文件名:让拥有者,所属组,other都用拥有r,w权限
补充:rw-r--rwx可以视为110 100 111,由于三位二进制可以视作一个八进制数,即647,所以可以用八进制数来快速修改权限
怎么修改角色?chown 拥有者:修改拥有者;chgrp 所属组:修改所属组;不需要修改other
注:1.系统默认不允许我们将文件给别人,要想给别人必须高权限,可以用sudo
2.chown 拥有者:所属组 文件:可以同时修改拥有者和所属组
4.三个问题
(1)目录权限:进入一个目录需要x权限
rwx分别对目录意味着什么?
r:允许查看目录中的文件;w:允许在指定目录下新建文件;x:允许进入目录
默认情况下,新建一个目录rwx权限均要有
(2)缺省权限:
对于普通文件来讲,初始权限为666,默认不带可执行权限(默认权限有OS自主决定,无法在创建前修改)
对于目录文件来讲,初始权限为777,默认携带可执行权限
注:系统默认存在一个叫做权限掩码的概念,导致最终权限=初始权限&(~umask)
umask存在的目的:希望凡是在umask中出现的权限都不在最终权限中出现
为什么要有umask?
1.让系统可配置,可以灵活满足需求
2.在特殊情况下,配置umask可以控制文件的默认权限,让我们的代码可控
(3)一个文件能否被删除与文件本身无关,与文件所处的目录是否存在w权限有关
若多个用户需要协作完成某个文件操作,那么该文件不能在任何人的私人目录下,此时应该放在共享目录下,在Linux系统中,存在一个tmp目录,可以用来临时存放数据文件,可当作共享目录使用
任何一个人都可以在共享目录下新建文件,但是我们不想让非拥有者删除文件,此时的解决方案为
给other的权限设置粘滞位(t),注意,只能给共享目录添加粘滞位