shell命令
Shell的定义:命令行解释器(command Interpreter)
包含:
- 将使用者的命令翻译给核心(kernel)处理
- 同时,将核心的处理结果翻译给使用者
Windows的图形界面相当于这里的shell
bash属于shell的一种
Linux权限管理
adduser
语法
:adduser [USERNAME]
passwd [USERNAME]
userdel -r
注意
: 直接userdel [USERNAME]
不能直接删除所有该用户东西要用userdel -r
递归删除
su
命令
:su [USERNAME]
功能
:切换用户。要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用su root
(root可以省略),此时系统会提示输入root用户的密码,也可以用su -
sudo
sudo [COMMAND]
暂时提升权限
在开始可能会出现下面的提示:
可以在root ALL=(ALL) ALL
后添加下面任意一条:
username ALL=(ALL) ALL
允许用户youuser执行sudo命令(需要输入密码).%username ALL=(ALL) ALL
允许用户组youuser里面的用户执行sudo命令(需要输入密码).username ALL=(ALL) NOPASSWD: ALL
允许用户youuser执行sudo命令,并且在执行的时候不输入密码.%username ALL=(ALL) NOPASSWD: ALL
允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码
Linux下有两种用户
:
- 超级用户(root)
- 普通用户
文件访问者(三类)
:
- 文件和文件目录的所有者:
u
—User- 文件和文件目录的所有者所在的组的用户:
g
—Group(意义
:保证项目安全的前提下,方便组内协同)- 其它用户:
o
—Others
如图d
rwx
r-x
r-x
表示是一个普通文件,所有者可读可写可执行,组用户和其他用户只能读与执行 同时所有者是root,组也是root
①文件类型
:(不再赘述)
②基本权限
:
读(r/4)
: Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限写(w/2)
: Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限执行(x/1)
: execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限—
表示不具有该项权限
权限 | 八进制 | 二进制 |
---|---|---|
r | 4 | 100 |
w | 2 | 010 |
x | 1 | 001 |
rw | 6 | 110 |
rx | 5 | 101 |
wx | 3 | 011 |
加粗样式 | rwx | 7 |
- - - | 0 | 000 |
chmod+chown+chgrp
chmod
语法
:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
功能
: 设置文件的访问权限
chmod命令权限值的格式
:
+
:向权限范围增加权限代号所表示的权限-
:向权限范围取消权限代号所表示的权限=
:向权限范围赋予权限代号所表示的权限
用户符号
:
u
:拥有者g
:拥有者同组用o
:其它用户a
:所有用户例如:
chmod基于8进制修改权限
chown
语法
:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
功能
:修改文件拥有者
chgrp
语法
:
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
功能
:修改文件或目录的所属组
Linux默认权限
一般普通文件起始权限从666开始
一般目录文件起始权限从777开始
umask(权限掩码)
将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为
0022
,普通用户默认为0002
语法
:umask 权限值8进展
功能
:
查看或修改文件掩码新建文件夹默认权限=0666 新建目录默认权限=0777
实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
例如
:
起始权限:666->110 110 110
umask(只考虑后三位):002->000 000 010
~umask:111 111 101
default & ~umask
110 110 110
111 111 101
&
———————
110 110 100
(结果是664)
目录权限
问一
:要在目录下创建文件,需要什么权限?
必须具有w(可写权限
)问二
:要读取目录下的文件列表需要什么权限?
必须具有r(可读权限
)问三
:要进入一个目录需要什么权限?
必须具有x(可执行权限
)
粘滞位
只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限
为了解决这个不科学的问题, Linux引入了粘滞位
的概念
当一个目录被设置为"粘滞位"(用
chmod +t
),则该目录下的文件只能由:超级管理员
,文件所有者
,目录所有者
删除
注意
:t只是覆盖了x,仍具有可执行权限
粘滞位场景
:/tmp目录被设为了t
直接删目录
:
- 一定要先把目录里的文件全部删除
- 删除目录内部的文件,前提是能进入目录
总结
:
- 目录的可执行权限是表示你可否在目录下执行命令
- 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件
- 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档