linux就該這麼學--資料整理--持續更新

基礎命令

服務管理

systemctl redhat7

systemctl start foo.service 啓動服務
systemctl restart foo.service 重啓服務
systemctl stop foo.service 中止服務
systemctl reload foo.service 不重啓服務下從新加載配置文件
systemctl status foo.service 查看服務狀態
systemctl enable foo.service 設置服務開機自動啓
systemctl disable foo.service 設置服務開機不啓動
systemctl is-ebabled foo.service 查看服務是否開機自啓
systemctl list-unit-files --type=service 查看各個界別下的服務的啓動與禁用狀況node

經常使用命令

man

man [數字] 命令|配置文件        獲取命令,配置文件的幫助信息

whatis

whatis 命令   查看命令幫助信息中的NAME字段

help

help 命令     獲取shell內置命令的幫助信息,which等命令找不到路徑的命令都是shell內置命令(bash)

apropos

apropos 配置文件信息  查看配置文件信息中的name字段

echo

echo 字符 輸出字符
echo $變量 輸出變量linux

dete

date 查看系統當前時間
date "+%Y-%m-%d %H:%M:%S" 按照年月日小時分鐘秒格式
date -s "20190101 8:30:00" 設置當前日期爲2019年1月1日8:30分算法

reboot

reboot 重啓shell

shutdown

shutdown [選項] 時間    關閉
-c  取消前一個關機命令
-h  關機 now.立刻關機 20:20定時關機   
-r  重啓

halt

 

init

系統運行級別 /etc/inittab數據庫

0   關機
1   單用戶
2   不徹底多用戶,不含NFS服務
3   徹底多用戶
4   未分配
5   圖形界面
6   重啓

runlevel

runlevel 查詢系統的運行級別apache

logout

logout 退出登錄vim

poweroff

poweroff 關機windows

ps

-a    顯示全部進程,包括其餘用戶的進行
-u    用戶以及其它詳細信息
-x    顯示沒有控制終端的進程

top

top 動態監視進程活動與系統負載等信息,相似windows任務管理器緩存

pidof

pidof [參數] [服務名] 查詢服務進程的PID值安全

kill & killall

kill [參數] [進程ID] 終止某個pid的服務進程
kiliall [參數] [服務名稱] 終止某個指定名稱的服務所對應的所有進程,相似windows任務管理器的結束進程樹

alias

alias rm='rm -i' 定義一個命令的別名

write

write 用戶名       給在線用戶發信
Ctrl+D  保存併發送

wall

wall [發送信息]     給全部在線用戶發送廣播信息

ping

ping [選項] ip地址
-c num  指定ping的次數

mail

mail [用戶名]      直接mail是收信,mail 用戶名是給用戶發信
Ctrl+D 保存發送
h   返回郵件列表
d num   刪除郵件
q   退出

系統狀態檢測命令

ifconfig

ifconfig [網絡設備] [參數]        獲取網卡配置與網絡狀態等信息
ifconfig 網卡名 IP地址       給網卡設置IP地址,臨時生效,重啓失效
ifconfig 網卡名:1 IP地址     增長虛擬網卡,綁定多個IP

uname

uname [-a] 查看系統名稱,系統內核,主機名,內核髮型版本,節點名,系統時間,硬件名稱,硬件平臺,處理器類型,操做系統名稱等

uptime

uptime 查看系統的負載信息

free

free [-h] 顯示系統內存的使用量

who

who [參數] 查看當前登錄主機的用戶終端信息
格式:登錄的用戶名 登錄終端(tty本地,pts遠程終端) 登錄時間 登錄的主機地址

w

w [參數] [用戶名] 顯示目前登入系統的用戶信息

last

last [參數] 查看全部系統的登錄記錄

lastlog

lastlog [選項] [用戶]       顯示全部系統用戶的最後登錄信息
-u uid      查看指定用戶的最後登錄信息

setup

setup   配置網絡

netstat

netstat [選項]    顯示網絡相關信息
-t  tcp協議
-u  udp協議
-l  監聽
-r  路由
-n  顯示ip地址和端口號
netstat -an 查看本機全部的網絡鏈接
netstat -tlun   查看本機監聽的端口
netstat -rn 查看本機路由表

traceroute

traceroute ip|域名 顯示數據包到主機間的路徑,windows中的tracert

history

history [參數] 顯示歷史執行過的命令 -c 刪除歷史命令記錄

sosreport

sosreport 收集系統配置和架構信息並輸出診斷文檔

工做目錄切換

pwd

pwd 顯示用戶當前所處的工做目錄

cd

cd [目錄名稱]   切換工做路徑
cd -    切換上一個目錄
cd ~    切換到家目錄
cd ~username    切換到username的家目錄

ls

文件類型(d目錄,l軟連接,-文件) 權限(ugo) 引用計數(連接) 全部者 所屬組 文件大小(字節) 文件最後修改時間

ls [選項] [文件]    顯示目錄文件信息
ls -a   all,查看所有文件,包括隱藏文件
ls -d   查看目錄屬性
ls -l   long,查看詳細信息
ls -h   顯示容易閱讀的文件大小
ls -i   查看文件的i節點

文本文件編輯命令

cat

cat [參數] [文件名]  查看內容較少的純文本文件
cat -n  顯示行號

tac

tac 文件 倒着顯示文本,cat的倒着寫

more

more [選項] 文件 查看內容較多的純文本文件
|快捷鍵|功能|
|----|----|
|Q|q|退出|
|enter|換行|
|空格\f|翻頁|

less

less 文件名 分頁顯示文件內容
|快捷鍵|功能|
|----|----|
|enter|換行|
|空格\f|翻頁|
|向上箭頭|向上換行|
|/關鍵詞|搜索關鍵詞|
|n|下一個搜索的關鍵詞|
|pageup|向上翻頁|

head [選項] [文件]      查看純文本文檔的前N行
head -n 20 [文件名]    查看前20行

tail

tail [選項] [文件]      查看純文本文件的後N行
tail -n 20 文件名      查看後20行
tail -f 文件名     持續刷新文件內容

tr

tr [原始字符] [目標字符]    替換文本文件中的字符
cat 1.txt | tr a m      將1.txt中的a替換成m,實際文件中並無改變,只在輸出時改變

wc

wc [參數] 文本      統計指定文本的行數
wc -l       只顯示行數
wc -w       只顯示單詞數
wc -c       只顯示字節數

stat

stat 文件名 查看文件的具體存儲信息和時間等信息

cut

cut [參數] 文本 按列提取文本字符
-d  分隔符
-f  取的列數
cut -d: -f1 /etc/passwd 提取passwd文件中的第一列(用戶名)信息

diff

diff [參數] 文件... 比較多個文本文件的差別
--brief 比較兩個文件是否相同
    diff --brief 1.txt 2.txt
-c  詳細比較多個文件的差別之處
    diff -c 1.txt 2.txt

ln

硬連接至關於 cp -p + 同步更新
經過i節點判斷軟硬連接,軟連接在ls -l時會有箭頭指向->
硬連接不能針對目錄建立,不能跨分區建立

ln [參數] 源文件 目標文件
-s  建立軟連接

文件目錄管理

touch

touch [選項] [文件...]  建立空白文件或設置文件時間
touch -a    修改文件讀取時間(atime)
touch -m    修改文件修改時間(mtime)
touch -d "2019-09-01" 文件名   同時修改atime和mtime

mkdir

mkdir [選項] 目錄名  建立空白目錄
mkdir -p a/b/c  遞歸建立目錄

rmdir

rmdir 目錄名 刪除空目錄

cp

cp [選項] 源文件1,2,3 目標文件   複製文件或目錄
cp -p   保留原始文件的屬性
cp -d   若對象爲連接文件,保留連接文件的屬性
cp -r   遞歸複製(用於目錄)
cp -i   若是目標文件存在,則詢問是否覆蓋
cp -a   至關於-pdr

mv

mv [選項] [源文件] [目標路徑|目標文件名] 剪切文件或者文件重命名

rm

rm [選項] 文件  刪除文件或目錄
rm -f 文件    強制刪除,不顯示確認信息
rm -r 目錄名   刪除目錄和目錄裏的文件

dd

dd [參數] 按照指定大小和個數的數據塊來複制文件或者轉換文件
if  輸入的文件名
of  保存的文件名
bs  設置每一個塊的大小
count   設置要複製塊的個數
dd if=/ect/passwd of=newpass count 1 bs=560m    從passwd文件中取出一個560m的數據塊,保存成newpass
dd if=/dev/cdrom of=redhat7.0.iso   將光驅設備中的光盤製做成iso格式的鏡像文件

file

file [文件|目錄] 查看文件類型

打包壓縮與搜索

gzip

只能壓縮文件,不能壓縮目錄
不保留源文件
默認後綴 .gz

gzip 文件名    壓縮
-d 解壓縮      解壓縮
gunzip 壓縮包  解壓縮

tar

壓縮文件名 file.tar.gz 通常都是先tar而後gzip壓縮,tar命令配合-z使用

tar [選項] [壓縮後的文件名(配合-f使用)] [文件]     對文件壓縮或解壓
-c  建立壓縮文件
-x  解壓
-t  查看壓縮包中文件
-z  用Gzip壓縮或解壓
-f  指定文件名(壓縮或解壓時均可以使用)
-j  用bzip2壓縮或解壓
-v  顯示壓縮和解壓過程
-f  目標文件名
-P  保留原始權限和屬性
-p  使用絕對路徑來壓縮
-C  指定解壓到目錄
tar -czvf 文件名.gz 打包目錄   將目錄使用Gzip方式打包
tar -xzvf 壓縮包 -C 解壓目錄   將壓縮包解壓到指定目錄

zip

zip [選項] [壓縮後的文件名] [文件或目錄]  壓縮文件或目錄
-r  壓縮目錄

unzip

unzip [壓縮文件]    解壓zip文件

bzip2

bzip2 [選項] [文件]     壓縮文件
-k  壓縮後保留源文件

grep

grep [選項] [文件]  在文本中執行關鍵詞搜索並顯示匹配的結果
-b  將可執行文件(binary)看成文本文件來搜索
-c  僅顯示找到的行數
-i  忽略大小寫
-n  顯示行號
-v  反向選擇--僅列出沒有關鍵詞的行
grep 1111 1.txt 在1.txt中搜索1111

find

find [查找路徑] 尋找條件 操做 按照指定條件查找文件
-name   匹配名稱
-iname  不區分大小寫
-perm   匹配權限(mode爲徹底匹配,-mode爲包含便可)
-user   匹配全部者
-group  匹配全部組
-mtine -n +n    匹配修改內容的時間(-n是n天之內,+n是n天之前)
-atime -n +n    匹配訪問文件的時間
-ctime -n +n    匹配修改文件權限的時間
-nouser 匹配無全部者的文件
-nogroup    匹配無全部組的文件
-newer f1 f2    匹配比文件f1新可是比f2舊的文件
-a  兩個條件同時知足 find / -size+1600 -a -size -2000
-o  兩個條件知足一個便可
--type b/d/v/p/l/f  匹配文件類型(塊設備/目錄/字符設備/管道/連接文件/文本文件)
-inum   根據i節點查找
-size   匹配文件大仙(+50k是查找超過50k的文件,-50k是查找小於50k的文件,50是等於50k)
-prune  忽略某個目錄
-exec …… {} \;  後面跟用於進一步處理搜索結果的命令 find / -name inittab -exec ls {} \;
-ok …… {} \;    詢問是否執行,後面跟用於進一步處理搜索結果的命令 find / -name inittab -ok ls {} \;
find /etc -name "host*" 搜索etc目錄下全部以host開頭的文件
find / -perm -4000  搜索整個系統中權限中包括SUID權限的全部文件
find / -user mrhonest -exec cp -a {} /root/findfile/ \; 在整個文件系統中找出全部歸屬於mrhonest用戶的文件並複製到root/findfile目錄,({}表示find命令搜索出的每個文件)

locate

locate 文件名      搜索文件,基於資料庫查找文件,/tmp等臨時文件目錄的文件不會更新到資料庫中
-i  不區分大小寫
updatedb    更新資料庫,此命令直接使用,updatedb不是參數

which

which 命令        搜索命令所在目錄及別名信息

whereis

whereis 命令      搜索命令所在目錄及幫助信息位置

管道符,重定向,環境變量

輸入輸出重定向

標準輸入重定向(STDIN,文件描述符爲0):默認從鍵盤輸入,也能夠從其它文件或者命令中輸入
標準輸出重定向(STDOUT,文件描述符爲1):默認輸出到屏幕
錯誤輸出重定向(STDERR,文件描述符爲2):默認輸出到屏幕

  • 輸入重定向
命令 < 文件 將文件做爲命令的標準輸入
命令 << 分界符   從標準輸入中讀入,知道碰見分界符才中止
命令 < 文件1 > 文件2  將文件1做爲命令的標準輸入並將標準輸出到文件2
wc -w < 1.txt   把1.txt中的內容交給wc統計
  • 輸出重定向
命令 > 文件 將標準輸出重定向到一個文件中(清空原有的文件數據)
命令 2> 文件    將錯誤輸出重定向到一個文件中(清空原有文件的數據)
命令 >> 文件    將標準輸出重定向到一個文件中(追加到原有的內容後面)
命令 2>> 文件   將錯誤輸出重定向到一個文件中(追加到原有的內容後面)
命令 >> 文件 2>&1   將標準輸出與錯誤輸出共同寫入到文件中(追加到原來的內容後面)
命令 &>> 文件   同上,將標準輸出與錯誤輸出共同寫入到文件中(追加到原來的內容後面)

管道命令符

  • | 將前一個命令本來要輸出到屏幕的標準正常數據看成最後一個命令的標準輸入
grep "/sbin/nologin" /etc/passwd | wc -l    統計被限制登錄用戶的數量
ls -l /etc | more   用翻頁的形式查看/etc下的文件列表信息
echo "111111" | passwd --stdin root 一條命令修改root用戶密碼

命令行的通配符

*   匹配多個字符
    ?   匹配單個字符
    [0-9]   匹配0-9之間的單個數字字符
    [abc]   匹配a,b,c單個字符
    [a-z]   匹配a-z的單個字符

經常使用轉義字符

\   反斜槓:後面的變量變爲單純的字符串
''  單引號:轉義其中全部的變量爲單純的字符串
""  雙引號:保留其中的變量屬性,不進行轉義處理
``  反引號:把其中的命令執行後返回給結果
mrhonest = 5    定義變量
echo "$mrhonest"    輸出變量
echo '$mirhonest'   輸出$mrhonest

重要的環境變量

HOME    用戶的主目錄
SHELL   用戶在使用的shell解釋器名稱
HISTSIZE    輸出的歷史命令記錄條數
HISTFILESIZE    保存的歷史命令記錄條數
MAIL    郵件保存路徑
LANG    系統語言,語系名稱
PANDOM  生成一個隨機數字
PS1 Bash解釋權的提示符
PATH    定義解釋器搜索用戶執行的命令路徑
EDITOR  用戶默認的文本編輯器
WORKDIR=/HOME/WORK  建立變量
export WORKDIR  提高爲全局變量

VIM與Shell命令腳本

vim文本編輯器

  • 命令模式
i   輸入模式,光標當前位置
a   輸入模式,光標後覺得
o   輸入模式,光標下面插入一個空行
ESC 退出寫入模式
  • 輸入模式
dd  刪除(剪切)光標所在的整行
5dd 刪除(剪切)光標開始的5行
yy  複製光標所在的整行
5yy 複製光標處開始的5行
n   顯示搜索命令定位到的下一個字符串
N   顯示搜索命令定位到的上一個字符串
u   撤銷上一步的操做
p   將以前刪除(dd)或複製(yy)過的數據粘貼到光標後面
  • 末行模式
:w  保存
:q  退出
:q! 強制退出(放棄對文檔的修改內容)
:wq!    強制保存退出
:set nu 顯示行號
:set nonu   不顯示行號
:命令 執行該命令
:整數 跳轉到該行
:s/one/two  將光標所在行的第一個one替換成two
:s/one/two/g    將光標所在行的全部one替換成two
:%s/one/two/g   將全文中的全部one替換成two
?字符串    在文本中從下至上搜索該字符串
/字符串    在文本中從上到下搜索該字符串

配置Yum軟件倉庫

編寫Shell腳本

  • 運行

    bash shell.sh 執行sh腳本
  • 接收用戶的參數
$0  當前shell腳本程序的名稱
$#  參數的總數
$*  全部位置的參數值
%?  顯示上一次命令的執行返回值
$N  第N個參數的值
  • 判斷用戶的參數

    測試語句格式 [ 條件表達式 ] 條件表達式兩邊均有一個空格

    文件測試語句

    -d  測試文件是否爲目錄類型
    -e  測試文件是否存在
    -f  判斷是否爲通常文件
    -r  測試當前用戶是否具備權限讀取
    -w  測試當前用戶是否具備權限寫入
    -x  測試當前用戶是否具備權限執行

    邏輯測試語句

    &&  與
    ||  或
    !   非

    整數值比較語句
    ** 0 = true ** ** 非0的數字 = false **

    -eq 是否等於
    -ne 是否不等於
    -gt 是否大於
    -lt 是否小於
    -le 是否等於或小於
    -ge 是否大於或等於

    字符串比較語句

    =   比較字符串內容是否相同
    !=  比較字符串內容是否不一樣
    -z  判斷字符串內容是否爲空

    流程控制語句

  • if條件測試語句
    ​```shell

    if [ 表達式 ]
    then

    若是表達式成立,執行
    fi

    ​```shell
    if  [ 表達式 ]
    then
      若是表達式成立,執行
    esle
      表達式不成立時,執行
    fi
    if  [ 表達式 ]
    then
      若是表達式成立,執行
    elif [ 表達式 ]
      表達式成立時,執行
    else
      以上兩個表達式均不成立時,執行
    fi
  • for條件循環語句
for 變量名 in 取值列表
do
    命令序列
done
  • while條件循環語句
while 條件測試操做
do
    命令序列
done
  • case條件測試語句
case 變量值 in
模式1
    命令序列1
;;
模式2
    命令序列2
;;
    ……
*)
esac

計劃任務服務程序

  • 一次性計劃任務:今晚23:30開啓網站服務
at 23:30    設定任務時間
at>systemctl restart httpd  設定任務詳情
at>Ctrl+D結束編寫
at -l   查看任務
atrm 任務序號   刪除任務

echo "systemctl reatart httpd" | at 23:30 一條命令創建任務

  • 週期性計劃任務:每週一03:25分把/home/wwwroot目錄打包備份爲bacaup.tar.gz
crontab -e  建立,編輯週期任務
crontab -l  查看任務
crontab -u  編輯他人的計劃任務

分,時,日,月,星期,命令 任務格式
8,9,12 設置月份,表示8月,9月,12月
12-15 設置日期,表示12日到15日
/2 執行任務的間隔時間,每隔2分鐘執行一次
計劃任務中的"分"字段必須有數值,不能空或者是
號,"日"和"星期"字段不能同時使用

usage:  crontab [-u user] file
        crontab [-u user] [ -e | -l | -r ]
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)
        -s      (selinux context)

*/2 * * * * echodate>> $HOME>test.txt 每隔2分鐘輸出時間到文件

用戶身份與文件權限

用戶身份與能力

管理員UID爲0
系統用戶UID爲1-999
普通用戶UID從1000開始
用戶組號碼:GID

useradd

useradd [選項] 用戶名    建立新用戶
-d  指定用戶的家目錄(默認爲/home/username)
-e  帳號到期時間,格式爲:YYYY-MM-DD
-u  指定用戶的默認UID
-g  指定一個初始的已存在的用戶基本組
-G  指定一個或多個擴展用戶組
-s  指定該用戶默認的shell解釋器

groupadd

`groupadd [選項] 組名   建立用戶組`

usermod

usermod [選項] 用戶名    修改用戶屬性
-c  填寫用戶帳戶的備註信息
-d -m   -d和-m連用,可從新指定用戶的家目錄並自動吧舊的數據轉移過去
-e  帳戶到期時間,格式爲:YYYY-MM-DD
-g  變動所屬用戶組
-G  變動擴展用戶組
-L  鎖定該用戶禁止其登錄系統
-U  解鎖用戶,容許登錄系統
-s  變動默認終端
-u  修改用戶的UID

passwd

passwd [選項] [用戶名]   修改用戶密碼,過時時間,認證信息等 
-l  鎖定用戶,禁止登錄
-u  解鎖用戶,容許登錄
--stdin 容許經過標準輸入修改用戶密碼,如 echo "newpassword" | passwd --stdin username
-d  用戶可用空密碼登錄系統
-e  強制用戶在下次登陸時修改密碼
-S 顯示用的密碼是否唄鎖定,以及密碼所採用的加密算法名稱

userdel

userdel [選項] 用戶名    刪除用戶
-f  強制刪除用戶
-r  同時刪除用戶及家目錄

文件權限與歸屬

表明符號 權限 對文件的含義 對目錄的含義
r 能夠查看文件內容 能夠列出目錄中的內容
w 能夠修改文件內容 能夠在目錄中建立,刪除文件
x 執行 能夠執行文件 能夠進入目錄
  • : 普通文件
    d : 目錄文件
    l : 連接文件
    b : 塊設備文件
    c : 字符設備文件
    p : 管道文件
  • 權限分配 文件全部者 文件所屬組 其餘用戶

    r:4 讀
    w:2 寫
    x:1 執行

  • SUID

    SUID是一種對二進制程序進行設置的特殊權限,可讓二進制程序的執行者臨時擁有屬主的權限(僅對擁有執行權限的二進制程序有效)

  • SGID

    讓執行者臨時擁有屬組的權限(對擁有執行權限的二進制程序進行設置)
    在某個目錄中建立的文件自動繼承該目錄的用戶組(只能夠對目錄進行設置)

  • SBIT

    設置SBIT(粘滯位|保護位),可確保用戶只能刪除本身的文件
    chmod -R o+t 文件|文件夾 設置SBIT特殊權限

    chmod

    -R 遞歸

chmod [參數] 權限 文件或目錄名    設置文件或目錄權限
chmod -R o+t 文件|文件夾 設置SBIT特殊權限
chmod [{ugoa}{+-=}{rwx}] 文件或目錄
chmod u+w,g-w,o=rwx 文件或文件名
chmod mode=777 文件或目錄

chown

-R 遞歸
只有管理員才能夠執行

chown [參數] 全部者:所屬組 文件或目錄名   設置文件或目錄的全部者和所屬組
chown username 文件或目錄    將目錄的全部者改成username

chgrp

chgrp [參數] 用戶組 文件或目錄    更改文件或目錄的所屬組
-R 遞歸

umask

默認新建的文件(非目錄)沒有x執行權限

umask [參數] [缺省權限值]  顯示,設置文件的缺省權限
-S  以rwx形式顯示
## 文件的隱藏屬性
+ chattr
​```shell
chattr [+|-][參數] 文件 設置文件的隱藏權限
i   沒法對文件進行修改,若對美劇設置了該參數,則僅能修改其中的子文件內容,不能新建或刪除文件
a   僅容許補充(追加)內容,沒法覆蓋/刪除內容(Append Omy)
S   文件內容在變動後當即同步到硬盤(sync)
s   完全從硬盤中刪除,不可恢復(用0填充原文件所在硬盤區域)
A   再也不修改這個文件或目錄的最後訪問時間(atime)
b   再也不修改文件或目錄的存取時間
D   檢查壓縮文件中的錯誤
d   使用dump命令備份時忽略本文件/目錄
c   默認將文件或目錄進行壓縮
u   當刪除該文件後依然保留其在硬盤中的數據,方便往後恢復
t   讓文件系統支持尾部合併(tail-merging)
X   能夠直接訪問壓縮文件中的內容
  • lsattr

    lsattr [參數] 文件 顯示文件的隱藏權限

    文件訪問控制列表

  • setfacl

    setfacl [參數] 文件名稱 管理文件的ACL(訪問控制權限)規則
    -R 遞歸設置,針對目錄
    -m 針對普通文件
    -b 刪除ACL規則
    setcacl -Rm u:mrhonest:rwx /root 設置mrhonest對root目錄的rwx權限
    dr-wrwx---+ +表示該文件已經設置了ACL
    ```
  • getfacl
    getfacl 文件名稱 顯示文件上設置的ACL信息

    su和sudo

  • su
    su [-] 用戶名 切換用戶身份,-表明把環境表裏信息也變動爲新用戶的相應信息
  • sudo
    shell sudo [參數] 命令名稱 給普通用戶提供額外的權限來完成本來root管理員才能完成的任務 -h 列出幫助信息 -l 列出當前用戶可執行的命令 -u用戶名或UID值 以指定的用戶身份執行命令 -k 狀況密碼的有效時間,下次執行sudo時須要再次進行密碼認證 -b 在後臺執行指定的命令 -p 更改詢問密碼的提示語
  • visudo

    存儲結構與磁盤劃分

    常見的目錄名稱以及相應內容

  • FHS
  • 絕對路徑 以根目錄開始
  • 相對路徑 以當前路徑開始

    /boot 開機所需文件--內核,開機菜單以及所需配置文件等
    /dev 以文件形式存聽任何設備與接口
    /etc 配置文件,系統內全部採用默認安裝方式的服務的配置文件所有保存在這個目錄中,如用戶帳戶密碼,服務啓動腳本,經常使用服務的配置文件等
    /home 用戶家目錄
    /bin 存放單用戶模式下還能夠操做的命令,全部用戶都可以執行
    /sbin 保存和系統環境設置相關的命令,只有超級用戶可使用,部分命令普通用戶容許查看
    /usr/bin 存放系統命令的目錄,全部用戶均可以執行,這些命令和系統啓動無關,可是在單用戶模式下不能執行
    /usr/sbin 存放根文件系統沒必要要的系統管理命令,例如多數服務程序
    /lib 開機過程當中須要的命令,系統調用的函數庫保存位置
    /media 用於掛在設備文件的目錄,建議掛載軟盤,光盤
    /opt 放置第三方的軟件,不建議使用,建議安裝到/usr/local中
    /root 系統管理員的家目錄
    /srv 一些網絡服務的數據文件目錄,一些系統服務啓動後,在這個目錄保存所需的數據
    /tmp 任何人都可使用的"共享"臨時目錄
    /proc 虛擬文件系統,列入系統內核,進程,外部設備及網絡狀態等
    /usr/local 用戶自行安裝的軟件
    /usr/sbin linux系統開機時不會使用到的軟件/命令/腳本
    /usr/share 幫助與說明文件,也能夠放置共享文件
    /var 動態數據保存目錄,主要存放動態變化的文件,如日誌等
    /lost+found 當文件系統發生錯誤時,將一些丟失的文件片斷存在在這裏,這個目錄只在每一個分區中出現
    /mnt 掛載目錄,建議掛載U盤,移動硬盤等
    /misc 掛載目錄,建議掛載NFS服務的共享目錄
    /proc 虛擬文件系統,存在內存中,存在硬件信息
    /sys 虛擬文件系統,存放內核相關信息
    /usr 系統軟件資源目錄,相似c:/windows文件夾

    物理設備的命名規則

    IDE設備 /dev/hd[a-d]
    SCSI/STAT/U盤 /dev/sd/[a-p]
    軟驅 /dev/fd[0-1]
    打印機 /dev/lp[0-15]
    光驅 /dev/cdrom
    鼠標 /dev/mouse
    磁帶機 /dev/st0或/dev/ht0

  • 主分區或擴展分區的編號從1開始到4結束
  • 邏輯分區從編號5開始

    文件系統與數據資料

    Ext3 是一款日誌文件系統,可以在系統異常宕機時避免文件系統資料丟失,並能自動修復數據的不一致與錯誤
    Ext4 Ext3的改進版本,支持的存數容量高達1EB,可以有無限多的子目錄,Ext4文件系統可以批量分配block塊,提升了讀寫效率
    XFS 是一種高性能的日誌文件系統,最大支持存儲容量18EB

  • super block 硬盤地圖

    掛載硬件設備

  • mount
mount 文件系統 掛載目錄     掛載文件系統
-a  掛載全部在/etc/fstab中定義的文件系統
-t  指定文件系統的類型
mount /dev/sdb2 /backup 把設備/dev/sdb2掛載到/backup目錄
  • etc/fstab

    ** 設備文件 掛載目錄 格式類型 權限選項 是否備份 是否自檢**

    設備文件 通常爲設備的路徑+設備名稱,也能夠寫惟一的識別碼(UUID)
    掛載目錄 指定要掛載到的目錄,需掛載前建立好
    格式類型 指定文件系統的格式,如Ext3,Ext4,XFS,SWAP,iso9600(光盤設備)等
    權限選項 若設備爲defaults,則默認權限問:rw,suid,dev,exec,auto,mouser,async
    是否備份 若爲1則開機後使用dump進行磁盤備份,爲0則不備份
    是否自檢 若爲1則開機後自動進行紫盤自檢,爲0則不自檢

  • umount

    umount [掛載點/設備文件] 撤銷已掛載設備文件,如umount /dev/sdb2

    添加硬盤設備

  • fdisk
fdisk [磁盤名稱]    管理磁盤分區
m       查看所有可用的參數
n       添加新的分區
d       刪除某個分區信息
l       列出全部可用的分區類型
t       該表某個分區的類型
p       查看分區信息
w       保存並退出
q       不保存直接退出
  • mkfs.*

    mkfs.* 磁盤名稱 按照*的文件系統格式格式化磁盤
  • du
du [選項] [文件]    查看文件數據佔用量
du -sh /*           查看系統根目錄下全部文件佔用多大的硬盤空間

添加交換分區

mkswap 目錄名      格式化交換分區
swapon 目錄名      將SWAP分區掛載到系統中

磁盤容量配額

  • quota

    軟限制 當達到軟限制時會提示用戶,但仍容許用戶在限定的額度內繼續使用
    硬限制 當達到硬限制時會提示用戶,並強制終止用戶的操做

  • xfs_quota
xfs_quota [參數] 配額 文件系統
-c  以參數的形式設置要執行的命令
-x  專家模式
xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=2 ihard=6 tom' /boot 設置用戶tom對/boot目錄容量的配額:軟限制3MB,硬限制6MB,建立文件數量的軟限制3個,硬限制6個
  • edquota
edquota [參數] [用戶]   編輯用戶的quota配額限制
-u  針對用戶設置
-g  針對用戶組設置

軟連接 硬連接

硬連接(hard link) "指向源文件inode的指針",不能跨分區對目錄文件進行連接
軟連接(符號連接[symbolic link]) 僅包含連接文件的路徑名,可跨文件系統進行連接+ in

in [選項] 目標 連接文件       建立連接文件
-s        建立軟連接"符號連接",不帶-s參數默認建立硬連接
-f        強制建立文件或目錄連接
-i        覆蓋前詢問
-v        顯示建立連接的過程

使用RAID與LVM磁盤陣列技術

RAIL(獨立冗餘磁盤列陣)

RAID 0

RAIL 0技術可以有效的提高硬盤數據的吞吐速度,但不具有數據備份和錯誤修復能力

RAID 1

將數據同時寫入到多塊硬盤設備上(鏡像或備份),當其中某一塊應硬盤發生故障後,通常當即自動以熱交換的方式來恢復數據的正常使用

RAID 5

把硬盤設備的數據奇偶校驗信息保存到其它硬盤設備中

RAID 10

RAID 1 + RAID 0的"組合體",該技術至少須要4塊硬盤

部署磁盤列陣

  • mdadm
mdadm [模式] <RAID設備名稱> [選項] [成員設備名稱] 管理linux系統中的軟件RAID硬盤列陣
-a  檢測設備名稱
-n  指定設備數量
-l  指定RAID級別
-C  建立
-v  顯示過程
-f  模擬設備損壞
-r  移除設備
-Q  查看摘要信息
-D  查看詳細信息
-S  中止RAID磁盤列陣
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde    -C表明建立一個RAID陣列卡,-v顯示建立過程,後面跟上設備名/dev/md0 ,-a yes表明自動建立設備文件,-n4 表明使用4塊硬盤來部署這個RAID磁盤列陣,-l 10表明使用RAID 10方案,最後加上4塊硬盤設備的名稱
mkfs.ext4 /dev/md0  將製做好的RAID磁盤列陣格式化爲ext4格式
mkdir /RAID 創建目錄,建立掛載點
mount /dev/md0 /RAID    將硬盤設備進行掛載
mdadm -D /dev/md0   查看磁盤列陣的相信信息
echo "dev/md0 /RAID ext defaults 0 0" >> /etc/fatab 將掛載信息寫入配置文件

損壞磁盤列陣及修復

mdadm /dev/md0 -f /dev/sdb 在磁盤陣列中移除/dev/sdb磁盤

磁盤列陣+備份盤

mdam -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde    建立RAID 5磁盤列陣+備份盤 ,-n 3表明建立這個列陣所需的硬盤數,-l 5表明列陣的級別,-x 1表明有一塊備份盤
mlfs.ext4 /dev/md0  格式化

LVM(邏輯卷管理器)

部署邏輯卷

經常使用LVM部署命令
|功能/命令|物理卷管理|卷組管理|邏輯卷管理|
|----|----|----|----|
|掃描|pvscan|vgscan|lvscan|
|創建|pvcreate|vgcreate|lvcreate|
|顯示|pvdisplay|vgdisplay|lvdisplay|
|刪除|pvremove|vgremove|lvremove|
|擴展| |vgextend|lvextend|
|縮小||vgreduce|lvreduce|

pvcreate /dev/sdb /dev/sdc  讓新添加的涼快硬盤設備支持LVM技術
vgcreate storage /dev/sdb /dev/sdc  把兩塊硬盤設備加入到storage卷組中
lvcreate -n -vo -l 37 storage   切割出一個約爲150MB的邏輯卷設備 -l 37等於-L 150M
msfs.ext4 /dev/storage/vo   把生成好的邏輯卷格式化
mount /dev/storage/vo 目錄名   掛載

擴容邏輯卷

擴容前記得卸載設備和掛載點的關聯

umount  目錄名     卸載掛載
lvextend -L 290M /dev/storage/vo    將vo擴展至290MB
e2fsck -f /dev/storage/vo   檢查硬盤完整性
resize2fs /dev/storage/vo   重置硬盤容量
mount -a    從新掛載便可

縮小邏輯卷

umount 目錄名  卸載掛載
e2fsck -f /dev/storage/vo   檢查硬盤完整性
resize2fs /dev/storage/vo 128M  把邏輯卷vo的容量減少到128MB
mount -a    掛載

邏輯卷快照

快照的容量必須等於邏輯卷的容量
快照僅一次有效,一旦執行懷遠操做後則會當即自動刪除

vgdisplay   查看卷組的信息
lvcreate -L 120M -s -n SNAP /dev/storage/vo -s參數生產快照,-L指定大小
umount 目錄名  先卸載掛載,此部是爲了驗證是否能恢復
lvconvert --merge /dev/storage/SNAP 恢復vo的快照
monut -a    從新掛載

刪除邏輯卷

umonut 目錄名  卸載掛載
vim /etc/fstab  編輯fatab文件,刪除配置文件中永久生效的設備參數(掛載的設備)
lvremove /dev/storage/vo    刪除邏輯卷設備,須要輸入y來確認操做
vgremove storage    刪除卷組,此處只寫卷組名稱便可,不須要設備的絕對路徑
pvremove /dev/sdb /dev/sdc  刪除物理卷設備

iptables與firewalld防火牆

iptables

策略與規則鏈

在進行路由選擇前處理數據包(PRERPUTING)
處理流入的數據包(INPUT)
處理流出的數據包(OUTPUT)
處理轉發的數據包(FORWARD)
在進行路由選擇後處理數據包(POSTROUTING)

  • ACCEPT 容許流量經過
  • REJECT 拒絕流量經過,在拒絕流量後在回覆一條"您的信息收到,可是被扔掉",發送方會看到端口不可達的響應
  • LOG 記錄日誌信息
  • DROP 拒絕流量經過(將流量直接丟棄,並不響應它),發送方顯示響應超時,默認規則鏈的拒絕動做只能是這個

    iptables中的基本命令參數

-P  設置默認策略
-F  清空規則鏈
-L  查看規則鏈
-A  在規則鏈的末尾加入新規則
-I num  在規則鏈的頭部加入新規則
-D num  刪除某一條規則
-s  匹配來源地址IP/MASK,加歎號"!"表示除這個IP外
-d  匹配目標地址
-i 網卡名稱 匹配從這塊網卡流入的數據
-o 網卡名稱 匹配從這塊網卡流出的數據
-p  匹配協議,如TCP,UDP,ICMP
--dport num 匹配目標端口號
--sport num 匹配來源端口號
iptables -L     查看防洪牆規則鏈
iptables -F     清空已有的防火牆規則鏈
iptables -P INPUT DROP  把INPUT規則鏈的默認策略設置爲拒絕
iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT    將INPUT規則鏈設置爲只容許指定網段的主機訪問本機的22端口,在INPUT默認規則上添加
iptables -I INPUT -p tcp --dport 12345 -j REJECT    禁止全部人經過tcp協議訪問本機12345端口 
iptables -I INPUT -p udp --dport 12345 -j REJECT    禁止全部人經過udp協議訪問本機12345端口 
iptables -A INPUT -p tcp --dport 1000:102 -j REJECT 向INPUT規則鏈中添加拒絕全部主機訪問本機1000-1024端口的策略
service iptables save   防火牆規則永久生效(重啓後也不失效)

firewalld

firewalld中經常使用的區域名稱及策略規則
|區域|默認策略規則|
|--|--|
|trusted|容許全部的數據包|
|home|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh,mdns,ipp-client,amba-client與dhcpv6-client服務相關,則容許流量|
|internal|等同於home區域|
|work|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh,ipp-client,dhcpv6-client服務相關,則容許流量|
|public|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh,dhcpv6-client服務相關,則容許流量|
|external|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh服務相關,則容許流量|
|dmz|拒絕流入的流量,除非與流出的流量相關,而若是流量與ssh服務相關,則容許流量|
|block|拒絕流入的流量,除非與流出的流量相關|
|drop|拒絕流入的流量,除非與流出的流量相關|

終端管理工具

firewalld-cmd命令中使用的參數以及做用
|參數|做用|
|-|-|
|--get-default-zone|查詢默認的區域名稱|
|--get-default-zone= <區域名稱> |設置默認的區域,使其永久生效|
|--get-zones|顯示可用的區域|
|--ger-services|顯示預先定義的服務|
|--get-active-zones|顯示當前正在使用的區域與網卡名稱|
|--add-source=|將源自此IP或子網的流量導向指定區域|
|--add-interface= <網卡名稱> |將源自該忘啦的全部流量都導向某個指定區域|
|--remove-source=|再也不將源自此IP或子網的流量導向某個指定區域|
|--change-interface= <網卡名稱> |將某個網卡與區域進行關聯|
|--list-all|顯示當前區域的網卡配置參數,資源,端口以及服務等信息|
|--list-all-zones|顯示全部區域的網卡怕配置參數,資源,端口以及服務等信息|
|--add-service= <服務名> |設置默認區域容許該服務的流量|
|--add-port= <端口號 協議> |設置默認區域容許該端口的流量|
|--remove-service= <服務名> |設置默認區域再也不容許該服務的流量|
|--remove-port= <端口號 協議> |設置默認區域再也不容許該端口的流量|
|--reload|讓"永久生效"的配置規則當即生效,並覆蓋當前的配置規則|
|--panic-on|開啓應急情況模式|
|--panic-off|關閉應急情況模式|

firewalld-cmd --get-default-zone    查看firewalld服務當前所使用的區域
firewalld-cmd --get-zone-of-interface=eno16777728   查看eno16777728網卡在firewalld服務中的區域
firewalld-cmd --permanent --zone=external --change-interface=eno16777728    把friewalld服務中的eno16777728網卡的默認區域修改爲external,並在系統重啓後剩下

圖形管理工具

iptables不錯

服務的訪問控制列表

  • TCPWrappers

    使用ssh服務管理遠程主機

    配置網絡服務

    配置網絡參數

  • nmtui

    建立網絡會話

  • nmcli

    綁定兩塊網卡

    遠程控制服務

    配置sshd服務

    基於口令的驗證
    基於密鑰的驗證
    sshd服務配置文件中包含的參數以及做用/etc/ssh/sshd_config
    |參數|做用|
    |-----|-----|
    |port 22|默認的sshd服務端口|
    |listenAddress 0.0.0.0|設置sshd服務器監聽的ip地址|
    |protocol 2|ssh協議的版本號|
    |HostKey /etc/ssh/ssh_host_key|ssh協議版本爲1時,DES私鑰存放的位置|
    |HostKey /etc/ssh/ssh_host_res_key|ssh協議版本爲2時,RSA私鑰存放的位置|
    |HostKey /etc/ssh/ssh_host_dsa_key|ssh協議版本爲2時,DEA私鑰存放的位置|
    |PermitRootLogin yes|是否容許root管理員直接登錄|
    |StrictModes yes|當遠程用戶的私鑰改變時直接拒絕鏈接|
    |MaxAuthTries 6|嘴打密碼嘗試次數|
    |MaxSessions 10|最大終端數|
    |PasswordAuthentication yes|是否容許密碼驗證|
    |PermitEmptyPasswords no|是否容許空密碼登錄|
    ssh [參數] ip地址 ssh鏈接

    安全密鑰驗證

ssh-keygen  在客戶端生成"密鑰樹"
ssh-copy-id 服務器ip   把客戶端主機中生產的公鑰文件傳送至遠程主機

遠程傳輸命令

  • scp
    scp [參數] 本地文件 遠程帳戶@遠程IP地址:遠程目錄
    |參數|做用|
    |---|---|
    |-v|顯示詳細的鏈接進度|
    |-p|指定遠程主機的sshd端口|
    |-r|用於傳輸文件夾|
    |-6|使用IPV6協議|
scp /root/q.txt 192.168.1.1:/home   將本地q.txt傳到192.168.1.1的home目錄,使用遠程的root帳號
scp 192.168.1.1:/etc/passwd /root   將遠程的passwd文件下載到本機root目錄下

不間斷會話服務

  • screen
    |參數|做用|
    |--|--|
    |-S|新建會話|
    |-d|將會話"離線"|
    |-r|恢復指定會話|
    |-x|恢復全部會話|
    |-ls|查看全部會話|
    |-wipe|刪除沒法使用的會話|
    |exit|退出會話|

    Apache服務部署靜態網站

    配置服務文件參數

    配置文件的名稱 存放位置
    服務目錄 /etc/httpd
    主配置文件 /etc/httpd/conf/httpd.conf
    網站數據目錄 /var/www/httml
    訪問日誌 /var/log/httpd/access_log
    錯誤日誌 /var/log/httpd/error_log

    註釋行信息
    全局配置
    區域配置
    |參數|用途|
    |----|----|
    |ServerRoot|服務目錄|
    |ServerAdmin|管理員郵箱|
    |User|運行服務的用戶|
    |Group|運行服務的用戶組|
    |ServerName|網站服務器的域名|
    |DocumentRoot|網站數據目錄|
    |Directory|網站數據目錄的權限|
    |Listen|監聽的ip地址與端口|
    |DirectoryIndex|默認的索引頁頁面|
    |ErrorLog|錯誤的日誌文件|
    |Customlog|訪問日誌文件|
    |Timeout|網頁超市時間,默認爲300秒|

    我的用戶主頁功能

htpasswd -c /etc/httpd/passwd mrhonest  生成範文mrhonest我的主頁所須要的密碼
配置401認證 見書228頁

虛擬主機功能

vim /etc/httpd/conf/httpd.conf 編輯配置文件,添加虛擬主機,格式以下:

<VirtualHost 192.168.1.1:80>
DocumentRoot /home/wwwrorr/www1
ServerName www.mrhonest.com
<Directory /home/wwwroot/www1>
AllowOVerride None
Require all granted
</VirtualHost>

基於主機域名

基於端口號

Apache的訪問控制

使用vsftpd服務傳輸文件

文件傳輸協議

主動模式:ftp服務主動向客戶端發起鏈接請求
被動模式:ftp服務器等待客戶端發起鏈接請求(ftp的默認工做模式)
vsftpd服務程序經常使用的參數以及做用
|參數|做用|
|----|----|
|listen=[YSE|NO]|是否以獨立運行的方式監聽服務|
|listen_address=IP|設置要監聽的IP地址|
|listen_port=21|設置ftp服務的監聽端口|
|download_enable=[YES|NO|是否容許下載文件|
|userlist_enable=[YES|NO] userlist_deny=[YES|NO]|設置用戶列表爲"容許"仍是"禁止"操做|
|max_clients=0|最大客戶端鏈接數,0爲不限制|
|max_per_ip=0|同一IP地址的最大鏈接數,0爲不限制|
|anonymous_enable=[YES|NO]|是否容許匿名用戶上傳文件|
|anon_upload_enable=[YES|NO]|是否容許匿名用戶上傳文件|
|anon_umask=022|匿名用戶上傳文件的umask值|
|anon_root=/var/ftp|匿名用戶的ftp根目錄|
|anon_mkdir_write_enable=[YES|NO]|是否容許匿名用戶建立目錄|
|anon_other_write_enable=[YES|NO]|是否開放匿名用戶的其它寫入權限(包括重命名,刪除等操做權限)|
|anon_max_rate=0|匿名用戶的最大傳輸速率(字節/秒),0爲不限制|
|local_enable=[YES|NO]|是否容許本地用戶登錄|
|local_umask=022|本地用戶上傳文件的umask值|
|locao_root=/var/ftp|本地用戶的ftp目錄|
|chroot_local_user=[YES|NO]|是否將用戶權限禁錮在ftp目錄,以確保安全|
|local_max_rate=0|本地用戶最大的傳輸速率(字節/秒),0爲不限制|

vsftpd服務

匿名開放模式
本地用戶模式
虛擬用戶模式

匿名開放模式

默認目錄就/var/ftp目錄
245頁

本地用戶模式

/etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers 裏存放着禁止登錄的用戶名
默認目錄是用戶家目錄
249頁

虛擬用戶模式

虛擬用戶數據文件須要建立 奇數行爲用戶名,偶數行爲密碼
252頁

vim /etc/vsftpd/user.txt
db_load -T -t hash -f user.txt user.db  將用戶文件內容hash加密
useradd -d 虛擬用戶ftp目錄 -s /sbin.nologin 虛擬用戶名 建立一個禁止登錄的用戶,指定其家目錄(ftp目錄)

簡單文件傳輸協議

  • tftp

    UDP協議 無需認證
    tftp ip 創建tftp鏈接
    |命令|做用|
    |----|---|
    |?|幫助信息|
    |put|上傳文件|
    |get|下載文件|
    |verbose|顯示詳細的處理信息|
    |status|顯示當前的狀態信息|
    |binary|使用二進制進行傳輸|
    |ascii|使用ASCII碼進行傳輸|
    |timeout|設置重傳的超時時間|
    |quit|退出|
    256頁

    使用samba或NFS實現文件共享

    Samba文件共享服務

    不一樣操做系統之間文件共享
    Samba服務程序中的參數以及做用
    |[global]|參數|做用|
    |----|----|----|
    ||workgroup=MYGROUP|工做組名稱|
    ||server string = Samba Server Version %v|服務器介紹信息,參數%v爲顯示SMB版本號|
    ||log file=/var/log/samba/log.%m|定義日誌文件的存放位置與名稱,參數%m爲來訪的主機名|
    ||max log size=50|定義日誌文件的最大容量爲50KB|
    ||security=user|安全驗證的方式,總共分4種, :
    share:來訪主機無需驗證口令
    user:需驗證來訪主機提供的口令後才能夠訪問
    server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理帳戶)
    domain:使用域控制器進行身份驗證|
    ||passdb backed=tdbsan|定義用戶後臺的類型,共3種:
    smbpasswd:使用smbpasswd命令爲系統用戶設置samba服務程序的密碼
    tdbsam:穿件數據庫文件並使用pdbedit命令創建samba服務程序的密碼
    ldapsam:基於LDAP服務進行帳戶驗證|
    ||load printers=yes|設置在samba服務啓動時是否共享打印機設備|
    ||cups options=raw|打印機的選項|
    |[homes]||共享參數|
    ||comment=Home Directories|描述信息|
    ||browseable=no|指定共享信息是否在"網上鄰居"中可見|
    ||writable=yse|定義是否能夠執行寫入操做,與"read only"相反|
    |[printers]||打印機共享參數|

    配置共享資源

    用於設置Samba服務程序的參數以及做用:/etc/samba/smb.conf
    |參數|做用|
    |--|--|
    |[database]|共享名稱爲database|
    |comment = Do not arbitrarily modify the database file|警告用戶不要隨意修改數據庫|
    |path = /home/database|共享目錄爲/home/database|
    |public = no|關閉"全部人可見"|
    |writable = yes|容許寫入操做|
pdbedit [選項] 帳戶     管理SMB服務程序的帳戶信息數據庫
-a 用戶名      創建Samba帳戶
-x 用戶名      刪除samba帳戶
-L      列出帳戶列表
-Lv     列出帳戶詳細信息的列表
pdbedit -a -u mrhonest      爲系統帳號mrhonest建立smb帳號
mkdir /home/database    建立用於共享資源的文件目錄
chown -Rf mrhonest:mrhonest /home/database  設置共享資源的文件目錄的全部者和全部組
264頁

windows訪問文件共享服務

\\ip 鏈接文件共享服務器

linux訪問文件共享服務

268頁

yum install cifs-utils  安裝cifs-utils
vim auth.smb    編輯配置文件
username=mrhonest   目標用戶名
password=222222     目標密碼
domain=MUGROUP      目標所在組
chmod 600 auth.smb  因爲密碼明文,將文件設置只有root能夠讀寫
mkdir /localdatabae 本機創建用於掛載目標的目錄
vim /etc/fstab      編輯配置文件
//目標ip/databse /localdatabase cifs credenttials=root/auth.smb 0 0   寫入自動掛載信息

NFS(網絡文件系統)

linux之間文件共享
yum install nfs-utils 安裝NFS服務
NFS配置文件參數:/etc/exports,格式"共享目錄的路徑 容許放的NFS客戶端(默認權限參數)"
|參數|做用|
|----|----|
|ro|只讀|
|rw|讀寫|
|root_squash|當NFS客戶端以root管理員訪問時,映射爲NFS服務的的匿名用戶|
|no_root_squash|當NFS客戶端以root管理員訪問時,映射爲NFS服務器的root管理員|
|all_squash|不管NFS客戶端使用什麼帳戶訪問,均映射爲NFS服務器的匿名文虎|
|sync|同時將數據寫入到內存與硬盤中,保證不丟失數據|
|async|優先將數據保存到內存,而後在寫入硬盤,這樣效率更高,但可能會丟失數據|

vim /etc/exports
/nfsfile 192.168.1.*(rw,sync,root_squash)   //IP地址與權限之間沒有空格
systemctl restart rpcbind   //nfs須要RPC服務,用於將NFS服務器的ip地址和端口等信息發送給客戶端
systemctl enable rpcbind    將rpc(遠程過程調用)服務加入開機自啓
systemctl start nfs-server  啓動nfs服務
systemctl enable nsf-server 加入開機自啓

客戶端showmount命令可用的參數和做用
|參數|做用|
|----|----|
|-e|顯示NFS服務器的共享列表|
|-a|顯示本機掛載的文件資源狀況|
|-v|顯示版本號|
|-t|指定掛載的文件系統類型|

showmount -e 192.168.10.10  顯示目標ip的共享列表
mkdir /nfsfile      創建用於掛載目標共享文件的目錄
mount -t nfs 192.168.10.10:/nfsfile /nfsfile    將目標ip的共享目錄nfsfile掛載到本地nfsfile目錄
## autofs自動掛載服務
掛載配置文件:/etc/auto.master格式:  "掛載目錄   子配置文件" 詳見273頁
​```shell
yum install autofs 
vim /etc/auto.master    編輯配置文件
/media /etc/iso.misc    編輯內容
vim /etc/iso/misc       編輯子配置文件
iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom     編輯內容
systemctl enable sutofs     加入開機自啓

使用BIND提供域名解析服務

DNS域名解析服務

279頁

主服務器
從服務器
緩存服務器

安裝bind服務程序

bind服務配置文件
|文件|文件名|做用|
|----|----|---|
|主配置文件|/etc/named.conf|定義bind服務程序的運行|
|區域配置文件|/etc/named.rfc1912.zones|保存域名和IP地址對應關係的所在位置|
|數據配置文件目錄|/var/named|保存域名和IP地址真是對應關係的數據配置文件|
yum install bind-chroot 安裝bind和chroot擴展包

正向解析實驗

281頁

反向解析實驗

283頁

部署從服務器

285頁

安全的加密傳輸

286頁

部署緩存服務器

290頁

分離解析技術

293頁

使用DHCP動態管理主機地址

動態主機配置協議

299頁

相關文章
相關標籤/搜索