Linux 基本权限

目录

1 shell命令以及运行原理

1.1 理解

1.2 意义

2 Linux权限的概念

2.1 概念

2.2 用户分类

2.3 Linux文件属性

2.4 Linux文件权限

2.4.1 文件访问者的分类(人)

2.4.2 root&&普通用户 vs 拥有者&&所属组&&other

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

 2.4.4 图解

2.4.5 描述一个文件的权限

 3 文件访问权限的相关设置方法

 3.1 chmod指令

3.1.1 功能

3.1.2 格式

3.1.3 常用选项

3.1.4 命令权限的格式

3.2 有vs没有权限

3.3 sudo

3.4 chown

3.4.1 功能

3.4.2 格式

3.5 chgrp

3.5.1 功能

3.5.2 格式

3.5.3 常用选项

3.6 file指令:

3.6.1 功能说明

3.6.2 语法

3.6.3 常用选项:

4 目录的权限

5 默认权限

6 粘滞位


1 shell命令以及运行原理

1.1 理解

       

Linux 基本权限_第1张图片

         Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

        从技术角度,Shell的最简单定义: 命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。
        对比windows GUI,我们操作windows 不是直接操作windows内核 ,而是 通过图形接口 ,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
        shell 对于Linux,有相同的作用,主要是对我们的指令进行解析, 解析指令给Linux内核 。反馈结果在通过内核运行出结果, 通过shell解析给用户
        帮助理解:
        如果说你想找对象,那 shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的对象。你看上了别人,但是有不好意思直接表白,那就让你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给别人,而我们找到媒婆姓王,所以我们叫它 王婆,它对应我们常使用的bash
        shell是外壳程序的统称,bash是centos 7的外壳程序
        当心动的对象思考媒婆的话的时候,相当于执行用户所给的指令,并将结果反馈给王婆,王婆再反馈给你(用户),( 帮助进行命令行传递和返回结果); 如果心动对象心悦李四,而不是你,王婆一看缘分太浅,这红线不能牵,只能回绝你的非法请求,从而也保护了心动的对象,( 保护操作系统);王婆觉得说媒的老招牌不能倒,但是这种不能完成的煤约请求次数多了,会坏了她的招牌,所以王婆招聘了一批实习生帮她解决这种指令,这样不会坏了她自己的口碑,(执行命令的时候,创建子进程来进行执行

1.2 意义

1. 帮助进行命令行传递和返回结果

2. 保护操作系统

2 Linux权限的概念

2.1 概念

        限制人的,访问的对象天然可能没有这种“属性”权限:一件事情是否运行被谁“做”

        权限=人+事物属性

2.2 用户分类

Linux 下有两种用户:超级用户( root )、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root( root 可以省略),此时系统会提示输入 root 用户的口令。

Linux 基本权限_第2张图片

2.3 Linux文件属性

文件可以有的属性是:读、写、执行

Linux 基本权限_第3张图片

2.4 Linux文件权限

2.4.1 文件访问者的分类(人)

        

Linux 基本权限_第4张图片

        文件和文件目录的 所有者 :u---User(中国平民 法律问题)
        文件和文件目录的 所有者所在的组 的用户:g---group(不多说)
         其它用户 :o---Others (外国人)
帮助理解:
        某家公司允许多组做同样的事情,现有A组B组两组,组长分别为小A小B,张三通过校招进了A组,李四在B组,A组代码提交到A_code,B组代码提交到B_code,张三写了一份文件,提交到A_code,张三就是这份文件的所有者,(若此时没有所属组),那么组长小A对于张三写的文件来说就是other,如果开了other的权限,那么组长小A与李四都能看到,而李四于张三是竞争关系,所以引入所属组的概念,将想给看的人拉一个组,对这个组开权限(也可以类比朋友圈的权限仅部分人可见中选择了某个标签的好友,例如:同学,家人)

Linux 基本权限_第5张图片

2.4.2 root&&普通用户 vs 拥有者&&所属组&&other

Linux 基本权限_第6张图片

root&&普通用户 可能是某某文件的拥有者、other,所属某组

人可以是某某角色 

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

  •  文件类型
d :文件夹
- :普通文件
l :软链接(类似 Windows 的快捷方式)
b :块设备文件(例如硬盘、光驱等)
p :管道文件
c :字符设备文件(例如屏幕等串口设备)
s :套接口文件
  • 基本权限
i. 读( r/4 ): Read 对文件而言,具有读取文件内容的权限;
                             对目录来说,具有浏览该目录信息的权限
ii. 写( w/2 ): Write 对文件而言,具有修改文件内容的权限;
                               对目录来说具有删除移动目录内文件的权限
iii. 执行( x/1 ): execute 对文件而言,具有执行文件的权限;
                                       对目录来说,具有进入目录的权限
iv.“—” 表示不具有该项权限

  • 文件权限值的表示方法
a) 字符表示方法
Linux 基本权限_第7张图片
b)8 进制数值表示方法

Linux 基本权限_第8张图片

 2.4.4 图解

Linux 基本权限_第9张图片

Linux 基本权限_第10张图片

Linux 基本权限_第11张图片

Linux 基本权限_第12张图片

2.4.5 描述一个文件的权限

描述一个文件的权限:人+事物属性

拥有者是某某,所属组有某某,other包括某某某

拥有者有某某权限,所属组有某某权限,other有某某权限

 3 文件访问权限的相关设置方法

权限=人+事物属性

所以从人or事物属性下手

 3.1 chmod指令

3.1.1 功能

设置文件的访问权限

3.1.2 格式

chmod [参数] 权限 文件名

3.1.3 常用选项

R -> 递归修改目录文件的权限
说明: 只有文件的拥有者和root才可以改变文件的权限
可以先whoami看看用户是否是拥有者或者root
[root@VM-12-17-centos lesson3]# whoami
root

3.1.4 命令权限的格式

① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:  
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
②三位8进制数字
例如:
  • chmod u-r test.txt   关闭拥有者的写权限
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
-rw-r--r-- 1 root root   93 Jan  6 10:18 test.c
[root@VM-12-17-centos lesson3]# chmod u-r test.c
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
--w-r--r-- 1 root root   93 Jan  6 10:18 test.c
  • chmod g+w test.c 所属组增加可写权限
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
-rw-r--r-- 1 root root   93 Jan  6 10:18 test.c
[root@VM-12-17-centos lesson3]# chmod g+w test.c
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
-rw-rw-r-- 1 root root   93 Jan  6 10:18 test.c
  • chomd g+wx test.txt给所属组增加可写可执行的权限
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
-rw-rw-r-- 1 root root   93 Jan  6 10:18 test.c
[root@VM-12-17-centos lesson3]# chmod g+rx test.c
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
-rw-rwxr-- 1 root root   93 Jan  6 10:18 test.c
  • chmod u+x,g+r,o+x test.c
[root@VM-12-17-centos lesson3]# chmod u+x,g+r,o+x test.c
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
-rwxrwxr-x 1 root root   93 Jan  6 10:18 test.c
  • chmod u-rwx,g-rwx,o-rwx test.c
[root@VM-12-17-centos lesson3]# chmod u-rwx,g-rwx,o-rwx test.c
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
---------- 1 root root   93 Jan  6 10:18 test.c
  • chmod a+x test.c给所有的用户都增加可执行的权限
[root@VM-12-17-centos lesson3]# chmod a+x test.c
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
---x--x--x 1 root root   93 Jan  6 10:18 test.c
  • chmod 777 test.c (777----111 111 111)
[root@VM-12-17-centos lesson3]# chmod 777 test.c
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
-rwxrwxrwx 1 root root   93 Jan  6 10:18 test.c
  • chmod 000 test.c (000----000 000 000)
[root@VM-12-17-centos lesson3]# chmod 000 test.c
[root@VM-12-17-centos lesson3]# ll
total 36
-rwxr-xr-x 1 root root 8408 Jan  6 10:18 a.out
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root   51 Jan  6 15:19 my.txt
---------- 1 root root   93 Jan  6 10:18 test.c

Linux 基本权限_第13张图片

3.2 有vs没有权限

 

[xy@VM-12-17-centos ~]$ ll
total 0
---------- 1 xy xy 0 Jan  8 12:13 test.txt
[xy@VM-12-17-centos ~]$ cat test.txt
cat: test.txt: Permission denied
[xy@VM-12-17-centos ~]$ whoami
xy
[xy@VM-12-17-centos ~]$ echo "hello world" >> test.txt
bash: test.txt: Permission denied
[xy@VM-12-17-centos ~]$ su
Password: 
[root@VM-12-17-centos xy]# ll
total 0
---------- 1 xy xy 0 Jan  8 12:13 test.txt
[root@VM-12-17-centos xy]# whoami
root
[root@VM-12-17-centos xy]# cat test.txt
#include
int main()
{
	printf("hello world\n");
	return 0;
}

Linux 基本权限_第14张图片

3.3 sudo

        sudo touch test.txt

        以root的身份创建test.txt
Linux 基本权限_第15张图片

3.4 chown

3.4.1 功能

修改文件的拥有者

3.4.2 格式

chown [参数] 用户名 文件名

3.5 chgrp

3.5.1 功能

修改文件或目录的所属组

3.5.2 格式

chgrp [ 参数 ] 用户组名 文件名

3.5.3 常用选项

-R 递归修改文件或目录的所属组

3.6 file指令:

3.6.1 功能说明

辨识文件类型。

3.6.2 语法

file [选项] 文件或目录... 

3.6.3 常用选项:

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容

4 目录的权限

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容(文件名+文件属性).
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
于是, 问题来了~~
换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.
这好像不太科学啊 , 我张三创建的一个文件 , 凭什么被你李四可以删掉 ?

5 默认权限

        我使用的系统,创建普通文件(不包括可执行文件)默认权限是644 目录默认权限是755,不同操作系统,默认权限可能不同
[root@VM-12-17-centos lesson3]# touch new_dir
[root@VM-12-17-centos lesson3]# ll
total 32
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root  115 Jan  6 21:38 my.txt
-rw-r--r-- 1 root root    0 Jan  9 00:31 new_dir
-rw-r--r-- 1 root root    6 Jan  8 21:27 normal.txt
-rw-r--r-- 1 root root   59 Jan  8 21:28 test.c
-rw-r--r-- 1 root root   72 Jan  8 02:32 test.txt
[root@VM-12-17-centos lesson3]# rm new_dir
rm: remove regular empty file ‘new_dir’? y
[root@VM-12-17-centos lesson3]# mkdir new_dir
[root@VM-12-17-centos lesson3]# ll
total 36
drwxr-xr-x 3 root root 4096 Jan  6 15:57 dir
-rw-r--r-- 1 root root 9901 Jan  6 10:33 mylog.txt
-rw-r--r-- 1 root root  115 Jan  6 21:38 my.txt
drwxr-xr-x 2 root root 4096 Jan  9 00:31 new_dir
-rw-r--r-- 1 root root    6 Jan  8 21:27 normal.txt
-rw-r--r-- 1 root root   59 Jan  8 21:28 test.c
-rw-r--r-- 1 root root   72 Jan  8 02:32 test.txt

Linux 基本权限_第16张图片

6 粘滞位

Linux 基本权限_第17张图片

 

你可能感兴趣的:(Linux,bash,linux,开发语言)