Linux严格意义上来说是一个操作系统,,我们称之位核心"Kernel",但是我们一般人并不能使用它,而是使用外壳程序shell来调用操作系统,与操作系统沟通。
技术角度看shell的话他就是一个翻译器,将用户的命令翻译给操作系统,将操作系统的结果处理结果反馈给用户。
那么为什么要shell存在呢?因为有时候我们不方便操作系统,对于系统的操作很容易出问题,所以我们找一个中介来帮我们处理。这个中介就是外壳程序?而外壳程序统称为shell,bash是shell外壳程序的一种。
权限
Linux下有2种用户——普通用户和超级用户【root】
超级用户root可以在Linux系统下做任何事,不受限制。
普通用户:在Linux下做有限的事情
普通用户是$ root用户是#
切换用户 su [用户名]
Linux权限管理
1.文件访问者的分类
文件和文件目录的所有者——user
文件和文件目录的所有者所在的用户组——group
其他用户others
切换用户组
su 用户名
2.文件类型和访问
权限
我们可以看到文件的第一位是-文件类型。图上这表示的是文件的类型是一个普通文件。
- 普通目录文件
d 目录
p管道文件
d 块设备
c 字符设备
后面紧跟的是rw-
这三位表示的是用户权限,如果全有是rwx没有的话是---。其中r代表可读,w代表可写,x代表是一个可执行程序。
这三位之后紧紧更的是rw-代表的是组权限。如果全有的话是rwx,没有的话是---。w代表可写,x代表是一个可执行程序。
最后的是三位是other用户组的权限。如果全有的话是rwx,没有的话是---。w代表可写,x代表是一个可执行程序。
8进制表示方法
权限除了平常的表示方法外还有8进制表示方法。假设每一位都是二进制
rwx rwx rwx
111 111 111
8 8 8
每一组用户都可以用一个8进制的数来表示。
文件访问权限的相关设置方法 chmod
chmod [参数] 权限 【文件名】
-p 递归改变文件夹内文件的权限
u 用户
g 组
o 其他组
+/-/= 增加/取消/赋予对应权限
a 所有用户
例子 :赋予user x权限
修改用户所有组chgrp
使用方法同chmod
修改用户名chown
使用方法同chmod
进入一个文件夹需要什么权限——X
权限掩码——umask
反思出现在umask中出现的都不因该在最终权限中出现,这个决定的是默认初始文件的权限值。
新建文件夹默认权限0666
新建文件权限默认 0777
但是实际上新建的文件或者文件夹的权限不是这个值原因是会受到umask的影响,假设默认权限是mask但是实际上的权限是mask&~umask
# umask 755
# umask //查看
# umask 044//设置
file文件指令
用于辨认文件类型。
常用选项
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。
使用sudo分配权限
修改配置文件
需要先以root权限进入/etc/文件夹修改sudoers的配置文件
这这个位置将%wheel ALL=(ALL) ALL 复制将%wheel修改成自己的用户名就可以了,我的用户名是幻千寒所以我就在第二行加上了我的用户名sudo权限。
为什么要sudo分配权限呢?
root用户权力太高了,一部小心就可能会照成打错,所以我们平时都不使用root权限,都使用一般用户组权限。但是有些命令我们是需要root用户执行的。所以就为一些用户组分配root权限。保证必要的时候可以以root权限来运行。
思考:进入目录需要什么权限
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
于是就出现了问题用户只要有目录的写权限就可以删除文件,那么假设所有人都公用一个文件夹,那么此刻,A创建了文件,B确可以删除,这是不是就不合理了呢?所以就有了粘滞位的概念
粘滞位
当一个目录被设置为粘滞位的时候(chmod +t),该目录下的文件只能由
一:超级管理员删除
二:目录的所有者删除
三:文件的所有者删除