溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

8.30 總結(jié)(vim find bash基礎(chǔ) 特殊權(quán)限位 磁盤管理基礎(chǔ))

發(fā)布時間:2020-06-22 20:12:18 來源:網(wǎng)絡(luò) 閱讀:494 作者:kunpengyaoming 欄目:大數(shù)據(jù)


1、總結(jié)文本編輯工具vim的使用方法;

vim是一種可視化的編輯器

有三種模式:編輯模式、插入模式、末行模式;(使用vim打開文件時默認(rèn)是處于編輯模式)

模式間的轉(zhuǎn)換:

編輯模式à插入模式

i   在光標(biāo)所在處插入

a   在光標(biāo)所在處的后一位進(jìn)入插入

I   在光標(biāo)所在行的行首進(jìn)入插入模式

A   在光標(biāo)所在行的行尾進(jìn)入插入模式

o   在光標(biāo)所在行的下方,另起一新行并進(jìn)入插入模式

O   在光標(biāo)所在行的上方,另起一新行并進(jìn)入插入模式

插入模式à編輯模式

按ESC鍵即可

編輯模式à末行模式

:   冒號

末行模式à編輯模式

一下或者連續(xù)兩下ESC按鍵

退出vim的操作

編輯模式下的ZZ可以執(zhí)行保存退出(不常用)

:q    在文本內(nèi)容沒有發(fā)生變化時可以直接使用q退出

:q!    強制退出,放棄編輯的內(nèi)容

:wq   正常的保存退出

:wq!   強制保存退出(一般只有root才用的上,root可以忽視文件只讀狀態(tài))

:w    保存,但不退出

:w!   強制保存,但不退出

光標(biāo)移動

在編輯模式下hjkl

h    向左移動一下   等同于方向鍵向左箭頭

l    向右移動一下   等同于方向鍵向右箭頭

j    向下移動一下(馬老說j是小日本下流)    等同于方向鍵向下箭頭

k    向上移動一下    等同于方向鍵向上一下

也可以#{h|j|k|l}(#代表數(shù)字)

比如:5h就是向左移動5個字符,同理5l就是向右移動5個字符、5j向下5下、5k向上5下

單詞之間的移動

編輯模式下

w    跳到下個單詞的詞首

e    跳到下個單詞的詞尾

b    調(diào)到上個單詞的詞首

同樣支持#{w|e|b}

一次移動#個位置,如:

3w   等于按了3次w,跳到光標(biāo)處向右第三個單詞的詞首

3e   跳到從光標(biāo)所在的單詞或向右三個單詞的詞尾

3b   跳到前三個單詞的詞首

行首、行尾之間的快速跳轉(zhuǎn)

編輯模式下

0   數(shù)字零,跳轉(zhuǎn)至絕對的行首,實際試驗中是跳到相對行首而不是絕對行首??

^   脫字符,跳轉(zhuǎn)至行首,如果行首是空白字符,則跳到行首的首字母上

$   跳轉(zhuǎn)至行尾

句子間跳轉(zhuǎn)(不常用)

編輯模式下

)  下一句

(  上一句

段落之間跳轉(zhuǎn)(不常用)

編輯模式下

}   下一段

{   上一段

行間移動

編輯模式下

#G   跳轉(zhuǎn)到指定行,如8G,就是跳轉(zhuǎn)至第八行的行首

G    跳轉(zhuǎn)至文章的尾行

gg   跳轉(zhuǎn)至文章的首行

末行模式下,直接指明數(shù)字即可完成跳轉(zhuǎn)

:3    代表跳至第三行

編輯操作

編輯模式下

x   刪除光標(biāo)所在的字符

#x   一次刪除#個字符(向右)

dd   刪除一整行

#dd   刪除連同本行以及向下一共#行

d可以結(jié)合單詞跳轉(zhuǎn)、行首、行尾跳轉(zhuǎn)完成定位刪除,如:

dw   刪除光標(biāo)所在處至下個單詞詞首之間的字符

de   刪除光標(biāo)所在處至下個單詞尾部之間的字符,基本上算是刪除下個單詞

db   刪除光標(biāo)所在處至上個單詞詞首之間的字符

d^   刪除光標(biāo)所在處至行首之間的字符

d$   刪除光標(biāo)所在處至行尾之間的字符

d0   刪除光標(biāo)所在處至行首之間的字符(絕對行首)

#d{w|e|b}  一次刪除多個

p    粘貼(put ,paste)可以粘貼最后一次刪除的內(nèi)容

p    小寫,粘貼光標(biāo)之后

P    大寫,粘貼光標(biāo)之前

行級別的粘貼,p(小寫)光標(biāo)所在行向下另起一新行粘貼,P(大寫)光標(biāo)所在行向上另起一新行粘貼

y   復(fù)制操作,使用方法和d一樣

yy   復(fù)制一整行

#yy   向下連同本行一共#行進(jìn)行復(fù)制

和d一樣可以結(jié)合單詞、行首、行尾的跳轉(zhuǎn)動作進(jìn)行復(fù)制

dw   復(fù)制光標(biāo)所在處至下個單詞詞首之間的字符

de   復(fù)制光標(biāo)所在處至下個單詞詞尾之間的字符

db   復(fù)制光標(biāo)所在處至上個單詞詞首之間的字符

y^   復(fù)制光標(biāo)所在處至行首之間的字符

y$   復(fù)制光標(biāo)所在處至行尾之間的字符

#y{w|e|b}  一次復(fù)制多個

c   change,替換操作

cc  刪除整行并進(jìn)入插入操作

#cc   連同本行向下一共#行刪除并進(jìn)入插入操作

c^   刪除光標(biāo)所在處至行首之間的內(nèi)容,并進(jìn)入插入操作

c$   刪除光標(biāo)所在處至行尾之間的內(nèi)容,并進(jìn)入插入操作,與C(大寫)效果一樣

cw   刪除光標(biāo)所在處至下個詞的詞首之間的字符并進(jìn)入插入操作

ce   刪除光標(biāo)所在處至下個詞的詞尾之間的字符并進(jìn)入插入操作

cb   刪除光標(biāo)所在處至上個單詞詞首之間的字符并進(jìn)入插入操作

#c{w|e|b}  一次替換多個

r   替換光標(biāo)所在處的單個字符,一次只做一次替換

撤銷動作

u   undo  撤銷修改

#u   撤銷#次修改(默認(rèn)只保存50次修改)

Ctrl+r    還原撤銷內(nèi)容

.   重復(fù)上一次動作

編輯模式下的翻屏操作

Ctrl+f    下一屏

Ctrl+b    上一屏

Ctrl+d    向下半屏

Ctrl+u    向上半屏

文本搜索

/PATTERN    從頭部向下搜索

?PATTERN    從尾部向上搜索

n           下一個

N           上一個

文本替換操作(末行模式)

地址定界

:startline[,endline]

:#  第#行

:.  當(dāng)前行

:$  尾行

:%  全文

:+#  指定位置向下#行

:-#  指定位置向上#行

如   :10,+8d  刪除10到18行的內(nèi)容;  :10,-8d   刪除10行到第2行的內(nèi)容

文本替換命令(末行模式)

格式    s/要查找的內(nèi)容/要替換的內(nèi)容/修飾符

其中”/”  是分隔符,可以使用查找或替換中不包含的符號來替換,如@、#等

“要查找的內(nèi)容”   支持正則表達(dá)式

“要替換的內(nèi)容”   不支持正則表達(dá)式,但可以使用后向引用\1  \2 ……

修飾符   i表示忽略大小寫,g表示全局global

PS:“要替換的內(nèi)容”使用&引用“要查找的內(nèi)容”的全部內(nèi)容

多文件模式

vim   [option ]  file ……

+#   打開文件并跳轉(zhuǎn)至第#行,vim +3  file,打開file并定位至第3行

:next  下一個文件

:prev   上一個文件

:first  第一個文件

:last   最后一個文件

:wall   全部保存

:qall   全部退出

:wqall  全部保存退出

多窗口模式

vim  -o  file1  fiel2 ……   水平分割打開多個文件

vim  -O file1  fiel2 ……   垂直分割打開多個文件

窗口之間跳轉(zhuǎn)ctrl+w,arrow(方向鍵)

單個文件也可以進(jìn)行窗口分割

Ctrl+w,s    水平分割

Ctrl+w,v    垂直分割

顯示屬性定義(末行模式)

:set  nu  顯示行號      :set nonu關(guān)閉顯示行號

:set  hlsearch  搜索高亮顯示    :set  nohlsearch 關(guān)閉搜索高亮

:set  autoindent (:set ai)   開啟自動縮進(jìn)   :set noautoindent  (:set noai)

:set  ignorecase (:set ic)  忽略大小寫      :set  noignorecase  (:set noic)

:set showmatch  (:set sm) 開啟高亮顯示括號配對   :set noshowmatch  (:set nosm)

vim配置文件

全局配置文件  /etc/vimrc

個人配置文件  ~/.vimrc  默認(rèn)不存在,新建保存即可


2、總結(jié)文件查找命令find的使用方法;

文件查找功能可以使用locate和find

locate   根據(jù)數(shù)據(jù)庫查找文件,所有查找的結(jié)果不會很全,必要時執(zhí)行updatedb更新數(shù)據(jù)庫

find 用法

find  [option] [PATH]  [條件]  [處理動作]

查找條件:

根據(jù)名稱來查找

-name “文件名”  文件名寫法支持globbing(通配符)

-iname  “文件名”  忽略文件名大小寫

根據(jù)屬主、屬組來查找

-user  unsername  

-group  groupname

-uid  #   根據(jù)uid查找

-gid  #   根據(jù)gid查找

-nouser     查找沒有屬主的文件

-nogroup    查找沒有屬組的文件

條件組合,與、或、非

-a    查找條1 -a  查找條件2 –a……   -a可省略

-o    查找條件1 –o 查找條件2 –o ……

-not   使用!也行

按照文件類型查找

-type

f    普通文件

d    目錄文件

l    鏈接文件

b    塊文件

c    字符文件

p    管道文件

s    套接字

按照文件大小查找

-size  +|-   常用單位有K M G

-size   #k    查找大于#-1 小于等于#k的文件

-size   +#k   查找大于#k的文件

-size   -#k   查找小于等于#-1k的文件

根據(jù)時間戳查找

以天為單位

-atime   [ +|-]  #

-ctime   [ +|-] #

-mtime   [ +|-] #

舉個例子:

8.30  總結(jié)(vim find bash基礎(chǔ)  特殊權(quán)限位  磁盤管理基礎(chǔ))

-4  表示小于等于4

4   表示大于4但小于5天

+4  表示大于等于5天

以分鐘為單位

-mmin

-cmin

-amin

根據(jù)權(quán)限查找

-perm [+|-] MODE

指明MODE不是+、- 表示精確匹配

+   任何一類的權(quán)限,只要對應(yīng)用戶位能夠包含其中一類即可

-   每一類用戶權(quán)限都要包含對應(yīng)位的權(quán)限

處理動作

-print   結(jié)果輸出值屏幕,默認(rèn)及時如此

-ls     顯示詳情

-exec  COMMAND {}  \;  直接執(zhí)行沒有交互提醒操作,{}代表find搜索到的值,\;是固定語法格式結(jié)尾

-ok   COMMAND {} \;   效果等同于-exec ,但是每一步操作需要用戶確認(rèn),有交互提醒

注意:

find  能夠一次性找到所有符合條件的文件,并一同傳遞給后面的命令,但有些命令不支持過長的參數(shù),可以使用:

find  XXXX |  xargs COMMAND

 

3、總結(jié)bash環(huán)境變量的相關(guān)內(nèi)容;

bash配置文件生效范圍,存在兩類:

全局類

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

/etc/bashrc

個人類

~/.bash_profile

~/.bashrc

按照功能劃分(profile類、bashrc類)

profile類,為交互式登錄shell提供配置

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

~/.bash_profile

功用:1、定義環(huán)境變量如PATH PS1等;2、運行的命令腳本

bashrc類,為非交互式登錄shell提供配置

/etc/bashrc

~/.bashrc

功用:1、定義命令別名;2、定義本地變量

變量類型

環(huán)境變量    作用于當(dāng)前shell進(jìn)程及子進(jìn)程

本地變量    作用于當(dāng)前shell進(jìn)程,子進(jìn)程不生效

局部變量    作用與僅當(dāng)前shell進(jìn)程中某代碼片段

位置變量    $0 $1 $2  ……

特殊變量    $?

變量定義方式:

bash內(nèi)嵌變量,可以直接調(diào)用,其中內(nèi)嵌了如PATH  PS1等

用戶自定義變量

變量名=值   變量存儲格式默認(rèn)均采用字符形式,可以不經(jīng)聲明之間使用

查看:set

pstree  命令,查看進(jìn)程樹

定義環(huán)境變量

export  變量名=值   本地變量聲明為環(huán)境變量

declare  -x  變量名=值   等同于export

查看:env  printenv export

撤銷變量

unset  變量名

引用變量

${變量名}

bash中引號的作用

“”  雙引號,弱引用

‘’  單引號,強引用

``    反引號,引用其命令執(zhí)行的結(jié)果

交互式、非交互式登錄shell的區(qū)別:

交互式:需要輸入用戶名和密碼 ,如終端登錄;  su -  username用戶切換

非交互式:不需要輸入用戶名和密碼,如圖形界面下右擊打開終端 ;  su  username切換(不加-)

配置文件的作用次序

交互式:

/etc/profile à /etc/profile.d/*.sh à /etc/bashrc  à  ~/.bash_profile à ~/.bashrc 

非交互式

~/.bashrc  à /etc/bashrc à /etc/profile.d/*.sh

編輯配置文件后生效方法:

可以重新登錄shell; source  file  或者./PATH/FILE 執(zhí)行(注意重復(fù)執(zhí)行,結(jié)果可能或重復(fù)添加)


4、總結(jié)Linux文件系統(tǒng)上的特殊權(quán)限(SUID、SGID、Sticky)的知識點;

進(jìn)程的安全上下文

前提是進(jìn)程有屬主,文件有屬主和屬組

1、用戶能否將某個可執(zhí)行文件啟動為進(jìn)程,取決于用戶對文件有沒有執(zhí)行權(quán)限

2、程序啟動后,程序的屬組就是用戶,即程序的發(fā)起者,進(jìn)程的屬組是發(fā)起者的基本組

3、進(jìn)程擁有的訪問權(quán)限,取決于其屬組的訪問權(quán)限

進(jìn)程的屬主同文件的屬主,則應(yīng)用屬主權(quán)限

進(jìn)程的屬主同文件的屬組,則應(yīng)用屬主權(quán)限

否則應(yīng)用文件的其他權(quán)限

特殊權(quán)限

SUID

如果屬主有執(zhí)行權(quán)限,顯示為s  ,否則顯示為S

功用:對于一個可執(zhí)行的文件來敬,任何用戶運行此程序為進(jìn)程時,進(jìn)程的屬主不在是發(fā)起者本人,而是可執(zhí)行程序文件自己的屬組

chmod u+s    添加UID權(quán)限

 

SGID

功用:當(dāng)目錄的屬組有寫權(quán)限,且擁有SGID權(quán)限時,那么所有屬于此目錄的屬組,且以屬組身份在此目錄新建文件或目錄是,新文件或目錄的屬組不是創(chuàng)建者所屬的基本組,而是目錄的屬組

chmod g+s  DIRECTORY

 

特殊權(quán)限位sticky

chmod o+t

除了root和文件的屬主用戶有刪除文件,其他人都不可以刪除

 


5、總結(jié)Linux磁盤管理、文件系統(tǒng)相關(guān)知識點及其相關(guān)命令的使用方法;

硬盤分類

機械式硬盤

SSD固態(tài)硬盤

 

機械式

track  磁道

sector  扇區(qū)  512bytes

cylinder  柱面,分區(qū)的基本單位

 

MBR  master boot record

           512bytes 

其中前446字節(jié):bootloader

64  filesystem allocation  table (FAT)

    每16個字節(jié)表示一個分區(qū)

 

 

硬盤接口類型

IDE

SCSI

SATA

SAS

USB

 

設(shè)別硬盤設(shè)備:/dev/sd[a-z],標(biāo)記同一設(shè)備上的不通過分區(qū)/dev/sd[a-z][1-]

1-4  主分區(qū)或擴展分區(qū)標(biāo)識

5+  邏輯分區(qū)標(biāo)識



設(shè)備文件也稱為特殊文件

[root@localhost ~]# ll /dev/sda*
brw-rw---- 1 root disk 8, 0 Aug 24 16:33 /dev/sda
brw-rw---- 1 root disk 8, 1 Aug 24 16:33 /dev/sda1
brw-rw---- 1 root disk 8, 2 Aug 24 16:33 /dev/sda2
brw-rw---- 1 root disk 8, 3 Aug 24 16:33 /dev/sda3
brw-rw---- 1 root disk 8, 4 Aug 24 16:33 /dev/sda4
brw-rw---- 1 root disk 8, 5 Aug 24 16:33 /dev/sda5

設(shè)備號:

主設(shè)備號major (8)     次設(shè)備號minor  (0-5)

major   設(shè)備類型

minor   同一類型下不同設(shè)備



分區(qū)原因:分割存儲空間,為多個小的空間,每個空間可以獨立使用文件系統(tǒng)

 

分區(qū)工具

常見:fdisk   parted  sfdisk   

fdisk  命令   (據(jù)說:同一塊硬盤上最多支持管理15個分區(qū))

-l   DEV 列出磁盤信息

 

fdisk  DEV    分區(qū)管理自命令

p  顯示

n  創(chuàng)建

d   刪除

t   修改磁盤id

l   列出支持的ID

w  保存退出

q   放棄修改并退出

 

創(chuàng)建完成之后,查看內(nèi)核是否已經(jīng)識別新的分區(qū)

cat /proc/partions


 

重讀磁盤分區(qū)

centos5:   partprobe  【DEVICE】

centos6、7:  partx   kpartx   

partx  

-a   add

-n  number

partx -a -n /dev/sda6   添加sda6到內(nèi)核

partx  -a  -n  4:6 /dev/sda    一次添加4-6分區(qū)

partx   -a DEVICE,全部添加,不過已添加的會報錯

 

kpartx  -af DEVICE  強制添加硬盤分區(qū)

 

 

Linux 文件系統(tǒng)管理

Linux 文件系統(tǒng):  ext2  ext3  ext4  xfs btrfs swap

光盤文件系統(tǒng):  iso9660

windows:  fat32  ntfs

網(wǎng)絡(luò)文件系統(tǒng):  nfs   cifs

 

日志型文件系統(tǒng):  (ext3  ext4xfs  btrfs)

swap 交換分區(qū)(把硬盤空間當(dāng)作內(nèi)存來使用)  內(nèi)存不足時,把暫時不用的放到swap中存放,類似于windows中的虛擬內(nèi)存

 

創(chuàng)建文件系統(tǒng)

在分區(qū)上執(zhí)行格式化(高級格式化)

創(chuàng)建工具mkfs

檢測工具fsck(fsck.ext4用來檢測ext4系列)

mkfs  -t TYPE  DEVICE

blkid  DEVICE   查看分區(qū)LABEL  UUID,文件系統(tǒng)類型等信息

mkfs -t ext4  = mkfs.ext4

 

ext 系列文件系統(tǒng)的專用管理工具

mke2fs  -t  {ext2|ext3|ext4}  

-b   BLOCK  1024  2048 4096  字節(jié)

-L    LABEL   設(shè)定卷標(biāo)


6、復(fù)制/etc/grub.cfg配置文件至/tmp目錄,用查找替換命令刪除/tmp/grub.cfg文件中的行首的空白字符;


Centos6中沒有grub.cfg,使用/etc/grub.conf來演示


    :%s/^[[:space:]]//


7、復(fù)制/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首加一個#; 原有空白字符保留;


        :%s@^\([[:space:]]\)@#\1@      

    為什么不用/進(jìn)行分割?因為后面用到了\(\),所以看上去不夠一目了然,所以使用@來進(jìn)行分割

8、替換/tmp/functions文件中的/etc/sysconfig/init為/var/log;


        :%s#/etc/sysconfig/init#/var/log#

     還可以使用#進(jìn)行分割,如果查找或者替換的內(nèi)容中不含這個字符


9、刪除/tmp/functions文件中所有以#開頭,且#后面至少跟了一個空白字符的行的行首#;


        :%s@^#\([[:space:]]\)@\1@   

    要查找的內(nèi)容中可以有正則表達(dá)式,而替換中的內(nèi)容不可以有,但可以使用后項引用(\1)


10、查找/var目錄屬主為root,且屬組為mail的所有文件;


[root@localhost ~]# find  /var/ -user root -group mail -ls
525473    4 drwxrwxr-x   2 root     mail         4096 Sep  2 10:12 /var/spool/mail


11、查找/usr目錄下不屬于root、bin或hadoop的所有文件;


[root@localhost ~]# find /usr/  -not \( -user root -o -user bin -o -user hadoop \) -ls
402139   12 -rwsr-xr-x   1 abrt     abrt        10296 Jul 25 00:08 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache

注意事項:-not后面的\(\) 前后需要空格隔開


12、查找/etc目錄下最近一周內(nèi)其內(nèi)容修改過,且屬主不為root或hadoop的所有文件;


[root@localhost ~]# find /etc/ -mtime -7 -not \( -user root -o -user hadoop \) -ls
1179660    4 drwxr-xr-x   2 779      hadoop       4096 Sep  2 13:38 /etc/mytest


13、查找當(dāng)前系統(tǒng)上沒有屬主或?qū)俳M,且最近一周內(nèi)曾被訪問過的所有文件;


[root@localhost ~]# find / \( -nouser -o -nogroup \) -mtime -7 -ls
1179660    4 drwxr-xr-x   2 779      hadoop       4096 Sep  2 13:38 /etc/mytest
526066    0 -rw-rw----   1 779      mail            0 Aug 31 18:26 /var/spool/mail/bash
917513    0 --w--w--w-   1 779      root            0 Aug 31 18:10 /tmp/b
918351    4 drwx------   4 1001     1001         4096 Sep  2 13:43 /home/database
917516    4 drwx------   4 779      779          4096 Sep  2 13:43 /home/bash
find: `/proc/1090/task/1090/fd/5': No such file or directory
find: `/proc/1090/task/1090/fdinfo/5': No such file or directory
find: `/proc/1090/fd/5': No such file or directory
find: `/proc/1090/fdinfo/5': No such file or directory

14、查找/etc目錄下大于20k且類型為普通文件的所有文件;


[root@localhost ~]# find /etc/ -size +20k -type f -exec ls -ldh {} \;

查找出來的太多,就不貼上來了


15、查找/etc目錄下所有用戶都沒有寫權(quán)限的文件;


[root@localhost ~]# find /etc/ -not -perm +222 -ls
1179988  352 -r--r--r--   1 root     root       359773 Aug 19 23:51 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
1179991  208 -r--r--r--   1 root     root       211626 Aug 19 23:51 /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem

所有用戶都沒有寫權(quán)限 = 不是任何個一個用戶包含寫權(quán)限


16、查找/etc目錄下至少有一類用戶沒有執(zhí)行權(quán)限的文件;


[root@localhost ~]# find /etc/ -not -perm -111

至少有一類用戶沒有執(zhí)行權(quán)限  =  不是 每一類用戶都有執(zhí)行權(quán)限


17、查找/etc/init.d目錄下,所有用戶都有執(zhí)行權(quán)限,且其它用戶擁有寫權(quán)限的文件;


[root@localhost ~]# find /etc/init.d/ -perm -113

-111 是每位用戶都包含執(zhí)行權(quán)限,其他用戶還要有寫權(quán)限,就在其他用戶位上+2即可 = -113


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

[root@localhost ~]# ll /etc/shadow
---------- 1 root root 1206 Sep  2 13:42 /etc/shadow
[root@localhost ~]# chmod u+s /tmp/cat 
[root@localhost ~]# ll /tmp/cat
-rwsr-xr-x 1 root root 48568 Sep  6 11:14 /tmp/cat

分析:普通用戶執(zhí)行cat,那么此cat的進(jìn)程屬主為執(zhí)行者本人,而此執(zhí)行者本人不屬于passwd中的屬主、屬組,所以按照shadow的的o權(quán)限位,是不能讀的,給/tpm/cat添加上SUID權(quán)限,那么普通用戶執(zhí)行cat的進(jìn)程屬主就為root,雖然shadow的屬主為沒有權(quán)限,但root具有至高無上的權(quán)限,依然能夠讀取

[root@localhost ~]# su - hadoop
[hadoop@localhost ~]$ /tmp/cat /etc/shadow
root:$6$qHghFv2SnmPJgsKM$JbGecAAkkhJQsRO4eLGMScdCe3HCzZF2QXoHskXDMEM7FT3NxwiLzurqyYFiXrG5gQfv1rutpAeMuTcyUKwQm/:16666:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
……

19、創(chuàng)建目錄/test/data,讓某組內(nèi)普通用戶對其有寫權(quán)限,且創(chuàng)建的所有文件的屬組為目錄所屬的組;此外,每個用戶僅能刪除自己的文件;


先分析下:

讓某組內(nèi)普通用戶對其有寫權(quán)限,chmod  g=rwx  /test/data

且創(chuàng)建的所有文件的屬組為目錄所屬的組  chmod  g+s  /test/data

每個用戶僅能刪除自己的文件  chmod s+t  /test/data

驗證:

[root@localhost data]# ll -d /test/data/
drwxrwsr-t 2 root hadoop 4096 Sep  6 12:00 /test/data/
[user1@localhost data]$ touch aa
[user1@localhost data]$ ll
total 0
-rw-r--r-- 1 user1  hadoop 0 Sep  6 12:01 aa
-rw-rw-r-- 1 hadoop hadoop 0 Sep  6 12:02 bb

 查看/test/data的權(quán)限,SUID,sticky

[user1@localhost data]$ whoami
user1
[user1@localhost data]$ ll
total 0
-rw-r--r-- 1 user1  hadoop 0 Sep  6 12:01 aa
-rw-rw-r-- 1 hadoop hadoop 0 Sep  6 12:02 bb
[user1@localhost data]$ rm  -rf bb
rm: cannot remove `bb': Operation not permitted

刪除另外一個用戶的文件被拒絕






向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI