本文主要对linux的一些基本权限进行讲解
文章目录
- 前言
- Linux权限
- (1)权限的概念
- (2)linux下用户分类(root,普通)
- (3)linux的文件属性
- 文件属性的分类
- 文件权限
- 修改文件权限
- 1、`chmod`
- 2、`chown和chgrp`
- 3、`fiile`
- 权限的三个重要的问题
- 第一个问题(目录的权限)
- 第二个问题(默认权限)
- 粘滞位
前言
首先我们先理解一下什么是xshell
我们使用xshell
的存在的意义
1、帮助进行命令行传递和返回结构(人和内核之间进行信息交互)
2、保护操作系统
注:bash是centos下的命令行解释器
Linux权限
(1)权限的概念
限制人的,访问的对象可能没有这种“属性”
权限:一件事情是否运行被谁“做”
权限 = 人 + 事物属性
(2)linux下用户分类(root,普通)
超级用户-root-超级管理员:可以再linux系统下做任何事情,不受限制(只有一个)
普通用户:在linux下做有限的事情。(可以有n个)
那么用户之间怎么相互切换了
1:su 用户名
,然后再输入密码即可
2:su
,只有一个su
默认是切换到root
,输入root
的密码即可
3:ctrl d
,这个是退回到上一个目录下。
怎么对单条指令进行提权
使用sudo command
文件的角色划分
- 文件拥有者
- 文件所属组
(3)linux的文件属性
文件属性包括:文件类型和文件权限
文件属性的分类
下面介绍一下一个文件所包含的文件属性
文件权限
上面图中我们将文件的后三列和第一列的第一个字母感觉解释清楚了,但是其他的东西才是最关键的,才是我们权限最重要的东西,希望大家仔细观看。
权限 = 人 + 文件属性
修改文件权限
1、chmod
使用
chmod+u/g/o/a +- r/w/x
我们就可以修改权限。非常简单。可以批量化使用。
u
表示拥有者,g
表示所属组,o
表示other
,a
表示所有人
例如:
chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
我们改权限可以使用八进制
如果有权限可以写成1,没有权限可以写成0.所以我们可以将权限写成9位二进制数,转换为八进制我们就可以用chmod+八进制数就可以修改权限了
例如
chmod 664 test.c
664=110 110 100
2、chown和chgrp
更改文件的拥有者,所属组:chown+ 改的用户
,使用 chgrp+改的用户
将文件的拥有者改掉的时候,我们要争得对方的允许。不能直接给
所以我们需要强制给你,使用超级用户,
我们就使用 sudo chown
例如:强行将文件的拥有者改为yaya
sudo chown yaya test.c
3、fiile
我们在介绍一个命令 file
file
功能说明:帮助普通人辨识文件类型。
语法: file+ [选项]+ 文件或目录…
常用选项:
-c
详细显示指令执行过程,便于排错或分析程序执行的情形。
-z
尝试去解读压缩文件的内容。
权限的三个重要的问题
第一个问题(目录的权限)
如果进入一个目录,需要什么权限(一种)
我们需要的是 X
权限,我们进入目录,就是像当于执行, r和w
权限可有可无。
对于目录来讲, r
代表什们意思呢?
代表没有 r
权限的目录下,我们无法查看当前目录下的文件名和文件属性
对于目录来讲, w
代表什们意思呢?
在没有 w
权限的目录下,我们无法直接在该目录下创建新文件以及删除文件。
第二个问题(默认权限)
为什们我们创建的普通文件(不包括可执行)?为什们默认权限是从664开始的?为什们目录的默认权限是从775开始的?
不同的操作系统,默认的权限是不一样的。
默认权限 ----- 你看到的(不重要的)
起始权限 ----- 系统设定的
最终权限 -----
普通文件起始权限:是从666开始的(没有x的),
目录文件的起始权限是:777(rwx都有)。
那么系统是怎么将文件的起始权限转换为最终权限?
系统为了更好的控制文件权限,系统会有默认的权限掩码的概念!
我们就需要知道文件的权限掩码,我们就需要用到 umask
,在linux
机器上输入umask
我们就知道了。
权限掩码:在起始权限中,去掉在umask
中出现的权限,不能影响其他任何权限!
最终权限 == 起始权限 & ( ~ umask )
将 umask
按位取反然后于起始权限求于
umask
可以改变,如果 umask
改变了,最终权限就变了
粘滞位
背景:在使用
linux
的时候,未来可能会有一些共享目录,被所有的用户共享,用来保存普通用户产生的临时数据
准备:共享目录一般都是root提供的,他的权限跟root的umask有关。
文件被所有人共享的时候,受权限的约束,但是拦不住别人删我的文件!!
所以为了让大家共享文件,且不让其他人随便的删除别人的文件,所以这时候就出来了粘滞位的概念。
为什们我们拦不住?
在特定的目录下,创建或者删除文件都是由目录的w权限决定的,所以我们不能将目录的w权限关闭,因为我们需要创建文件。
我们的粘滞位只能给目录添加,并且是给共享目录添加。
使用chmod+t+目录名
,我们就可以给他加粘滞位了
谁可以删除我们的共享目录?
- 超级管理员删除。
- 该目录的所有者删除。
- 该文件的所有者删除。