上節(jié)余留
一急侥、suid
1募壕、 suid功能是針對二進(jìn)制命令或程序的绽昼,必能用在Shell等類似腳本文件上芭商。
2
用戶或?qū)僦鲗?yīng)的前三位權(quán)限的X位上派草,如果有s就表示具備suid權(quán)限。
3蓉坎、suid的作用就是讓普通用戶可以在執(zhí)行某個設(shè)置了suid位的命令或程序時澳眷,擁有和命令對應(yīng)屬主(一般位root管理員)一樣的身份和權(quán)限(默認(rèn))。
4蛉艾、二進(jìn)制命令程序需要有可執(zhí)行權(quán)限x配合才行钳踊。
5、suid對應(yīng)的身份和權(quán)限僅在程序命令執(zhí)行過程中有效勿侯。
6拓瞪、suid是一把雙刃劍,是一個比較危險的功能助琐,對系統(tǒng)安全有一定威脅祭埂,企業(yè)里用戶授權(quán)可以使用shdo等代替suid功能
7、在進(jìn)行安全優(yōu)化時兵钮,系統(tǒng)中默認(rèn)設(shè)置了suid權(quán)限的命令要取消掉
二蛆橡、sgid
1、sgid基于目錄的作用:
讓不同的人創(chuàng)建文件屬于相同的用戶組掘譬,從而可以互相共享文件的權(quán)限
2泰演、對二進(jìn)制命令或程序來說,sgid和suid的功能基本相同葱轩,唯一的區(qū)別是suid獲得的是命令所屬用戶的身份和權(quán)限睦焕,而sgid是或得命令所屬用戶組的身份權(quán)限。
================================================================
12.9 本章重點
1)Linux基本9位權(quán)限之文件和目錄權(quán)限詳細(xì)說明靴拱。
2)Linux基本9位權(quán)限之字符和數(shù)字(8進(jìn)制)權(quán)限知識垃喊。
3)權(quán)限及用戶用戶組屬性修改命令chmod、chown袜炕、chgrp本谜。
4)默認(rèn)權(quán)限umask以及系統(tǒng)目錄安全案例。
5)特殊權(quán)限Suid知識掌握妇蛀,Sgid和sticky知識了解即可耕突。
==========================================================================
13章Linux定時任務(wù)
1笤成、什么是定時任務(wù)?
周期性執(zhí)行任務(wù)的計劃軟件眷茁,Linux定時任務(wù)的常用軟件crond
2炕泳、作用:使用定時任務(wù)軟件,可以每天每小時按你需求重復(fù)的執(zhí)行一項任務(wù)工作上祈。
eg:備份 都是后半夜自動備份
需要寫一個程序?qū)崿F(xiàn)自動備份培遵,然后讓定時任務(wù)軟件幫你執(zhí)行
3、怎樣用
(1)用戶定時任務(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
(2)系統(tǒng)定時任務(wù)計劃
a皇耗、不用管理員干預(yù),系統(tǒng)自動執(zhí)行
b揍很、也可以利用系統(tǒng)任務(wù)為管理員服務(wù)
4郎楼、編寫定時任務(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 eek (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ù)命令或程序
特殊符號:
* 表示每一 eg:每一天,每一周
00 23 * * * cmd
- 連續(xù)區(qū)間
窒悔, 列舉1呜袁,2,3简珠,5阶界,9 cmd
/n? n是數(shù)字?
即“每隔n單位時間”? eg:每10分鐘執(zhí)行一次任務(wù)可以寫成
* /10 * * * * cmd
*/1 * * * * /bin/sh /scripts/data.sh
30 3,12 * * * /bin/sh /scripts/oldboy.sh
30 */6 * * *? ? /bin/sh /scripts/oldboy.sh
30 8-18/2 * * * /bin/sh /scripts/oldboy.sh
5、實踐:
1聋庵、每分鐘追加一次oldboy字符串到/tmp/oldboy.log里膘融。
解答:大象放冰箱分三步
a.命令行執(zhí)行成功。
[root@oldboyedu ~]# echo "oldboy">>/tmp/oldboy.log
[root@oldboyedu ~]# cat /tmp/oldboy.log
oldboy
[root@oldboyedu ~]# echo "oldboy">>/tmp/oldboy.log
[root@oldboyedu ~]# cat /tmp/oldboy.log
oldboy
oldboy
b.配置定時任務(wù)crontab -e 編輯配置
[root@oldboyedu ~]# crontab -l
#####
* * * * * echo "oldboy">>/tmp/oldboy.log
c.檢查
[root@oldboyedu ~]# tail -f /tmp/oldboy.log
oldboy
oldboy
oldboy
老男孩思想:
1)先輸入* * * * *
2)先命令行操作成功祭玉。
3)拷貝命令到定時任務(wù)編輯里托启。
范例13-2:讓服務(wù)器時間每5分鐘和互聯(lián)網(wǎng)時間做一次同步。
安裝時間服務(wù)軟件:yum install ntpdate -y
更新互聯(lián)網(wǎng)時間 /usr/sbin/ntpdate ntp1.aliyun.com
/dev/null 黑洞設(shè)備
MH370>/dev/null
&>/dev/null 等價>/dev/null 2>&1
[root@oldboyedu ~]# crontab -l
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
范例13-3:每天晚上0點攘宙,把站點目錄/var/www/html下的內(nèi)容打包備份到/data目錄下,并且要求每次生成不同的備份包名拐迁。
至少分三步:
1.命令行稿成功
準(zhǔn)備工作:
[root@oldboyedu ~]# mkdir /var/www/html /data -p
具體命令:
[root@oldboyedu ~]# tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/
tar: Removing leading `/' from member names
/var/www/html/
[root@oldboyedu ~]# ll /data
total 4
-rw-r--r-- 1 root root 117 Mar 22 11:59 html_2019-03-22.tar.gz
2蹭劈、編寫定時任務(wù)
[root@oldboyedu ~]# crontab -l
00 00 * * * tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/
錯了,不執(zhí)行线召。铺韧。。缓淹。
看報錯日志哈打。塔逃。。錯誤日志
定時任務(wù)沒有執(zhí)行料仗,出錯了日志在哪里湾盗?
出錯日志/var/log/cron
Mar 22 12:03:01 oldboyedu CROND[18770]: (root) CMD (tar zcvf /data/html_$(date +)
定時任務(wù)對%的要求,百分號要轉(zhuǎn)義立轧。\%
正確答案:
[root@oldboyedu ~]# crontab -l
00 00 * * * tar zcvf /data/html_$(date +\%F).tar.gz /var/www/html/
優(yōu)秀的答案(企業(yè)里):
1.命令行執(zhí)行
cd /var/www
tar zcf /data/html_$(date +%F).tar.gz ./html
2.盡量用腳本文件實現(xiàn)
#mkdir /server/scripts -p #存放腳本的文件
運(yùn)維規(guī)范:
腳本位置:/server/scripts
軟件位置:/server/tools
編譯位置:/application/軟件名字-版本格粪,然后要軟鏈接。
cd /server/scripts
#cat bak.sh
cd /var/www
tar zcf /data/html_$(date +%F).tar.gz ./html
命令行執(zhí)行:
/bin/sh /server/scripts/bak.sh
3氛改、編輯定時任務(wù)
#bak html dir by oldboy at 2020108
00 00 * * * /bin/sh /server/scripts/bak.sh &>/dev/null
[root@oldboyedu /server/scripts]# crontab -l|tail -2
#bak html dir by oldboy at 2020108
00 00 * * * /bin/sh /server/scripts/bak.sh &>/dev/null
4帐萎、檢查正式結(jié)果
[root@oldboyedu /server/scripts]# ls -l /data
6、生產(chǎn)環(huán)境下的定時Cron書寫要領(lǐng)
1 為定時任務(wù) 加注釋
2 所有的定時任務(wù)盡量以腳本的方式執(zhí)行
3胜卤、在執(zhí)行的腳本前加上/bin/sh?
4疆导、定時任務(wù)中命令或腳本的結(jié)尾加>/dev/null? 2>&1
5 在指定用戶下執(zhí)行相關(guān)定時任務(wù)
6生產(chǎn)任務(wù)計劃中不要隨意打印輸出信息,有輸出的想法去掉葛躏。
7定時任務(wù)執(zhí)行的腳本要存放在規(guī)范路勁下
8 配置定時任務(wù)時要規(guī)范操作過程澈段,減少輸出
9 定時任務(wù)腳本中程序命令
10 時間變量%號要用反斜線轉(zhuǎn)義(只有定時任務(wù)里是命令是需要)
11若腳本中調(diào)用了系統(tǒng)變量時,要重新定義
12 出錯無法執(zhí)行紫新,就檢查/var/log/cron日志
下周:
=============================================
用戶管理:1天
磁盤管理:2-3天
三劍客深入:1-2天
Shell基礎(chǔ):2天
進(jìn)程管理命令均蜜、安裝命令 1天
============================
Linux網(wǎng)絡(luò)基礎(chǔ):4天 2天基礎(chǔ) 兩天實踐
第一大階段結(jié)束:
第二大階段,搭建集群芒率。