shell命令以及运行原理
Linux是一个操作系统,我们称为**“核心”,但是用户,不能直接使用核心**,而是通过核心的外壳程序(shell),来与内核沟通。
shell:命令行解释器
- 将使用者的命令翻译给核心处理
- 将核心的处理结果给使用者
过程:
用户的指令给shell,shell对用户的指令进行解析,解析指令给到内核
内核对解析指令进行处理,处理后的结果给shell,shell对结果解析给到用户
优点:防止用户对内核的破坏
Linux权限的概念
Linux用户:root、普通用户
- 超级用户(#):root用户不受限制
- 普通用户($):普通用户受限制
su
su - //切换到root用户
su 用户名 //切换普通用户
whoami
查看当前用户
Linux权限管理
文件访问者的分类(人)
- 文件的所有者:u
- 文件的所有者所在的组的用户:g
- 其他用户:o
文件类型和访问权限(事物属性)
如上图:
- 文件类型为-是普通文件,文件类型为d是目录文件,Linux不以文件后缀区分文件类型
- 在权限的前三位(
rw-
)为文件所有者的权限,权限的中间三位(rw-
)为文件所属组的权限,权限的后三位为其他用户的权限
文件类型
-:普通文件,文本,源代码,可执行程序,第三方静态库
d:目录文件
l:链接文件
p:管道文件
b:块设备文件
c:字符设备文件
基本权限
1、读(r):对文件,具有读取文件内容的权限,对目录,有读取目录内文件列表的权限
2、写(w):对文件,具有修改文件内容的权限,对目录,有,创建删除移动(剪切)目录内文件的权限
3、执行(x):对文件,具有执行文件的权限,对目录,具有进入目录的权限
4、'-'表示不具有该项权限
文件权限值的表示方法
Linux字符表示 Linux 8进制数值表示 说明 r - - 4 只读 - w - 2 仅可写 - - x 1 仅可执行 r w - 6 可读可写 - w x 3 可写可执行 r - x 5 可读可执行 r w x 7 可读可写可执行 - - - 0 不可读不可写不可执行
文件访问权限的相关设置方法
chmod
设置文件的访问权限
chmod 人 +/- 权限 文件名 //chmod u+w ./test.c
chmod 三位8进制 文件名 //chmod 664 ./test.c
//-R 递归修改目录文件的权限
//只有文件的拥有者和root才可以改变文件的权限(root不受限制)
chown
修改文件的拥有者
chown 用户名 文件名 //chown user1 f1
//chown -R user1 filegroup1
chgrp
修改文件或目录的所属组
chgrp 用户组名 文件名
umask
查看或修改文件掩码
新建文件默认权限为0666(mask)
新建目录默认权限为0777(mask)
但实际上创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask(umask取反结果按位与mask)将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用
户默认为0002
umask //查看
umask 044 //设置
粘滞位
共享目录:
linux下可以存在一些目录,拥有者和所属组是root,其他人允许以other身份对该目录下的文件进行读写删除,创建,linux自带的共享目录为tmp
在共享目录下,可以设置其他用户不能写,不能读,但是防不住其他用户删除
如果我还想在共享目录下,形成临时文件但是,不允许除了我之外的人删除,就引入了粘滞位
粘滞位:
chmod +t 目录 //(超级用户执行)
//该目录下的文件只能被root,目录的拥有者,文件的拥有者删除
但是防不住其他用户删除
如果我还想在共享目录下,形成临时文件但是,不允许除了我之外的人删除,就引入了粘滞位
粘滞位:
chmod +t 目录 //(超级用户执行)
//该目录下的文件只能被root,目录的拥有者,文件的拥有者删除