vim、find、bash、權限、磁盤管理

Vim編輯器:全屏幕的編輯器/可視化接口:VIMjava

vim: linux

        模式化:sql

                     編輯模式(命令模式):shell

                     輸入模式:數據庫

                     末行模式: vim

              編輯模式 --> 輸入模式:centos

                     i: insert, 安全

                     aappend,bash

                     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


例子:

一、複製/etc/grub.cfg配置文件至/tmp目錄,用查找替換命令刪除/tmp/grub.cfg文件中的行首的空白字符;

wKiom1XqfMmDQlCIAAIm9U-nO1I218.jpg二、複製/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令爲/tmp/functions的每行開頭爲空白字符的行的行首加一個#; 原有空白字符保留

wKioL1Xq1VWTy-5cAAGNakxv_4k664.jpg三、替換/tmp/functions文件中的/etc/sysconfig/init爲/var/log;

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

/:用於分隔符,因此,要查找的內容或替換爲的內容中出現此符號,要使用\對其轉義,使用格式:\/

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

wKioL1Xq3MzQMBMuAAHi_AtSVSE783.jpg

四、刪除/tmp/functions文件中因此#開頭,且#後面至少跟了一個空白字符的行的行首#;

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

五、查找/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

六、查找/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

七、查找/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

八、查找當前系統上沒有屬主或屬組,且最近一週內曾被訪問過的全部文件;

[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

九、查找/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 ~]#

十、查找/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-

十一、查找/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_p_w_picpath_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

1六、查找/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 ~]#

1七、讓普通用戶能使用/tmp/cat去查看/etc/shadow文件;

wKiom1Xroz3Bql44AAOLrmxGFY8363.jpg1八、建立目錄/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]$
相關文章
相關標籤/搜索