vim、find、bash、权限、磁盘管理

Vim编辑器:全屏幕的编辑器/可视化接口:VIM

vim: 

        模式化:

                     编辑模式(命令模式):

                     输入模式:

                     末行模式: 

              编辑模式 --> 输入模式:

                     i: insert, 

                     aappend,

                     onew line,

                     I: 行首

                     A:行尾

                     O:上方新建行 

              输入模式 --> 编辑模式:“ESC”

               编辑模式 --> 末行模式:“:”

              末行模式 --> 编辑模式:"ESC"  

       打开vim:

              # vim

              # vim  /PATH/TO/SOMEFILE/目标文件

              # vim 加目标文件行号

              # vim 加目标文件需要查找的元字符

       关闭vim:编辑模式下

              :q 退出

              :q!   强制退出,对之前的修改不做保留

              :wq   保存退出

              :x    保存退出,好像通过内核 

              ZZ:保存退出

        光标跳转:

              字符间跳转:

                     h: 向左

                     l:向右

                     j:向下

                     k:向上

              单词间跳转:

                     w:后单词的词首

                     e:当前或后一个单词的词尾;

                     b:当前或前一单词的词首;

             行内跳转:

                     ^: 跳转至行首的第一个非空白字符;

                     0:跳转至行首;

                     $: 跳转至行尾;

               行间移动:

                     #G: 行号加G

                     1G, gg-->跳转至行首

                     G 跳转至行尾

              句间移动:

                     )句首

                     (句尾 

              段落间移动:

                     }跳至段首

                     {跳至段尾 

      编辑命令: 

              字符编辑:

                     x: 删除光标所在处的字符

                     #x:删除光标所在处的开始向后#个字符

                     xp: 

                      r: 替换光标所在处的字符; 

              删除命令:

                     d: 和行内跳转,字符跳转连用

                            d^:删除光标处至行首间的字符

                            d$:删除光标处至行尾间的字符

                            dd:删除光标处一整行的内容 

                            dw, de, db

             注意:删除的内容会被vim编辑器保存至缓冲区当中;

 粘贴:p (paste, put)

                     如果此复制或删除的内容不是一个完整行

                            p:粘贴至当前光标所在处后面;

                            P(大写):粘贴至当前光标所在处前面;

 

                     如果复制的内容是完整行(可不止一行)

                            p: 粘贴至当前光标所在行下方;

                            P(大写):行上方;

 复制命令:y, yank(用法同删除命令)

                     y

                            y$, y^, y0

                            ye, yw, yb 

                     yy: 复制行

改变命令:c, change(用法同删除命令)

                     c$, c^, c0

                     cb, ce, cw

                     cc: 

撤消此前的编辑操作:

              u: undo

                     撤消此前编辑操作;

                     #u

              Ctrl+r

                     恢复此前的撤消操作 

              ".": 重复前一个编辑操作

 

       翻屏操作:

              Ctrl+f: 向后一屏;

              Ctrl+b:向前一屏;

              Ctrl+d: 向后半屏

              Ctrl+u: 向前半屏

        vim内建教程:

              vimtutor

        vim的末行模式

               (1) 地址,定界

                     :start_pos,end_pos

                            #:第#行;

                            #,#:第#行到第#行

                            #,+#:第#行

                             .: 当前行

                             $: 最后一行

                            %: 全文,相当于1,$

                            /pat1/:第一次被此模式所匹配到的行;

                            #,/pat1/:第#次被匹配到的行到后面第#行

                            /pat1/,/pat2/ 

                     后可跟编辑命令:

                            d, y, w, r

               (2) 查找

                     /PATTERN:向尾部进行

                     ?PATTERN:向首部进行

                            n: 与命令同方向

                            N:与命令反方向 

               (3) 查找替换

                     s: 在末行模式下,在地址定界的范围内完成查找替换操作;

                      s/要查找的内容/替换为的内容/修饰符

                                   要查找的内容:可使用模式

                                   替换为的内容:不能使用模式,但可以使用后向引用符号,以引用前面模式中的分组括号所匹配到的内容;

                                          \1, \2, ...

                                          &:引用要找的内容匹配到的整个内容;

                                   修饰符:

                                          i: 忽略大小写

                                          g: 全局替换

 

                            /:用于分隔符,所以,要查找的内容或替换为的内容中出现此符号,要使用\对其转义,使用格式:\/

                                   分隔符可替换为其它字符:例如@,#等;

搜索及替换命令 
/pattern:从光标开始处向文件尾搜索pattern 
?pattern:从光标开始处向文件首搜索pattern 
n:在同一方向重复上一次搜索命令 
N:在反方向上重复上一次搜索命令 
:s/p1/p2/g:将当前行中所有p1均用p2替代 
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 
:g/p1/s//p2/g:将文件中所有p1均用p2替换 

 

       多文件模式:

              vim FILE1 FILE2...

                     :next  下一个打开的文件

                     :first    第一个打开的文件

                     :prev   向前一个打开的文件

                     :last:最后一个打开的文件

                     :wqall  保存所有

                     :q!all   强制退出,不保存所有 

       多文件窗口分割:

              vim -o|-O FILE1FILE2 ...

              Ctrl+w, ARROW

        单文件窗口分割:

              Ctrl+w, s: split,水平分割

              Ctrl+w, v:vertical, 垂直分割

        定制vim的某些工作特性:

              (1) 行号

                     显示:set nu

                     禁用:set nonu

              (2) 括号匹配

                     显示:set sm

                     禁用:set nosm

              (3) 自动缩进:

                     set ai

                     set noai

              (4) 高亮搜索

                     set hlsearch

                     set nohlsearch

              (5) 语法着色

                     syntax on

                     syntax off

              (6) 忽略字符大小写

                     set ic

                     set noic

 

              :help 获取帮助

              :help SUBJECT

 

       特性设定的永久生效方式:

              全局配置文件:/etc/vimrc

              用户个人的配置文件:~/.vimrc

 

FIND(文件查找):

       在文件系统上查找符合条件的文件的过程;

文件查找:locate, find

              locate: 非实时查找工具;依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新此数据库(updatedb);查找速度快;模糊查找;

              find:实时查找;查找速度略慢;精确查找;

       find命令:

              find [OPTION]...[查找路径] [查找条件] [处理动作]

                     查找路径:默认为当前路径;

                     查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件;

                     处理动作:对符合条件的文件做什么操作;默认为输出至屏幕;

               查找条件:

                     根据文件名进行查找:

                             -name "文件名称": 支持使用glob,*, ?, []

                             -iname "文件名称":不区分字符大小写,支持使用glob

                              -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称;

                      根据属主、属组查找:

                            -user USERNAME: 查找属主为指定用户的文件;

                           -groupGROUPNAME: 查找属组为指定组的文件

                           -uid UserID: 查找文件的属主指定uid的文件;

                            -gidGroupID: 

                             -nouser: 查找没有属主的文件;

                            -nogroup:查找没有属组的文件;

                      根据文件类型进行查找:

                            -type TYPE

                                   f: 普通文件

                                   d: 目录

                                   l: 符号链接

                                   b: 块设备

                                   c: 字符设备

                                   p: 命名管道

                                   s: 套接字

                     组合查找条件:

                            与条件:-a

                            或条件:-o

                            非条件:-not, !

                             !A -o !B = !(A -aB)

                            !A -a !B = !(A -oB)

                      根据文件大小来查找:

                            -size [+|-]#UNIT

                                   单位:k, M, G

                                    #UNIT: (#-1,#]  半开半闭区间

                                   +#UNIT: (#,+oo) 即#<目的值<+oo

                                   -#UNIT[0,#-1] 即0<=#<=#-1

 

                     根据时间戳:

                            为单位

                                   -atime [+|-]#  查找在指定时间曾被存取过的文件或目录,单位以24小时计算

                                          #[#,#+1)

                                          +#: [#+1,oo]

                                          -#: [0,#)

                                   -mtime 查找在指定时间曾被更改过的文件或目录,单位以24小时计算

                                   -ctime 查找在指定时间之时被更改的文件或目录,单位以24小时计算

                           分钟为单位

                                   -amin

                                   -mmin

                                   -cmin

 

                     根据权限:

                            -perm [/|-]MODE

                                   MODE: 精确权限匹配

                                   /MODE:任何一类对象(u,g,o)的任何一位权限符合条件即可;隐含或条件;

                                          /400

                                   -MODE:为每一类对象指定的每一位权限都必须同时存在方为符合条件;隐含与条件;

 

              处理动作:

                     -print: 默认处理动作

                     -ls:类似于对查找到的每个文件做"ls -l"的操作;

                     -delete: 删除查找到的文件;

                     -fls/path/to/somefile:查找到的文件的详细路径信息保存至指定文件中;

 

                     -ok COMMAND {} \;

                            对每个文件执行指定的命令之前需要用户事先确认;

                     -exec COMMAND {}\;

                            无需用户确认; 

 

bash环境配置:

      

       配置文件,生效范围划分,存在两类:

              全局配置:

                     /etc/profile,/etc/profile.d/*.sh

                     /etc/bashrc

              个人配置:

                     ~/.bash_profile

                     ~/.bashrc

 

       按功能划分,存在两类:

              profile类:为交互式登录的shell提供配置

                     /etc/profile,/etc/profile.d/*.sh

                     ~/.bash_profile

 

                     功用:

                            (1) 定义环境变量,例如PATHPS1

                            (2) 运行命令或脚本

 

              bashrc类:为非交互式登录shell提供配置

                     /etc/bashrc

                     ~/.bashrc

 

                     功用:

                            (1) 定义命令别名;

                            (2) 定义本地变量;

 

       变量:内存空间,变量名

              类型:

                     环境变量:作用范围当前shell进程及其子进程

                     本地变量:作用范围当前shell进程

                     局部变量:作用范围仅为当前shell进程中某代码片断(通常为函数上下文)

 

                     位置变量:$1, $2

                     特殊变量:$?

 

              变量定义方式:

                     bash内置变量:可直接调用,内置了许多环境变量,例如PATH

                     自定义变量:

                            变量赋值:变量名=

 

              bash弱类型:

                     变量存储数据时,默认均采用字符形式;任何变量可以不经声明,直接引用;

 

                            12024bits

                            120: 8bits 

 

       定义本地变量:

              name=value

 

              查看:set

 

       定义环境变量:

              export name=value

              declare -xname=value

 

              查看:env, printenv, export

 

       撤消变量:

              unset name

 

       引用变量:

              ${name}, $name

 

       bash中的引用符号:

              '': 强引用,变量替换不会发生

              "":弱引用

              ``: 命令引用

 

      

       shell登录类型:

              交互式登录:

                     直接通过终端进行的登录;

                     通过su -l Username命令实现的用户切换;

 

              非交互式登录:

                     图形界面下打开的命令行窗口;

                     执行脚本;

                     su Username;

 

       配置文件作用次序:

              交互式登录:

                     /etc/profile--> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc -->/etc/bashrc

 

              非交互式登录:

                     ~/.bashrc -->/etc/bashrc --> /etc/profile.d/*.sh

 

       编辑配置文件定义的新配置如何生效?

              (1) 重新登录;

              (2) 让当前shell进程去重新读取指定的配置文件;

                     source/PATH/TO/SOMEFILE

                     ./PATH/TO/SOMEFILE

                     注意:副作用

 

       问题:

              1、定义对所有用都生效的别名?

              2、如果仅需要PATH环境变量的修改仅对root用户生效,该如何操作?

 

 

Linux文件系统上的特殊权限

      

       权限模型:

              u, g, o

                     r, w, x

 

       进程的安全上下文:

              前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;

              (1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;

              (2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;

              (3) 进程拥的访问权限,取决其属主的访问权限:

                     (a) 进程的属主,同文件属主,则应用文件属主权限;

                     (b) 进程的属主,属于文件的属组,则应用文件属组权限;

                     (c) 则应用其它权限;

 

       SUID

              (1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限;

              (2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID

 

              权限设定:

                     chmod u+sFILE... 

                     chmod u-s FILE...

 

              注意:

                     s: 属主原本拥有x权限;

                     S: 属主原本无x权限;

 

       SGID

              默认情况下,用户创建文件时,其属级为此用户所属的基本组;

              一旦某目录被设定了SGID权限,则对此目录拥有写权限的用户在此目录中创建的文件所属的组为目录的属组,而非用户的基本组;

 

              权限设定:

                     chmod g+s FILE...

                     chmod g-s FILE...

 

       Sticky:

              对于一个多人可写的目录,此权限用于限制每个仅能删除自己的文件;

 

              权限设定

                     chmod o+t FILE...

                     chmod o-t FILE...

 

       SUID, SGID,STICKY

              000

              001

              010

              011

              100

              101

              110

              111

 数字修改权限的方法:

  • 4 为 SUID

  • 2 为 SGID

  • 1 为 SBIT


              chmod 4777 FILE

              chmod 3755 DIR

Linux系统管理


磁盘和文件系统管理;

RAID, LVM; btrfs; 

程序包管理:rpm, yum(dnf)

Linux的网络管理; 

进程和作业管理:htop, glances, tsar;

sed和awk;

Linux系统的开机启动流程;

内核基础知识,内核定制编译;

系统安装:kickstart, pxe


Linux磁盘管理

硬盘:

机械式硬盘

SSD


机械式:

track

sector: 512bytes

cylinder: 分区的基本单位;


MBR:Master Boot Record

512bytes

446: bootloader

64: filesystem allocation table

16: 标识一个分区

2:55AA


磁盘接口类型:

IDE (ATA):133MB/s,/dev/hd

SCSI: 640MB/s

SATA:6Gbps

SAS:6Gbps

USB:480MB/s


识别硬盘设备:/dev/sdN

标记不同的硬盘设备:/dev/sd[a-z]

标记同一设备上的不同分区:/dev/sd[a-z][1-]

1-4: 主或扩展分区标识

5+:逻辑分区标识


设备文件:特殊文件

设备号:

major, minor

major: 设备类型

minor: 同一类型下的不同设备


“块”:block,随机设备

“字符”:character,线性设备


GPT


分区:分隔存储空间为多个小的空间,每个空间可独立使用文件系统;


分区工具:

fdisk, parted, sfdisk


fdisk工具的使用:

最多支持在一块硬盘上的15个分区;


分区管理子命令:

p: 显示

n: 创建

d: 删除

t: 修改分区ID

l: 列出所有支持ID类型

w: 保存退出

q: 放弃修改并退出

m: 获取帮助


创建完成之后,查看内核是否已经识别新的分区:

# cat /proc/partitions


有三个命令可以让内核重读磁盘分区表:

CentOS 5: partprobe [DEVICE]

CentOS 6,7: 

partx

kpartx


partx命令:

partx DEVICE

partx -a DEVICE

partx -a -n M:N DEVICE

M

M:

:N


kpartx命令:

kpartx -af DEVICE


Linux文件系统管理


文件系统:

VFS:Virtual File System


Linux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap

光盘:iso9660

Windows: fat32(vfat), ntfs

Unix: ffs, ufs, jfs, jfs2

网络文件系统:nfs, cifs

集群文件系统:ocfs2, gfs2

分布式文件系统:ceph, 

moosefs, mogilefs, hdfs, gfs, glusterfs


(1) 日志型文件系统

非日志型文件系统:ext2

日志型文件系统:ext3


(2) swap:交换分区



创建文件系统:

在分区上执行格式化(高级格式化)

要使用某种文件系统,满足两个条件:

内核中:支持此种文件系统

用户空间:有文件系统管理工具



创建工具:mkfs (make filesystem)

mkfs -t type DEVICE


mkfs.type DEVICE


ext系列文件系统的专用管理工具:

mke2fs -t {ext2|ext3|ext4} DEVICE

-b BLOCK: 1024, 2048, 4096

-L 'LABEL': 设定卷标


blkid命令:

blkid DEVICE

LABEL, UUID, TYPE


例子:

1、复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;

wKiom1XqfMmDQlCIAAIm9U-nO1I218.jpg2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留

wKioL1Xq1VWTy-5cAAGNakxv_4k664.jpg3、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;

:%s@/etc/sysconfig/init@/var/init@g

/:用于分隔符,所以,要查找的内容或替换为的内容中出现此符号,要使用\对其转义,使用格式:\/

分隔符可替换为其它字符:例如@,#等;

wKioL1Xq3MzQMBMuAAHi_AtSVSE783.jpg

4、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;

:%s@^#[[:space:]]\+@@g

5、查找/var目录属主为root,且属组为mail的所有文件

[root@test1 tmp]# find /var -user root -group  mail -ls
263243    4 drwxrwxr-x   2 root     mail         4096 Aug 31 21:47 /var/spool/mail

6、查找/usr目录下不属于root、bin或hadoop的所有文件;

[root@test1 ~]# find /usr -not -user root -a -not -user bin -a -not -user hadoop -ls
927677   12 -rwsr-xr-x   1 abrt     abrt        10296 Jul 25 00:08 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
943670  340 -rwxr-xr-x   1 amandabackup disk       344080 Mar 27 18:26 /usr/lib64/libamanda-2.6.1p2.so
1193578    4 drwxr-xr-x   5 amandabackup disk         4096 Aug 19 21:13 /usr/lib64/perl5/vendor_perl/Amanda
1193580    4 -rw-r--r--   1 amandabackup disk         2337 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Application.pm
1193594    4 -rw-r--r--   1 amandabackup disk         2448 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Script.pm
1193599   12 -rw-r--r--   1 amandabackup disk        11215 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Util.pm
1193584   20 -rw-r--r--   1 amandabackup disk        17406 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Changer.pm
1193582   12 -rw-r--r--   1 amandabackup disk         9804 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Archive.pm

7、查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件

[root@test1 ~]# find /etc -atime -7 -not -user root -a -not -user hadoop  -ls
394361    4 drwxr-xr-x   3 amandabackup disk         4096 Aug 19 21:15 /etc/amanda
394547    4 drwxr-xr-x   3 amandabackup disk         4096 Aug 19 21:15 /etc/amanda/DailySet1
394060    4 drwxr-xr-x   2 amandabackup disk         4096 Aug 19 21:15 /etc/amanda/DailySet1/label-templates

8、查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;

[root@test1 ~]# find / -nouser -o -nogroup -a -atime -7 -ls
find: `/proc/3989/task/3989/fd/5': No such file or directory
find: `/proc/3989/task/3989/fd/5': No such file or directory
find: `/proc/3989/task/3989/fdinfo/5': No such file or directory
find: `/proc/3989/task/3989/fdinfo/5': No such file or directory
find: `/proc/3989/fd/5': No such file or directory
find: `/proc/3989/fd/5': No such file or directory
find: `/proc/3989/fdinfo/5': No such file or directory
find: `/proc/3989/fdinfo/5': No such file or directory

9、查找/etc目录下大于20k且类型为普通文件的所有文件;

[root@test1 ~]# find /etc -size 20k -type f -ls
394131   20 -rw-r--r--   1 root     root        20119 Nov 11  2010 /etc/gconf/schemas/compiz-minimize.schemas
395243   20 -rw-r--r--   1 root     root        19483 Nov 11  2010 /etc/gconf/schemas/gnote.schemas
392912   20 -rw-r--r--   1 root     root        20452 Jul 24 20:31 /etc/libreport/events/report_Mailx.xml
393600   20 -rw-r--r--   1 root     root        19579 Feb 20  2014 /etc/postfix/access
393362   20 -rwxr-xr-x   1 root     root        20097 Jul 24 16:14 /etc/rc.d/rc.sysinit
393353   20 -rw-r--r--   1 root     root        19697 Apr 10 00:44 /etc/rc.d/init.d/functions
393824   20 -rwxr-xr-x   1 root     root        19499 Jul 24 18:04 /etc/rc.d/init.d/kdump
394716   20 -rw-------   1 root     root        19638 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/openshift.pp
394891   20 -rw-------   1 root     root        19650 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/condor.pp
[root@test1 ~]#

10、查找/etc目录下所有用户都没有写权限的文件;

[root@test1 ~]# find /etc -not -perm /222 -a -type f -ls
392816    4 -r--------   1 root     root           45 Aug 19 21:00 /etc/openldap/certs/password
392483    4 ----------   1 root     root         1517 Aug 31 21:47 /etc/shadow-
396595    4 ----------   1 root     root          921 Sep  5 20:36 /etc/gshadow
392842  264 -r--r--r--   1 root     root       266702 Aug 19 20:59 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
392844  208 -r--r--r--   1 root     root       211626 Aug 19 20:59 /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem
392843  216 -r--r--r--   1 root     root       217510 Aug 19 20:59 /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem
392845  196 -r--r--r--   1 root     root       198453 Aug 19 20:59 /etc/pki/ca-trust/extracted/java/cacerts
392841  352 -r--r--r--   1 root     root       359773 Aug 19 20:59 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
393858    4 -r-xr-xr-x   1 root     root         1340 Jul 24 12:04 /etc/rc.d/init.d/blk-availability
394261    8 -r-xr-xr-x   1 root     root         4433 Jul 24 12:04 /etc/rc.d/init.d/clvmd
393859    4 -r-xr-xr-x   1 root     root         2134 Jul 24 12:04 /etc/rc.d/init.d/lvm2-lvmetad
393860    4 -r-xr-xr-x   1 root     root         3042 Jul 24 12:04 /etc/rc.d/init.d/lvm2-monitor
395344    4 -r--r-----   1 root     root         4002 Mar  2  2012 /etc/sudoers
393854    4 -r--r--r--   1 root     root         2249 Jul 24 12:04 /etc/lvm/profile/command_profile_template.profile
393857    4 -r--r--r--   1 root     root           80 Mar 24 10:00 /etc/lvm/profile/thin-performance.profile
393855    4 -r--r--r--   1 root     root          828 Jul 24 12:04 /etc/lvm/profile/metadata_profile_template.profile
393856    4 -r--r--r--   1 root     root           76 Mar 24 10:00 /etc/lvm/profile/thin-generic.profile
393521    4 -r--r--r--   1 root     root          460 Jul 24 19:09 /etc/dbus-1/system.d/cups.conf
393523    4 -r--r--r--   1 root     root          146 Jul 24 19:09 /etc/pam.d/cups
393341    4 ----------   1 root     root         1642 Sep  5 20:36 /etc/shadow
394613    4 -r--r--r--   1 root     root          324 Jul 24 00:14 /etc/ld.so.conf.d/kernel-2.6.32-573.el6.x86_64.conf
392475    4 ----------   1 root     root          910 Aug 31 21:47 /etc/gshadow-

11、查找/etc目录下至少有一类用户没有执行权限的文件;

[root@test1 ~]# find /etc -not -perm +111 -ls
394976   12 -rw-------   1 root     root         9843 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/usernetctl.pp
394977   12 -rw-------   1 root     root         9545 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/sensord.pp
394978   12 -rw-------   1 root     root         8513 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/openct.pp
394979   12 -rw-------   1 root     root         8775 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/sysadm_secadm.pp
394980   12 -rw-------   1 root     root         9716 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/tmpreaper.pp
394981   16 -rw-------   1 root     root        13033 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/smokeping.pp
394982   16 -rw-------   1 root     root        15224 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/nut.pp
394983   16 -rw-------   1 root     root        14063 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/rlogin.pp
394984   12 -rw-------   1 root     root         9771 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/rhgb.pp
394985   12 -rw-------   1 root     root         8218 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/mip6d.pp
394986   16 -rw-------   1 root     root        13041 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/java.pp
394987   16 -rw-------   1 root     root        13959 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/qmail.pp
394988   12 -rw-------   1 root     root        11491 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/lsm.pp
394989   24 -rw-------   1 root     root        21070 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/cups.pp
394990   12 -rw-------   1 root     root        10222 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/rwho.pp
394991   20 -rw-------   1 root     root        17630 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/policykit.pp
394992   20 -rw-------   1 root     root        17622 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/hal.pp
394993    4 -rw-------   1 root     root          106 Aug 19 21:14 /etc/selinux/targeted/modules/active/seusers.final
394994    4 -rw-------   1 root     root          101 Aug 19 21:14 /etc/selinux/targeted/modules/active/users_extra
394995    4 -rw-------   1 root     root           32 Aug 19 21:14 /etc/selinux/targeted/modules/active/commit_num
394996  296 -rw-------   1 root     root       299700 Aug 19 21:14 /etc/selinux/targeted/modules/active/file_contexts.template
394997    8 -rw-------   1 root     root         5631 Aug 19 21:14 /etc/selinux/targeted/modules/active/homedir_template
394998 8312 -rw-r--r--   1 root     root      8507399 Aug 19 21:14 /etc/selinux/targeted/modules/active/policy.kern
394999    0 -rw-------   1 root     root            0 Aug 19 21:14 /etc/selinux/targeted/modules/active/netfilter_contexts
395000  288 -rw-------   1 root     root       294069 Aug 19 21:14 /etc/selinux/targeted/modules/active/file_contexts
393731    0 -rw-r--r--   1 root     root            0 Jul 24 21:05 /etc/selinux/targeted/modules/semanage.read.LOCK
393713    4 -rw-r--r--   1 root     root           30 Jul 24 21:05 /etc/selinux/targeted/contexts/initrc_context
393707    4 -rw-r--r--   1 root     root          195 Jul 24 21:05 /etc/selinux/targeted/contexts/dbus_contexts
393710    4 -rw-r--r--   1 root     root           29 Jul 24 21:05 /etc/selinux/targeted/contexts/failsafe_context
394337    8 -rw-r--r--   1 root     root         6405 Aug 19 21:14 /etc/selinux/targeted/contexts/files/file_contexts.homedirs
393712    4 -rw-r--r--   1 root     root          139 Jul 24 21:05 /etc/selinux/targeted/contexts/files/media
394034  288 -rw-r--r--   1 root     root       294069 Aug 19 21:14 /etc/selinux/targeted/contexts/files/file_contexts
393717    4 -rw-r--r--   1 root     root           35 Jul 24 21:05 /etc/selinux/targeted/contexts/userhelper_context
393714    4 -rw-r--r--   1 root     root           33 Jul 24 21:05 /etc/selinux/targeted/contexts/removable_context
393727    4 -rw-r--r--   1 root     root         2920 Jul 24 21:05 /etc/selinux/targeted/contexts/x_contexts
393709    4 -rw-r--r--   1 root     root          148 Jul 24 21:05 /etc/selinux/targeted/contexts/default_type
393706    4 -rw-r--r--   1 root     root          214 Jul 24 21:05 /etc/selinux/targeted/contexts/customizable_types
393715    4 -rw-r--r--   1 root     root           74 Jul 24 21:05 /etc/selinux/targeted/contexts/securetty_types
393726    4 -rw-r--r--   1 root     root           71 Jul 24 21:05 /etc/selinux/targeted/contexts/virtual_image_context
393724    4 -rw-r--r--   1 root     root          307 Jul 24 21:05 /etc/selinux/targeted/contexts/users/xguest_u
393723    4 -rw-r--r--   1 root     root          353 Jul 24 21:05 /etc/selinux/targeted/contexts/users/user_u
393722    4 -rw-r--r--   1 root     root          578 Jul 24 21:05 /etc/selinux/targeted/contexts/users/unconfined_u
393719    4 -rw-r--r--   1 root     root          253 Jul 24 21:05 /etc/selinux/targeted/contexts/users/guest_u
393720    4 -rw-r--r--   1 root     root          389 Jul 24 21:05 /etc/selinux/targeted/contexts/users/root
393721    4 -rw-r--r--   1 root     root          514 Jul 24 21:05 /etc/selinux/targeted/contexts/users/staff_u
393716    4 -rw-r--r--   1 root     root         1170 Jul 24 21:05 /etc/selinux/targeted/contexts/sepgsql_contexts
393725    4 -rw-r--r--   1 root     root           29 Jul 24 21:05 /etc/selinux/targeted/contexts/virtual_domain_context
393708    4 -rw-r--r--   1 root     root          254 Jul 24 21:05 /etc/selinux/targeted/contexts/default_contexts
394036    0 -rw-r--r--   1 root     root            0 Aug 19 21:14 /etc/selinux/targeted/contexts/netfilter_contexts
394035    4 -rw-r--r--   1 root     root          106 Aug 19 21:14 /etc/selinux/targeted/seusers
393187    4 -rw-r--r--   1 root     root         2271 Jul 24 09:38 /etc/selinux/semanage.conf
392633    8 -rw-r--r--   1 root     root         4113 Jul 16  2014 /etc/DIR_COLORS.lightbgcolor
395365    4 -rw-r-----   1 root     root          373 Oct 15  2014 /etc/audit/rules.d/audit.rules
395363    4 -rw-r-----   1 root     root          701 Oct 15  2014 /etc/audit/auditd.conf
395368    4 -rw-r-----   1 root     root          373 Aug 19 21:20 /etc/audit/audit.rules
392470    4 -rw-r--r--   1 root     root         1602 Oct  2  2013 /etc/csh.cshrc
393327    4 -rw-r--r--   1 root     root           45 Sep  5 21:35 /etc/adjtime
394525    4 -rw-r--r--   1 root     root          104 Apr 23  2014 /etc/ppp/pppoe-server-options
392772    4 -rw-------   1 root     root           78 Mar 16 16:51 /etc/ppp/chap-secrets
395323    4 -rw-------   1 root     daemon         30 Aug 20  2010 /etc/ppp/peers/wvdial
392774    4 -rw-------   1 root     root           77 Mar 16 16:51 /etc/ppp/pap-secrets
392773    4 -rw-r--r--   1 root     root            5 Mar 16 16:51 /etc/ppp/options
394395    4 -rw-r--r--   1 root     root          259 Jul 24 02:14 /etc/quotatab
396570    4 -rw-r--r--   1 root     root          283 Sep  6 09:19 /etc/mtab

16、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件

[root@test1 ~]# find /etc/init.d -perm -113 -ls 
392544    0 lrwxrwxrwx   1 root     root           11 Aug 19 20:57 /etc/init.d -> rc.d/init.d
[root@test1 ~]#

17、让普通用户能使用/tmp/cat去查看/etc/shadow文件;

wKiom1Xroz3Bql44AAOLrmxGFY8363.jpg18、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;

[root@test1 test]# chmod 3777 data/
[root@test1 test]# ll
total 4
drwxrwsrwt. 2 root root 4096 Sep  6 10:59 data
[root@test1 test]# 
[centos@test1 data]$ cd 
[centos@test1 ~]$ cd /test/data/
[centos@test1 data]$ touch cc
[centos@test1 data]$ ll
total 0
-rw-r--r--. 1 root   root   0 Sep  6 10:40 aa.txt
-rw-rw-r--. 1 centos centos 0 Sep  6 10:58 bb
-rw-rw-r--. 1 centos root   0 Sep  6 10:59 cc
[centos@test1 data]$ 
[basher@test1 data]$ ll
total 0
-rw-r--r--. 1 root   root   0 Sep  6 10:40 aa.txt
-rw-rw-r--. 1 centos centos 0 Sep  6 10:58 bb
-rw-rw-r--. 1 centos root   0 Sep  6 10:59 cc
[basher@test1 data]$ rm cc
rm: remove write-protected regular empty file `cc'? y
rm: cannot remove `cc': Operation not permitted
[basher@test1 data]$



你可能感兴趣的:(接口,insert,新建,编辑器)