一、对shell的浅显认识
shell是操作系统下的一个外壳程序,无论是Linux操作系统,还是Windows操作系统,用户都不会直接对操作系统本身直接进行操作,需要通过一个外壳程序去间接的进行各种操作
在Linux的shell外壳就是命令行,而Windows的shell外壳就是可视化界面
用户通过shell间接对操作系统操作的意义在于:
1.相对于直接操作,通过命令行或者可视化界面对系统进行操作的上手成本低很多,更加简单操作
2.用户部分不合理或者非法的操作,会被拒绝,相当于加了一层保护
3.在执行命令时,能够创造子进程执行
二、Linux的基本权限
1.对权限的基本认识
对权限的认识,先统一下概念: 权限 = 人 + 事物属性
对个行为的权限,首先得看这个东西它本身是否具备实现这个行为的事物属性,例如:对于一个普通的文本文件而言,它本身是不具备编译代码的功能,这是根据事物属性决定的
此外,还有对人的限制,例如,爱奇艺部分需要付费的影视剧,vip用户有权限观看,而非vip用户则没有权限
因此,谈论权限需要结合人和事物属性一起讨论
2.Linux下关于ls -l 展示的信息
(1)文件中对于用户的划分
ps:首先关于权限中提到的人,之后都是指普通用户,对于管理员root,几乎是具备所有权限的,不参与权限的讨论,所以权限是针对普通用户去设立的
文件对于用户的划分有:
**拥有者:**顾名思义,就是拥有这个文件的用户
**所属组:**所属组的概念是为了部分情况下,某些文件需要对一部分人开放权限,而对另一部分人设置权限的情况而设计的
**other:**除了拥有者和所属组,其他任何用户都属于other
结合ll指令就可看到一个文件的拥有者和所属组,上面的例子由于我是用root账户去执行操作的,所以拥有者和所属组都是root
(2)文件类型和文件属性
文件类型:文本文件、可执行文件、目录等等(刚开始学接触不多,具体可以查一下)
文件属性:可读、可写、可执行
重点是如何读懂上图第一个框的十个字母分别对应代表什么
首先第一个字母代表的是文件类型:
- :普通文件,文本文件,可执行文件,归档文件等等
d:目录
b:块设备、block、磁盘
c:字符设备、键盘、显示器
p:管道文件
s:网络socket文件
l:链接文件 link
剩下九个字母三个一组,对应着不同用户的权限,其中
r:可读
w:可写
x:可执行
-:无该权限
前三个是拥有者的权限,对应读(r)、写(w)、执行(x)
中间三个是所属组的权限
后面三个是other的权限
ps:每个权限的位置严格对应,若没有该权限则为-
例如:
(3)文件名字
关于文件名字,在Linux系统下对于文件类型的识别,不根据后缀去识别,因此对于Linux操作系统而言,文件的名字以及后缀都不影响操作系统识别文件类型,但是不代表我们不需要去使用后缀命名,因为在使用或者执行文件时,通常我们会使用到很多工具(例如gcc等等),这些根据是需要通过文件后缀去识别一个文件类型的,因此在命名的时候,仍然需要注意的文件后缀命名
3.对文件的读写基本指令
ps:这部分主要是我容易忘,所以简单整理一下到这里
(1)读
cat:打印输出
-n 打印时带行号
(2)写
echo:输出字符串
例:echo "666" >> text.txt
4.对权限的操作
对文件权限的操作就是对文件属性(rwx)和文件拥有者以及文件所属组的修改操作
(1)文件属性操作
格式:
第一种:chmod u/g/o/a (此处没有空格)+/-(此处没有空格)rwx file_name
u/g/o/a: u代表拥有者 g代表所属组 o代表other a代表所有,即包括ugo三个
+/-:+代表加权限 -代表取消权限
rwx:分别代表可读、可写、可执行
例:chmod a-rx text.txt (修改text.txt的文件属性,将拥有者、所属组和other的读和执行权限取消)
第二种:也可以用八进制数去修改对应的权限位置
例如:chmod 777 text.txt
其中的777可以看做为111 111 111,也就是将后面九位改成 rwxrwxrwx
一般只有文件的拥有者和root允许对该文件的属性进行操作
(2)更改文件拥有者
格式:chown 拥有者 文件名
例:chown chk test.txt(将test.txt文件的拥有者改为chk)
ps:一般只有root能够更改文件拥有者
(3)更改文件所属组
格式:chgrp 所属组 文件名
例:chgrp chk test.txt(将test.txt文件的所属组改为chk)
ps:root和文件拥有者都可以更改文件所属组
5.默认权限、起始权限和最终权限
例如:普通文件的起始权限是 666(110 110 110),掩码是2(000000010)
则最终权限(默认权限)就是 (110 110 110) & (~000000010) = 110 110 100(rw- rw- r--)
三、目录的权限
1.对目录读、写、执行的认识
目录的r:查看当前目录下文件的文件名字和文件属性的权限
目录的w:创建和删除当前目录下文件的权限
目录的x:进入当前目录的权限
2.粘滞位
粘滞位的作用是,在某些特定情况下,会需要root开启一个共享目录,在这个共享目录中,可以有多个用户同时向其中存放临时数据,其中为了保护不同用户的数据不被其他用户误删或者恶意删除,所以存在粘滞位去制约不同用户之间不允许删除对方的文件
用法:chmod +t 共享目录名称
总结
本篇文章是对Linux下的基本权限学习后的整理和理解