day13
一消别、第二列結(jié)尾的. 是標(biāo)識selinux的符號
1惯疙、selinux是什么?
安全規(guī)則妖啥,讓Linux系統(tǒng)更安全的一套規(guī)則霉颠。
這個規(guī)則太嚴(yán)格了,一般的情況下都會關(guān)閉selinux荆虱。
自己開啟防火墻啊蒿偎,用其他手段來實現(xiàn)同樣的安全目的。
2怀读、怎么關(guān)掉Selinux诉位?
查看方法:
[root@oldboyedu ~]# getenforce
Enforcing
臨時關(guān)掉:
[root@oldboyedu ~]# setenforce
usage:? setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@oldboyedu ~]# setenforce 0
[root@oldboyedu ~]# getenforce
Permissive
永久關(guān)閉:
vim /etc/selinux/config
[root@oldboyedu ~]# grep dis /etc/selinux/config
#? ? disabled - No SELinux policy is loaded.
SELINUX=disabled
二、Linux里防火墻C6 iptables? C7 firewalld
作用:防護(hù)計算機菜枷,防止被入侵苍糠。
1、臨時開啟和關(guān)閉
systemctl start firewalld.service
systemctl status firewalld.service
2啤誊、讓firewalld開機自啟動
systemctl enable firewalld.service
三岳瞭、什么是硬鏈接?
具有相同inode節(jié)點號的文件互為硬鏈接蚊锹。
一個文件的兩個入口瞳筏。
創(chuàng)建硬鏈接:
ln 源文件 硬鏈接文件
作用:備份,防止誤刪牡昆。
目錄硬鏈接
不支持人工創(chuàng)建目錄硬鏈接姚炕。
四、軟鏈接:
本質(zhì)是快捷方式,指向源文件實體柱宦,本身和源文件是不同的文件些椒。
1、工作中為什么會使用軟鏈接掸刊。
第一個用途:
安裝軟件:/application/nginx-1.10
過半年:/application/nginx-1.20
導(dǎo)致一個問題免糕,工作中,開發(fā)等引用/application/nginx-1.10路徑痒给。
安裝軟件:/application/nginx-1.10===>/application/nginx(讓開發(fā)用)
過半年:? /application/nginx-1.20===>/application/nginx(讓開發(fā)用)
第二個用途:
/etc/對應(yīng)的分區(qū)要滿了令境,沒法放很多文件并村,但是程序還想通過/etc/目錄訪問文件网持。
此時荚恶,我們可以把文件放入/opt/oldboy下,然后做一個到/etc/oldboy的軟鏈接试吁。
四棺棵、Linux文件刪除原理:
1、靜態(tài)文件:沒有進(jìn)程或程序正在訪問的文件熄捍。
所有的硬鏈接數(shù)為0(i_link)烛恤,即所有硬鏈接都被干掉了,包括自身余耽。
硬鏈接的數(shù)量的代表變量符號i_link
rm -f oldboy.txt oldboy_hard_link
執(zhí)行完 其實文件也沒刪缚柏,關(guān)機停止運行。
a.系統(tǒng)定時清理沒有文件名的inode碟贾。
b.磁盤檢查會清理币喧。
c.增加新文件時優(yōu)先占用沒有文件名的inode。
恢復(fù)的工具:debugfs,ext3grep等等袱耽。
2杀餐、動態(tài)文件:有程序或進(jìn)程訪問的文件
刪除原理:
a.所有硬鏈接刪除。i_link為0.
b..i_count是進(jìn)程調(diào)用文件的數(shù)量(引用計數(shù))朱巨。所有進(jìn)程調(diào)用都要停止取消史翘。i_count為0
Web服務(wù)器磁盤滿故障深入解析,地址為
http://oldboy.blog.51cto.com/2561410/612351
五冀续、通配符知識:
1琼讽、基本含義
通配符簡單說就是鍵盤上的一些特殊字符,可以實現(xiàn)某些特殊的功能沥阳,
例如跨琳,可以用*代表所有,來模糊搜索系統(tǒng)中的文件桐罕。
2、范圍:通配符試用范圍是命令行中【普通命令】或腳本編程中。
3功炮、模糊匹配:*匹配所有
? ? ? ? ? ? ? ? ? ? 溅潜?匹配單個字符
? ? ? ? ? ? ? ? ? ? [abcd]匹配里面任意一個字符
? ? ? ? ? ? ? ? ? ? [a-d]匹配連續(xù)的任意單個字符
? ? ? ? ? ? ? ? ? ? [!a-d]或[^1-9]取反
? 路徑位置:-? 返回上一次所在目錄
? ? ? ? ? ? ? ? ? ? . 當(dāng)前目錄
? ? ? ? ? ? ? ? ? .. 上一級目錄
? ? ? ? ? ? ? ? ? ? ~家目錄
? 引號相關(guān):''單引號引用字符 所見即所得
? ? ? ? ? ? ? ? ? “”雙引號 引用字符串 解析變量、命令
? ? ? ? ? ? ? ? ? ``反引號引用命令? 解析命令等價$()
其他字符:薪伏;分號? 命令分隔符
? ? ? ? ? ? ? ? ? #管理員提示符? ? 注釋符
? ? ? ? ? ? ? ? ? $普通用戶提示符滚澜,也是調(diào)用變量使用
? ? ? ? ? ? ? ? ? \轉(zhuǎn)義字符? 讓字符還原本義
? ? ? ? ? ? ? ? ? {}生成序列,引用變量讓變量變成整體
? ? ? ? ? ? ? ? ? 嫁怀!取反? ? 在vim中表示強制设捐,調(diào)用最近符合字符開頭的命令
? ? ? ? ? ? ? ? ? ? |? 管道? 前面的數(shù)據(jù)流交給后面處理
? ? ? ? ? ? ? ? ? ? &&并且? -and
? ? ? ? ? ? ? ? ? ||或者? or
day14
什么是正則表達(dá)式?
作用和特殊字符一樣塘淑。
正則表達(dá)式是為處理大量的字符串及文本而定義的一套規(guī)則和方法萝招。
開發(fā)者
假設(shè)"@"代表“I am”,"!"代表“oldboy”存捺,
則執(zhí)行echo "@!"的結(jié)果就是輸出“I am oldboy”槐沼。
1、基本正則(BRE)
? ^尖角號oldboy 以…開頭捌治,^oldboy,以oldboy開頭
$美元符 以…結(jié)尾 oldboy¥ 以oldboy結(jié)尾
^$ 空格
. 匹配任意一個且只有一個字符岗钩,和通配符?一樣
\讓有意義的字符脫掉馬甲 還原本義
*匹配前面字符0次或者多次
.*表示所有內(nèi)容
^.*組合符肖油,以任意字符0個多個開頭的內(nèi)容
兼吓。*$組合符,以任意字符0個多個結(jié)尾的內(nèi)容
[abc] 匹配和集合內(nèi)的任意一個字符a或b或c森枪,[abc]也可寫成[a-c]
[^abc]不 匹配和集合內(nèi)的任意一個字符a或b或c视搏,[abc]也可寫成[a-c]
2、擴(kuò)展正則(ERE)egrep
? ? +匹配前一個字符一次或多次以上
? ? [:/]+匹配括號內(nèi)的:或/字符1次或者1次以上
? ? 疲恢?匹配前一個字符0次或1次
? ? | 或者同時過濾多個字符串
? ? ()分組過濾被括起來的表示一個整體
? ? \n引用前面()小括號里的內(nèi)容
? ? a{n,m} 匹配前一個字符最少n次凶朗,最多m次
? ? a{n,} 匹配前一個字符最少n次
? ? a{n} 匹配前一個字符正好n次
? ? a{,m} 匹配前一個字符最多m次
3、特殊中括號
[:digit:]匹配任意一個數(shù)字字符显拳,相當(dāng)與[0-9]
[:lower:]匹配小寫字母棚愤,相當(dāng)于[a-z]
[:upper:]匹配大寫字母,相當(dāng)于[A-Z]
4杂数、元字符
\b匹配單詞的邊界 過濾單詞類似grep -w
\d 匹配單個數(shù)字字符? 需用grep -P
5宛畦、sed 可以實現(xiàn)增刪改查
sed? 選項? sed內(nèi)置命令字符? 文件
-n 取消命令的默認(rèn)輸出
-i 直接修改文件內(nèi)容 而不是輸出到終端
-e 量號 可以多次編輯
sed內(nèi)置命令字符
s替換
g全局
p打印
d刪除
day15
一、cut 按列切割
cut? -d指定分隔符“ ”-f指定那一列? 文件
cut? -c按字符去內(nèi)容? -c1-6 查找1到6列的內(nèi)容
二揍移、Linux三劍客
? awk? sed? grep
1次和、sed
Sed是操作、過濾和轉(zhuǎn)換文本內(nèi)容的強大工具那伐。
常用功能有對文件實現(xiàn)快速增刪改查(增加踏施、刪除石蔗、修改、查詢)畅形,
其中查詢的功能中最常用的2大功能是過濾(過濾指定字符串)和取行(取出指定行)养距。
sed [選項]? [sed內(nèi)置命令字符]? [文件]
選項:
-n 取消默認(rèn)sed的輸出,常與sed內(nèi)置命令的p連用※
-i 直接修改文件內(nèi)容日熬,而不是輸出到終端棍厌。
如果不使用-i選項sed只是修改在內(nèi)存中的數(shù)據(jù),并不會影響磁盤上的文件※
sed的內(nèi)置命令字符說明
s 替換
g 全局global
p 打印print
d 刪除delete
2竖席、awk是一門命令行操作也可以作為編程語言耘纱,處理字符串
? ? 特長是取列
? ? 語法awk 參數(shù)? 條件? ? 文件
參數(shù):-F指定分隔符
? ? ? ? $0整行 $1第1列? ? ? $NF最后一列 $(NF-1)倒數(shù)第二列? NR行號
? ? ? ? [^r]非r? ^[^r]以非r字符開頭
day16
Linux基礎(chǔ)權(quán)限是9個字符。
1毕荐、? ? -rw-r--r--? 1
? ? 分3組:
? ? 前三個字符是表示用戶(屬主)權(quán)限位? user(用戶) u
? ? 中三個字符是表示用戶組權(quán)限位 group(用戶組)? ? g
? ? 后三個字符是其它用戶權(quán)限位 others(其他用戶)? ? o
? ? 同一組的三個字符權(quán)限也是有位置的:
? ? r-- 第一個字符的位置讀的權(quán)限位
? ? 第二個字符的位置寫的權(quán)限位
? ? 第三個字符的位置是執(zhí)行的權(quán)限位束析。
? r代表4? ? w代表2? ? x代表1? ? -代表0
2、文件權(quán)限詳細(xì)說明
? 2.1? ? 可讀r :表示具有讀取东跪、瀏覽文件內(nèi)容
? ? ? ? ? ? 可寫w:表示具有新增畸陡、修改、刪除文件內(nèi)容的權(quán)限
? ? ? ? ? ? 可執(zhí)行x:表示具有執(zhí)行文件的權(quán)限虽填。
? 2.2 a丁恭、如果沒有可讀r配合,那么使用vi編輯文件時會提示無法編輯
? ? ? ? 可以使用echo等命令進(jìn)行重定向
? ? ? ? 刪除文件或創(chuàng)建文件的授權(quán)是受父目錄(上一級目錄)的權(quán)限控制的(因為沒有存放inode)斋日,而是在上級目錄的block里存放著的牲览,若修改上級目錄的block,當(dāng)然會受上級目錄的inode的權(quán)限控制)和文件本身的權(quán)限無關(guān)恶守,因此第献,文件本身的可寫w權(quán)限和文件是否能被刪除和改名無關(guān)。
? ? b兔港、首先文件的本身要能夠執(zhí)行(命令或腳本)
? ? 如果是普通用戶庸毫,同時還需要具備可讀r的權(quán)限才能執(zhí)行文件
? ? ? 而root用戶只要有可執(zhí)行x的權(quán)限就能執(zhí)行文件
3、目錄權(quán)限詳細(xì)說明
? a衫樊、可讀r:表示具有瀏覽目錄下面的子目錄內(nèi)容的權(quán)限
b飒赃、可寫w表示具有增加、刪除或修改目錄內(nèi)文件的權(quán)限科侈。但是载佳,如果沒有可執(zhí)行x的配合,即使有w權(quán)限臀栈,也無法刪除或創(chuàng)建文件
c蔫慧、可執(zhí)行x:表示具有進(jìn)入如目錄的權(quán)限。例如权薯,可以執(zhí)行cd dir 命令切換到目錄下姑躲,但是無法列出目錄下的文件及子目錄睡扬。
3、Linux權(quán)限有兩種表現(xiàn)形式:
1肋联、數(shù)字表示法 稱為8進(jìn)制權(quán)限
r 4
w 2
x 1
- 0
實際的權(quán)限表示就是將每3位相加即可威蕉。
rwxr-xr-x? 755
rwx 7
r-x 5
r-x 5
2刁俭、字符表示法
rw-rw-r-x? 代表的數(shù)字權(quán)限為665
--xr-x-wx? 代表的數(shù)字權(quán)限為153
-wx--x--x? 代表的數(shù)字權(quán)限為311
而以下數(shù)字權(quán)限表示的字符權(quán)限如下:
755? 代表的字符權(quán)限為rwxr-xr-x
644? 代表的字符權(quán)限為rw-r--r--
134? 代表的字符權(quán)限為--x-wxr--
修改文件屬性的用戶和組
chown 用戶.用戶組 文件? 這里的點可以用:替換橄仍。
chown 用戶 文件
chown .用戶組 文件? ====chgrp 用戶組 文件
4、安全權(quán)限臨界點:
文件不想被修改被執(zhí)行:644
目錄不想被修改(刪除移動創(chuàng)建)被執(zhí)行(進(jìn)入):755
5牍戚、企業(yè)真實案例:網(wǎng)站文件被惡意修改了侮繁。。如孝。宪哩。打開網(wǎng)站后有彈窗廣告(不是你網(wǎng)站的)
用戶打開網(wǎng)站,報警第晰。
原因:權(quán)限設(shè)置不到位锁孟。chmod -R 777 目錄 開發(fā)人員習(xí)慣
解決方案:
1、備份
tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/
2茁瘦、找到被修改的文件
[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'
3品抽、批量刪除
[root@oldboyedu /]# find /oldboy -type f |xargs sed -i '/ddddddddddddd/d'
4、找到文件被篡改來源甜熔,并優(yōu)化調(diào)整圆恤。
5、寫總結(jié) 故障報告腔稀。
六盆昙、控制默認(rèn)權(quán)限的東西? umask? 臨時修改
1、創(chuàng)建文件默認(rèn)最大的權(quán)限為666 (-rw-rw-rw-)焊虏,其默認(rèn)創(chuàng)建的文件沒有可執(zhí)行權(quán)限x位淡喜。
666
022 -
2、基于文件:默認(rèn)權(quán)限規(guī)則 了解
從666計算
umask都為偶數(shù) 默認(rèn)權(quán)限用減法
umask有奇數(shù) 默認(rèn)權(quán)限用減法 然后奇數(shù)位加1
基于目錄:默認(rèn)權(quán)限規(guī)則
從777計算
默認(rèn)權(quán)限用減法
day17
一诵闭、sgid的作用就是讓普通用戶可以在執(zhí)行某個設(shè)置了sgid位的命令時炼团,
擁有和命令對應(yīng)用戶組(一般為root用戶組)一樣的身份和權(quán)限(默認(rèn))。
? ? locate搜索內(nèi)容涂圆,默認(rèn)從updatedb對應(yīng)的數(shù)據(jù)庫中查找
updatedb 更新locate查找內(nèi)容對應(yīng)的數(shù)據(jù)庫们镜。
? sgid基于目錄的作用:
讓不同的人創(chuàng)建文件屬于相同的用戶組,從而可以互相共享文件的權(quán)限
二润歉、Linux系統(tǒng)定時任務(wù):
1模狭、什么是定時任務(wù)?
周期性的執(zhí)行任務(wù)計劃的軟件踩衩,Linux定時任務(wù)的常用軟件crond嚼鹉。
2贩汉、使用定時任務(wù)軟件,可以每天锚赤,每小時按你需求重復(fù)的執(zhí)行一項工作匹舞。
例如:備份 都是0點以后,2點爬起來備份线脚,4點以后睡覺赐稽。
需要寫一個程序?qū)崿F(xiàn)自動備份,然后讓定時任務(wù)軟件幫你執(zhí)行浑侥。
鬧鐘姊舵。。寓落。括丁。可以追女朋友伶选。史飞。。
3仰税、怎么用
(1)系統(tǒng)定時任務(wù)計劃
1.不用管理員干預(yù)构资,系統(tǒng)自動執(zhí)行。
2.也可以利用系統(tǒng)任務(wù)為管理員服務(wù)肖卧。
(2)用戶定時任務(wù)計劃
在Linux系統(tǒng)中蚯窥,
cron是定時任務(wù)的軟件名,
crond是服務(wù)進(jìn)程名塞帐,真正實現(xiàn)定時任務(wù)服務(wù)拦赠。
crontab命令是用來設(shè)置定時任務(wù)規(guī)則的配置命令。
要想配置定時任務(wù)葵姥,首先啟動crond服務(wù)荷鼠。
systemctl start crond.service
systemctl stop crond.service
systemctl status crond.service
開啟自啟動:
systemctl disable crond.service
systemctl enable crond.service
三、crontab命令是用來設(shè)置定時任務(wù)規(guī)則的配置命令榔幸。
內(nèi)容存放哪里了允乐。定時任務(wù)內(nèi)容存放的位置/var/spool/cron/
以當(dāng)前用戶名作為文件名
-l l列表 查看已經(jīng)設(shè)置的定時任務(wù)*
-e edit 編輯定時任務(wù)*
-u user 查看特定用戶下定時任務(wù)
root:
crontab -l == cat /var/spool/cron/root
crontab -e == vim /var/spool/cron/root
編寫定時任務(wù)的語法:
# Example of job definition:
# .---------------- minute (0 - 59)
# |? .------------- hour (0 - 23)
# |? |? .---------- day of month (1 - 31)
# |? |? |? .------- month (1 - 12) OR jan,feb,mar,apr ...
# |? |? |? |? .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |? |? |? |? |
# *? *? *? *? *? (command to be executed)
共六列:
第一列:分 minute (0 - 59)
第二列:時 hour? (0 - 23)
第三列:日 day of month (1 - 31)
第四列:月 month (1 - 12) OR jan,feb,mar,apr ...
第五列:周 day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
第六列:要執(zhí)行的任務(wù)命令或程序
特殊符號:
* 表示的 每或每一 的意思
00 23 * * * cmd
- 連續(xù)區(qū)間 1-10
00 8-23 * * * cmd
, 列舉 1,2,3,4,8
00 1,2,3,4,8 * * * cmd
/n n是數(shù)字。
n代表自然數(shù)字削咆,即“每隔n單位時間”牍疏,例如:每10分鐘執(zhí)行一次任務(wù)可以寫成
*/10 * * * * cmd