Linux 【权限,粘滞位】

目录

1.Linux两种用户:超级用户(root)、普通用户

Linux下不以文件后缀来区分文件类型

Linux三种用户身份

事务属性的基本权限

第二种修改权限方式

2. 常见权限问题

 umask

3.粘滞位



1.Linux两种用户:超级用户(root)、普通用户

root用户具有Linux下最高权限(权限针对人,同时事物的基本属性决定权限的相关概念),不受权限约束

普通用户可以存在多个,受到权限约束

普通用户创建方式:useradd 

cd /home 再ll 查看有多少用户

普通用户切换回超级用户:su - (root密码) 

普通用户之间切换:su 用户名

ctrl+d  / logout  退出超级用户


1.2 文件类型和访问权限(事物属性)

Linux下不以文件后缀来区分文件类型

Linux 【权限,粘滞位】_第1张图片 文件类型

但是像gcc是Linux上的软件(不等于系统层面),需要文件后缀来区分类型(Linux系统不以所谓的文件后缀区分,具体用的软件决定)

Linux 【权限,粘滞位】_第2张图片

可执行程序也被当成普通文件

 


Linux三种用户身份

拥有者:文件属于谁

所属组:文件属于哪一个组

other(其他):不属于上面两种的,就是other

Linux 【权限,粘滞位】_第3张图片

事务属性的基本权限

Linux 【权限,粘滞位】_第4张图片

如果给文件强制加上可执行权限,不代表他能执行,有可执行权限和能执行是两码事

如何修改权限

 chmod(设置文件的访问权限)  

格式:chmod [参数] 权限 文件名

u代表拥有者    g代表所属组 o代表other组   a代表所有人   +-代表赋/取消权限  =向权限范围赋予权限代号所表示的权限

只有文件的拥有者和root才可以改变文件的权限

可以使用,

虽然是拥有者,但是不具备任何权限

Linux 【权限,粘滞位】_第5张图片 a取消所有权限


root的权限不受约束,哪怕你取消了所有权限也没用

修改root密码:passwd


第二种修改权限方式

三个数字在二进制中可以看作 无:000 有:111,转换成8进制数值表示方法:0~7

7转换成二进制111,代表三个权限都具备;6代表110,具有读写权限

Linux 【权限,粘滞位】_第6张图片


更改文件的拥有者或者所属组:需要更高权限

chown:更改文件的拥有者

R -> 递归修改目录文件的权限

但是直接更改是不被允许的(给别人东西要别人同意,可以用root强制给)

Linux 【权限,粘滞位】_第7张图片 chown一次性改拥有者和所属组

chgrp:更改文件的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组


sudo:给命令前带sodo意思是:执行的后续命令,要以root权限级别来执行(一次)

sudo需要账户白名单


2. 常见权限问题

如果我既是该文件拥有者又是所属组,当拥有者权限不存在,但所属组权限存在时,我还具备访问该文件权限吗

 答案:不具备

Linux 【权限,粘滞位】_第8张图片

我们如果既是拥有者又是所属组,只看拥有者权限(权限只会被认证一次,首先判定你是谁,判定后以该身份去验证权限)


进入一个目录,需要什么权限?

答案:x

Linux 【权限,粘滞位】_第9张图片 带rw权限也进不去目录

Linux 【权限,粘滞位】_第10张图片 带x权限进去目录

总结:

1.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

2.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有创建文件/目录,删除移动目录内文件的权限

3.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限


为什么创建的默认权限不是从777 / 000 开始

Linux默认:

一个目录被创建,起始权限是从777开始,实际权限是775

一个普通文件被创建,起始权限是从666开始,实际权限是664

实际是umask干的(权限掩码)

 umask

umask意思:凡是在umask中出现的权限,都不应该在最终权限中出现

为什么umask是4位:0002,第一位多的可以不用管他,只需要关心后三位八进制数 002即可

所以八进制相减便是775和664 (777-002,最后一位7换成111,2换成010,相减便是5)

umask并不是减法减去对应值

最终权限 = 起始权限  &( ~ umask)

比如777 换成111 111 111        umask掩码000 000 010  umask~后变成111 111 101

按位与&后:111 111 101  (775)

我们也可以修改umask,例如0777,这样新创建文件就什么权限都没有

Linux 【权限,粘滞位】_第11张图片


3.粘滞位

 用户除了自己有权限,其他人都没权限

如果一个目录是我创建的,这个目录别人没法删除(权限设置好-w),别人也不能以他的账号进到我的目录中,把我的东西删除

但是当别人把文件创建在了我的目录中时,我们没有读写执行权限,却可以删除别人的文件

Linux 【权限,粘滞位】_第12张图片

如果众多用户必须放在一个目录下,却阻挡不了对方删除文件(文件被删除不是本身属性,而是文件所在目录,用户是否具有w:写权限)

结论:在目录中新建或者删除文件,跟文件本身没关系,跟你所在目录中是否具有写权限有关

这时候,就可以使用粘滞位解决(只能自己删自己的,而且正常使用)

chmod +t 文件名(other变成rwt) t是x的特殊情况(粘滞位只能给目录设置)

注意:粘滞位谁加的谁才能取消

你可能感兴趣的:(Linux,linux)