目录
⽂件的特殊权限:suid sgid sticky 和⽂件扩展权限
vim 主要模式介绍
Vim 常⽤ 4 种模式.
- 正常模式(Normal mode,俗称命令模式)
- 命令⾏模式(Command-line mode)
- 插⼊模式(Insert mode ,俗称编辑模式)
- 可视模式(Visual mode,俗称可视块模式)
[root@rsec ~]# vim a.txt 首次进入文件
----正常模式(Normal mode,俗称命令模式)
之后
按下 i 键,出现 “Insert”
----插⼊模式(Insert mode ,俗称编辑模式)

按下esc,再输入冒号(:)
---命令行模式
式(Command-line mode)

再进入文件的时候按下v
---可视块模式(
(Visual mode)
这是四种模式
这里补充一下此处插入(编辑)模式不同按键的效果 a i o A I O
i 当前字符之前插入(光标前)
I 行首插入
a 当前字符之后插入(光标后)
a 当前字符之后插入(光标后)
A 行尾插入
o 下一行插入
O 上一行插入
正常模式操作
1、光标移动:hjkl 左下上右
2、gg:快速移动定位到文档首行
3、G:定位到文档末行
4、xgg:x为数字,可快速跳转到x行
5、yy:复制整行
6、dd:删除整行
7、p:粘贴
8、x:向后删除一个字符,等同于delete
9、X:向前删除一份字符
10、D:从光标处删到行尾
命令行模式操作
:w 保存
:w! 强制保存
:q 没有进行任何修改,退出
:q! 修改了,不保存,强制退出
:wq 保存并退出
:wq! 强制保存并推出
补充设置:
设置行号:set nu
取消行号:set nonu
文件的基本权限
1、在ls -l查看文件的详细信息时,前面会展示文件的权限如:-rw-r-x-w-这样的内容。
其含义如下:
第一个位置:表示文件类型(这里有三个常见的d 表示⽬录⽂件 、l 表示符号链接⽂件、 -表示普通⽂件)
第二到四的:拥有者权限(所有者)
第五到七的:所属组的权限
第八到十的:其他人权限
2、在这之后会有如:root root这样的内容
其含义是第一个:拥有者
第二个属组
3、之后的数字表示的时间为最后修改的时间
4、最后跟上的是对象
权限说明
r:读
w:写
x:执行
更改文件的属主和属组
chown:可以用来更改文件或目录的属主
chgrp:可以用来改变文件或目录的,默认属于组(不常用)
chown语法:(这里只记录最基础的用法,如有需要可自行查询使用方法,不过命令都是一样的模板,诸位天才相比轻松就拿下了,就不记录了)
chown user:group filename ⽐如:chown hr:san a.txt 把⽂件的属主改为 hr 属组改为 san
chown user filename
⽐如:chown san a.txt 把⽂件的属主改为 san ⽤户
chown :group filename
⽐如: chown :miao a.txt 把⽂件的属组改为 miao 组
:也可以⽤.代替
修改权限
修改权限⽤的命令:chmod
作⽤:修改⽂件,⽬录的权限
语法:chmod [对谁操作] [操作符] [赋于什么权限] ⽂件名
对谁操作:
- u----> ⽤户 user,表示⽂件或⽬录的所有者
- g---->⽤户组 group,表示⽂件或⽬录所属的⽤户组
- o---->其它⽤户 others
- a---->所有⽤户 all
操作符:
+ #添加权限 ; - # 减少权限 ; = #直接给定⼀个权限
权限:r w x
例如下⾯的组合:
- u-w user 拥有者
- g+x group 组
- o=r other 其他⼈
- a+x all 所有⼈
八进制数字表示法
在表示法里r=4 w=2 x=1
所以如果是一个权限为 -rwxrwxrwx的权限,那么就是777(所以有7,6,5,3,不同的数字,不同的组合方式)
⽂件的特殊权限:suid sgid sticky 和⽂件扩展权限
SetUID的功能
SteUID只能设置在二进制可可执行程序上面,对目录设置无效,文件要有执行权限
功能:程序运行时的权限从执行者变成程序所有者的权限
在所有者的权限⾥⾯有s就是SUID权限,在所属组⾥⾯有s就是SGID权限,在其他⼈⾥⾯有s
就是SBID(所有者,所属组,其他人的介绍在上面)
设定SetUID的方法
4代表SUID,2表示SGID,1表示SBID 7表示SUID,SGID,SBID都有,
chmod 4755 ⽂件名;等同于 chmod u+s ⽂件名
(这里相比有一些看不懂,第一个4时SetUID的三个模式里的一个,所以意思是给所有者添加了权限所i等同于chmod u+s)
[root@rsec ~]# touch test
[root@rsec ~]# ll test
-rw-r--r-- 1 root root 0 7⽉ 6 12:58 test
[root@rsec ~]# chmod u+s test

s是⼤写的,这是因为出错了,因为SetUID的功能说明中强调命令执⾏者要对该程序有执⾏权限,所
以会报错。
设置setUID的两个前提条件:
1.⼆进制可执⾏程序
2.有执⾏权限
[root@rsec ~]# chmod 777 test
[root@rsec ~]# chmod u+s test

取消setUID方法
⽤chmod命令吧⽂件的权限修改为以前的,或者使⽤ u-s ⽂件名来修改
[root@rsec ~]# chmod u-s test(需要就+不需要就-是不是很好记)
[root@rsec ~]# ll test
-rwxrwxrwx 1 root root 0 7⽉ 6 12:58 test