您好,登錄后才能下訂單哦!
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 [ +|-] #
舉個例子:
-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
刪除另外一個用戶的文件被拒絕
免責(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)容。