10.07.2015 Views

Linux System 與國際證照 - 系統管理王德譽

Linux System 與國際證照 - 系統管理王德譽

Linux System 與國際證照 - 系統管理王德譽

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Linux</strong> <strong>System</strong> 與 國 際 證 照Department of Computer Science and Information EngineeringChaoyang University of TechnologyTaichung, Taiwan, Republic of ChinaInstructor: De-Yu Wang ( 王 德 譽 )E-mail: dywang@mail.cyut.edu.twPhone: (04)23323000 ext 4538Office: E738♣ ✉ ✈ ✇ 1 2 3 4 5 6 7 7April 23, 2014


• Instructor: De-Yu Wang1. Email: dywang@csie.cyut.edu.tw2. Homepage: http://dywang.csie.cyut.edu.tw3. Phone: (04)23323000 ext 45384. Office: E738• 參 考 資 料1. RedHat Documentation2. RedHat Customer Protal3. 鳥 哥 的 <strong>Linux</strong> 私 房 菜4. 吳 賢 明 , 林 永 松 , 謝 宗 憲 , 林 均 燁 , 張 夏 青 ,”Unix 學 習 手 冊 -以 <strong>Linux</strong> 為 例 ”, 普 林 斯 頓 國 際 有 限 公 司 。5. 王 垠 <strong>Linux</strong> 長 篇 論 i6. NetAdmin 網 管 人 雜 誌7. LDAPDe-Yu Wang CSIE CYUTi


De-Yu Wang CSIE CYUTii


CONTENTSCONTENTSContents1 簡 介 11.1 完 全 用 <strong>Linux</strong> 工 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 <strong>Linux</strong> 的 歷 史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 <strong>Linux</strong> 系 統 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 <strong>Linux</strong> 的 特 性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.5 學 習 <strong>Linux</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.6 Free software & Open source . . . . . . . . . . . . . . . . . . . . . . . 51.7 <strong>Linux</strong> vs Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 <strong>Linux</strong> 安 裝 112.1 Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 認 識 硬 體 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 安 裝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4 虛 擬 機 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 文 字 命 令 213.1 登 入 系 統 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 指 令 下 達 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3 正 確 的 關 機 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4 線 上 求 助 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.5 基 礎 指 令 操 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 vi 編 輯 器 314.1 vi 與 vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2 vi 的 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.3 vim 的 額 外 功 能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.4 vi 實 機 練 習 題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 正 規 表 示 法 與 管 線 處 理 455.1 基 礎 正 規 表 示 法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.2 延 伸 正 規 表 示 法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.3 資 料 流 重 導 向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.4 管 線 命 令 (pipe) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53De-Yu Wang CSIE CYUTiii


CONTENTSCONTENTS6 基 本 的 系 統 設 定 576.1 <strong>Linux</strong> 網 路 設 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.2 KVM Network Bridge Setup . . . . . . . . . . . . . . . . . . . . . . . 606.3 網 路 偵 測 與 觀 察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.4 系 統 時 間 設 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717 帳 號 與 身 份 管 理 757.1 <strong>Linux</strong> 的 帳 號 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757.2 使 用 者 管 理 指 令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777.3 使 用 者 身 份 切 換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807.4 群 組 管 理 指 令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848 <strong>Linux</strong> 檔 案 權 限 與 管 理 878.1 使 用 者 與 群 組 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878.2 檔 案 權 限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878.3 改 變 檔 案 權 限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938.4 Access Control Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . 968.5 檔 案 的 搜 尋 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029 檔 案 系 統 的 掛 載 1099.1 認 識 硬 碟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099.2 檔 案 系 統 的 簡 單 操 作 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119.3 磁 碟 掛 載 與 卸 載 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139.4 新 增 硬 碟 或 分 割 槽 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11510 邏 輯 捲 軸 管 理 員 12310.1 產 生 邏 輯 捲 軸 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12310.2 邏 輯 捲 軸 管 理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13010.3 管 理 原 已 存 在 的 VG . . . . . . . . . . . . . . . . . . . . . . . . . . . 13710.4 開 機 自 動 掛 載 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14111 NFS 檔 案 系 統 14511.1 NFS Server 端 設 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14511.2 NFS Client 端 設 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14711.3 自 動 掛 載 autofs 的 使 用 . . . . . . . . . . . . . . . . . . . . . . . . . 14912 OPENLDAP 網 路 用 戶 帳 號 15312.1 LDAP 簡 介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15312.2 LDAP Server 建 置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15312.3 CA 憑 證 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15812.4 LDAP Client 端 設 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . 15912.5 LDAP 帳 號 管 理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16212.6 安 全 機 制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163De-Yu Wang CSIE CYUTiv


CONTENTSCONTENTS13 SE<strong>Linux</strong> 16513.1 設 計 原 由 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16513.2 啟 動 、 關 閉 與 觀 察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16513.3 SE<strong>Linux</strong> Contexts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16613.4 Manage SE<strong>Linux</strong> Booleans . . . . . . . . . . . . . . . . . . . . . . . . 16914 RPM 套 件 下 載 安 裝 17114.1 RPM 與 SRPM 套 件 . . . . . . . . . . . . . . . . . . . . . . . . . . . 17114.2 RPM 套 件 管 理 程 式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17314.3 YUM 線 上 升 級 機 制 . . . . . . . . . . . . . . . . . . . . . . . . . . . 18015 系 統 紀 錄 19315.1 rsyslogd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19315.2 logrotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19416 Managing Processes 19716.1 Monitoring Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . 19716.2 Terminating Processes . . . . . . . . . . . . . . . . . . . . . . . . . . 19816.3 程 序 的 執 行 序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20017 Mainataing the Kernel 20317.1 Architectures and Kernel . . . . . . . . . . . . . . . . . . . . . . . . . 20317.2 Kernel Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20317.3 Specifying Kernel Boot Parameters . . . . . . . . . . . . . . . . . . . 20617.4 Updating Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20718 例 行 性 命 令 21118.1 <strong>Linux</strong> 的 例 行 性 命 令 . . . . . . . . . . . . . . . . . . . . . . . . . . . 21118.2 僅 執 行 一 次 的 工 作 排 程 :at . . . . . . . . . . . . . . . . . . . . . . . 21118.3 循 環 執 行 的 工 作 排 程 . . . . . . . . . . . . . . . . . . . . . . . . . . . 21319 開 機 流 程 與 系 統 服 務 21719.1 開 機 流 程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21719.2 daemon 與 服 務 (service) . . . . . . . . . . . . . . . . . . . . . . . . . 22019.3 開 機 啟 動 服 務 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22319.4 開 機 過 程 的 問 題 解 決 . . . . . . . . . . . . . . . . . . . . . . . . . . . 225De-Yu Wang CSIE CYUTv


1.3. LINUX 系 統 CHAPTER 1. 簡 介1.3 <strong>Linux</strong> 系 統1. 系 統 核 心 與 使 用 者 界 面 。✛✘使 用 者✚✙✻❄使 用 者 界 面(shell, KDE, applications)✻✻❄核 心 (Kernel)❄硬 體 (Hardware)1.4 <strong>Linux</strong> 的 特 性1. 支 援 個 人 電 腦 X86 架 構 。2. 功 能 似 Unix 強 大 且 穩 定 。3. 依 循 POSIX 標 準 , 與 Unix 完 全 相 容 。4. 免 費 使 用 或 修 改 其 原 始 碼 。5. 安 全 性 、 漏 洞 的 持 續 修 補 。6. 多 工 、 多 使 用 者 。7. 使 用 者 與 群 組 的 規 劃 。8. 相 對 比 較 不 耗 資 源 。9. 幾 乎 可 獨 力 完 成 工 作 站 或 伺 服 器 的 服 務 。10. 支 援 完 整 的 網 路 軟 體 , 在 <strong>Linux</strong> 上 建 置 網 路 伺 服 器 最 經 濟 實 惠 。11. 提 供 完 整 的 說 明 文 件 ( How-To ) 及 系 統 原 始 程 式 。12. 沒 有 版 權 問 題 , 軟 體 取 得 容 易 , 且 網 路 上 應 用 程 式 充 足 。練 習 題De-Yu Wang CSIE CYUT 4


1.5. 學 習 LINUX CHAPTER 1. 簡 介1. 請 列 舉 七 項 <strong>Linux</strong> 的 特 性 :Sol. 1. 支 援 個 人 電 腦 X86 架 構 。 2. 功 能 似 Unix 強 大 且 穩 定 。 3. 依 循POSIX 標 準 , 與 Unix 完 全 相 容 。 4. 免 費 使 用 或 修 改 其 原 始 碼 。 5. 安 全性 、 漏 洞 的 持 續 修 補 。 6. 多 工 、 多 使 用 者 。 7. 使 用 者 與 群 組 的 規 劃 。 8. 相對 比 較 不 耗 資 源 。 9. 幾 乎 可 獨 力 完 成 工 作 站 或 伺 服 器 的 服 務 。 10. 支 援 完 整的 網 路 軟 體 , 在 <strong>Linux</strong> 上 建 置 網 路 伺 服 器 最 經 濟 實 惠 。 11. 提 供 完 整 的 說 明文 件 ( How-To ) 及 系 統 原 始 程 式 。12. 沒 有 版 權 問 題 , 軟 體 取 得 容 易 , 且 網路 上 應 用 程 式 充 足 。1.5 學 習 <strong>Linux</strong>1. 實 作 累 積 經 驗 。2. X-window 至 command line。3. 網 路 查 詢 。4. 發 問 。練 習 題1. 請 列 舉 三 項 學 習 <strong>Linux</strong> 的 方 式 :Sol. 1. 實 作 累 積 經 驗 。 2. 先 圖 形 界 面 X-window 至 文 字 界 面 commandline。 3. 網 路 查 詢 。 4. 發 問 。1.6 Free software & Open source1. GNU(a) GNU 是 GNU’s Not UNIX 的 縮 寫 , 意 為 GNU 跟 Unix 很 像 , 但 不 是Unix。(b) 1979 年 AT&T 成 立 USL(Unix Development <strong>System</strong> Lab.), 逐 漸 將Unix 帶 向 更 商 業 化 。(c) 1979 年 MIT 程 式 設 計 師 Richard M. Stallman 提 倡 Open Source。(d) 1984 年 Stallman 創 立 GNU 計 畫 及 自 由 軟 體 基 金 會 (FreeFoundation, FSF)。(e) GNU 的 核 心 為 <strong>Linux</strong>,<strong>Linux</strong> 實 質 上 只 能 算 是 一 套 優 良 的 核 心 。2. 自 由 軟 體De-Yu Wang CSIE CYUT 5


CHAPTER 2.LINUX 安 裝Chapter 2<strong>Linux</strong> 安 裝2.1 Distribution1. <strong>Linux</strong> kernel 需 要 加 入 其 他 軟 體 才 能 成 為 完 整 作 業 系 統 。2. <strong>Linux</strong> distribution: 以 <strong>Linux</strong> 為 核 心 的 發 行 作 業 系 統 或 發 行 版 。3. 主 要 的 Distribution:(a) CentOS;(b) Mandriva;(c) Fedora;(d) Ubuntu;(e) Slackware;(f) SuSE;(g) Open<strong>Linux</strong>;(h) Debian;(i) Linpus;(j) Knoppix(k) 紅 旗 桌 面 版 .練 習 題1. 何 謂 <strong>Linux</strong> distribution?Sol. 以 <strong>Linux</strong> 為 核 心 的 發 行 作 業 系 統 或 發 行 版 , 有 些 公 司 將 軟 體 套 件 加到 <strong>Linux</strong> kernel 中 , 並 以 光 碟 發 行 稱 之 為 "Distribution"。2. 請 列 舉 兩 種 <strong>Linux</strong> distribution?。Sol. CentOS,Mandriva; Fedora; Ubuntu; Slackware; SuSE;Open<strong>Linux</strong>; Debian; Linpus; Knoppix 紅 旗 桌 面 版 .De-Yu Wang CSIE CYUT 11


2.2. 認 識 硬 體 CHAPTER 2. LINUX 安 裝2.2 認 識 硬 體1. 硬 體 :(a) CPU(b) RAM(c) Hard Disk(d) 顯 示 器(e) 網 路 卡(f) 光 碟 、 軟 碟(g) 鍵 盤 、 滑 鼠2. 硬 體 代 號裝 置IDE 硬 碟SCSI 硬 碟 及 USB 隨 身 碟CDROM軟 碟 機印 表 機滑 鼠網 路 卡裝 置 在 <strong>Linux</strong> 內 的 代 號/dev/hd[a-d]/dev/sd[a-p]/dev/cdrom/dev/fd[0-1]/dev/lp[0-2]/dev/mouse, /dev/psaux/dev/ethn[n=0,1,...]3. IDE 硬 碟 在 <strong>Linux</strong> 中 的 磁 碟 代 號IDE/Jumper Master SlaveIDE 1 (Primary) /dev/hda /dev/hdbIDE 2 (Secondary) /dev/hdc /dev/hdd4. SCSI 硬 碟 在 <strong>Linux</strong> 中 的 磁 碟 代 號 , 由 開 機 時 掃 瞄 找 到 順序 決 定 , 傳 統 GNU/<strong>Linux</strong> 在 /etc/fstab 直 接 使 用 此 裝 置 名稱 (/dev/hda1 或 /dev/sda2 等 ) 指 定 掛 載 裝 置 。5. 裝 置 名 稱 會 因 BIOS 的 設 定 或 插 入 次 序 而 改 變 。 部 分 GNU/<strong>Linux</strong>distribution 已 改 用 檔 案 系 統 標 簽 (filesystem label) 或 UUID(UniversalUnique Identifier) 來 指 定 要 掛 載 的 儲 存 裝 置 。(a) 查 看 UUID✞谱 [root@deyu ~]# blkid -s UUID[root@deyu ~]# blkid -s UUID /dev/sde?谳 /dev/sde1: UUID="8246689c-a0a4-4bf9-9694-913b7ea19187"/dev/sde2: UUID="nEknYJ-Futf-MkCk-6fK5-oJpn-McvU-ZxGgT2"谵 /dev/sde3: UUID="d06c5b7e-cb4c-4309-868c-ff7221178539"✡✝✆De-Yu Wang CSIE CYUT 12


2.3. 安 裝 CHAPTER 2. LINUX 安 裝(b) 由 UUID 查 看 裝 置 名 稱✞谱 [root@deyu ~]# ls -l /dev/disk/by-uuid/d06c5b7e-cb4c-4309-868c-ff7221178539lrwxrwxrwx. 1 root root 10 Jan 23 10:42 /dev/disk/by-uuid/d06c5b7e-cb4c-4309-868c-ff7221178539 -> ../../sde3✡✝✆(c) 更 改 UUID-- 新 的 隨 機 UUID✞[root@deyu ~]# tune2fs -U random /dev/sde3谲 tune2fs 1.41.12 (17-May-2010)[root@deyu ~]# blkid -s UUID /dev/sde3谴 /dev/sde3: UUID="6e16182c-1bd6-4eb3-9973-bd883d899fb9"✡✝✆(d) 更 改 UUID-- 指 定 的 UUID谲谴✞[root@deyu ~]# tune2fs -U d06c5b7e-cb4c-4309-868cff7221178539/dev/sde3tune2fs 1.41.12 (17-May-2010)[root@deyu ~]# blkid -s UUID /dev/sde3/dev/sde3: UUID="d06c5b7e-cb4c-4309-868c-ff7221178539"✡✝✆(e) 查 看 開 機 自 動 掛 載 檔 案 /etc/fstab✞[root@deyu ~]# cat /etc/fstab谲 /dev/mapper/vg_dywusb-root / ext4defaults 1 1UUID=822e9a9a-ef25-4f1b-b509-0f1204ede12e /boot ext4defaults 1 2谴 /dev/mapper/vg_dywusb-home /home ext4defaults 1 2UUID=4993645e-558b-4386-80c5-42ac3f06a26d /var/ftp/pub ext4✡✝defaults 1 2✆2.3 安 裝1. 產 生 自 動 安 裝 檔 kickstartDe-Yu Wang CSIE CYUT 13


2.3. 安 裝 CHAPTER 2. LINUX 安 裝✞谱 [root@deyu ~]# vi anaconda-ks.cfg#version=Certification CentOS 6谳 installlang en_US.UTF-8谵 keyboard us#network --device eth0 --mtu=1500 --bootproto dhcp --hostnamedeyu.wang谷 rootpw 123123timezone --utc Asia/Taipei谹%include /tmp/partitioning谱 谱 #reboot谱 谳 %packages --nobaseNetworkManager谱 谵 ....-libgcj谱 谷 -sinjdoc-java-1.5.0-gcj谱 谹 %end谲 谱 %pre --log=/tmp/kickpre#!/bin/bash谲 谳 ...echo "bootloader --location=mbr --driveorder=${idisk}" > /tmp/partitioning谲 谵 cat >> /tmp/partitioning


2.3. 安 裝 CHAPTER 2. LINUX 安 裝谴 谹 \\\begin{myverbatim}[root@deyu ~]# vi anaconda-ks.cfg谵 谱 #version=Certification CentOS 6install谵 谳 lang en_US.UTF-8keyboard us谵 谵 #network --device eth0 --mtu=1500 --bootproto dhcp --hostnamedeyu.wangrootpw 123123谵 谷 timezone --utc Asia/Taipei谵 谹 %include /tmp/partitioning#reboot谶 谱%packages --nobase谶 谳 NetworkManager....谶 谵 -libgcj-sinjdoc谶 谷 -java-1.5.0-gcj%end谶 谹%pre --log=/tmp/kickpre谷 谱 #!/bin/bash...谷 谳 echo "bootloader --location=mbr --driveorder=${idisk}" > /tmp/partitioningcat >> /tmp/partitioning


2.3. 安 裝 CHAPTER 2. LINUX 安 裝(b) 製 作 安 裝 光 碟✞[root@deyu ~]# mount -o loop CentOS-6.0-x86_64.iso /mnt/iso谲 [root@deyu ~]# cp -a /mnt/iso /mnt/cdtmp[root@deyu ~]# vi /mnt/cd/isolinux/isolinux.cfg谴 default vesamenu.c32prompt 0谶 timeout 60display boot.msg谸 menu background splash.jpgmenu title Welcome to CentOS 6.0!谱 谰label crt谱 谲 menu label Install ^Certification systemmenu default谱 谴 kernel vmlinuzappend load_ramdisk=1 initrd=initrd.img ks=cdrom:/isolinux/crt-ks.cfg repo=cdrom:/谱 谶 [root@deyu ~]# cd /mnt/cdtmp[root@deyu cdtmp]# mkisofs -o crt.iso -b isolinux/isolinux.bin -c \谱 谸 isolinux/boot.cat -no-emul-boot -boot-load-size 4 \-boot-info-table -R -J -v -T .谲 谰 [root@deyu cdtmp]# cdrecord -eject -v -data -nopad -dao crt.iso✡✝✆(c) 以 燒 好 的 光 碟 開 機 , 即 可 依 自 動 安 裝 檔 crt-ks.cfg 設 定 安 裝 。(d) 缺 點 : 必 須 燒 光 碟 , 造 成 資 源 浪 費 。3. 製 作 隨 身 碟 安 裝 系 統 :(a) 格 式 化 隨 身 碟 , 必 須 設 定 開 機 分 割 區 可 安 開 機 旗 標 。✞[root@deyu ~]# fdisk /dev/sde谲 # delete existing partition - repeat as necessaryn # new partition谴 p # primary1 # partition number谶 # take the default+1G # add 1 GB谸 a # toggle bootable flag1 # partition number谱 谰 w # write to disk[root@deyu ~]# mkfs.ext2 /dev/sde1✡✝✆De-Yu Wang CSIE CYUT 16


2.3. 安 裝 CHAPTER 2. LINUX 安 裝(b) 複 製 檔 案 至 隨 身 碟 。✞谱 [root@deyu ~]# mkdir /mnt/{iso,usb}[root@deyu ~]# mount /dev/sde1 /mnt/usb谳 [root@deyu ~]# mount -o loop CentOS-6.0-x86_64.iso /mnt/iso[root@deyu ~]# cp -a /mnt/iso/{isolinux,image} /mnt/usb谵 [root@deyu ~]# cd /mnt/usb[root@deyu usb]# mv isolinux extlinux谷 [root@deyu usb]# mv extlinux/isolinux.cfg extlinux.conf[root@deyu usb]# vi extlinux/extlinux.conf谹 default vesamenu.c32prompt 0谱 谱 timeout 600menu background splash.jpg谱 谳 label crtmenu label Install ^Certification system谱 谵 menu defaultkernel vmlinuz谱 谷 append load_ramdisk=1 initrd=initrd.img ks=hd:UUID="b3de84f3-2fa6-45e5-a01d-3adbe348b6cf":/extlinux/crt-ks.cfg repo=hd:UUID="b3de84f3-2fa6-45e5-a01d-3adbe348b6cf":/centos6/crt/谱 谹[root@deyu usb]# extlinux --install /mnt/usb/extlinux; sync✡✝✆(c) 選 擇 隨 身 碟 開 機 。4. PXE 網 路 安 裝(a) 架 設 PXE 主 機✞谱 ##dhcp server[root@deyu ~]# vi /etc/dhcp/dhcpd.conf谳 ddns-update-style none;option space PXE;谵 subnet 192.168.111.0 netmask 255.255.255.0 {class "PXE" {谷 match if substring(option vendor-class-identifier, 0, 9)= "PXEClient";option vendor-encapsulated-options 01:04:00:00:00:00:ff;谹 option boot-size 0x1;filename "pxelinux.0";谱 谱option tftp-server-name "deyu.wang";option vendor-class-identifier "PXEClient";谱 谳vendor-option-space PXE;De-Yu Wang CSIE CYUT 17


2.3. 安 裝 CHAPTER 2. LINUX 安 裝}谱 谵 option routers 192.168.111.254;option subnet-mask 255.255.255.0;谱 谷option domain-name "deyu.wang";option domain-name-servers 168.95.1.1,139.175.10.20;谱 谹 default-lease-time 21600;max-lease-time 43200;谲 谱# Assign IPs 101-100 to PXE clients谲 谳 pool {allow members of "PXE";谲 谵 default-lease-time 120;max-lease-time 180;谲 谷 range 192.168.111.101 192.168.111.200;}谲 谹 pool {deny members of "PXE";谳 谱 range 192.168.111.1 192.168.111.70;}谳 谳 next-server 192.168.111.254;filename "ftp://192.168.111.254/pub/centos6/dag/dyw-ks.cfg";谳 谵 }谳 谷[root@deyu ~]# /etc/init.d/dhcpd restart谳 谹 ## tflt server[root@deyu ~]# vi /etc/xinetd.d/tftp谴 谱 service tftp{谴 谳 socket_type = dgramprotocol = udp谴 谵 wait = yesuser= root谴 谷 server = /usr/sbin/in.tftpdserver_args = -s /var/ftp/pub/centos6/usb/isolinux


2.4. 虛 擬 機 CHAPTER 2. LINUX 安 裝(a) 選 擇 安 裝 到 硬 碟 或 隨 身 碟 。(b) 磁 碟 的 分 割 , 若 安 裝 至 隨 身 碟 建 議 自 行 分 割 , 以 有 效 使 用 隨 身 碟 。(c) 安 裝 套 件 的 選 擇 。2.4 虛 擬 機1. deyu.wang centos6 linux 虛 擬 機(a) 第 一 次 進 入 deyu.wang, 系 統 會 自 動 安 裝 虛 擬 機 。(b) deyu.wang 系 統 , 建 立 兩 個 腳 本 程 式 rebuildkvm.sh,viewkvm.sh, 並 在最 上 方 面 板 , 建 立 兩 個 程 式 按 鈕 。i. VM kvmusb view(rebuildkvm.sh): 打 開 虛 擬 機 kvmusb 畫 面 。ii. Rebuild KVM(viewkvm.sh): 重 建 kvmusb 虛 擬 機 。(c) deyu.wang 系 統 在 最 上 方 面 板 , 建 立 一 個 自 動 轉 換 root 身 份 按 鈕 :rootterminal。✞[root@deyu ~]# virsh list --all谲 Id Name State----------------------------------谴 1 kvmusb running谶谸谱 谰谱 谲谱 谴# 虛 擬 機 沒 有 回 應 , 強 制 關 機[root@deyu ~]# virsh destroy kvmusb# 虛 擬 機 正 常 關 機[root@deyu ~]# virsh shutdown kvmusb[root@deyu ~]# viewkvm.sh kvmusb[root@deyu ~]# rebuildkvm.sh谱 谶# 刪 除 虛 擬 機[root@deyu ~]# virsh undefine kvmusb✡✝✆2. 文 字 界 面 , 虛 擬 機 管 理 指 令 。✞# 列 出 虛 擬 機 狀 態谲 [root@deyu ~]# virsh list --allId NameState谴 ----------------------------------1 kvmusb running谶De-Yu Wang CSIE CYUT 19


2.4. 虛 擬 機 CHAPTER 2. LINUX 安 裝谸谱 谰谱 谲谱 谴# 虛 擬 機 沒 有 回 應 , 強 制 關 機[root@deyu ~]# virsh destroy kvmusb# 虛 擬 機 正 常 關 機[root@deyu ~]# virsh shutdown kvmusb# 虛 擬 機 啟 動[root@deyu ~]# virsh start kvmusb谱 谶# 打 開 虛 擬 機 畫 面[root@deyu ~]# virt-viewer kvmusb✡✝✆3. 以 圖 形 界 面 管 理 虛 擬 機✞谱 Applications<strong>System</strong> Tools谳 Virtual Machine Manager✡✝✆De-Yu Wang CSIE CYUT 20


CHAPTER 3.文 字 命 令Chapter 3文 字 命 令3.1 登 入 系 統1. 登 入 方 式 : 圖 形 模 式 及 文 字 模 式 。2. 模 式 切 換(a) Ctrl + Alt + [F1] ~ [F6]: 文 字 界 面 登 入 tty1 ~ tty6 終 端 機 。(b) Ctrl + Alt + [F7]: 圖 形 界 面 桌 面 。(c) 修 改 /etc/inittab 可 以 改 變 預 設 啟 動 進 入 X window 或 者 是 純 文 字 界面 環 境 。 預 設 啟 動 的 X Window (Run level 等 級 為 5) 改 為 啟 動 純 文字 界 面 (Run level 等 級 為 3)。✞谱 [root@kvm4 ~]# head -n 18 /etc/inittab | tail -n 10# Default runlevel. The runlevels used by Mandriva <strong>Linux</strong> are:谳 # 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode谵 # 2 - Multiuser, without NFS (The same as 3, if you do nothave networking)# 3 - Full multiuser mode谷 # 4 - unused# 5 - X11谹 # 6 - reboot (Do NOT set initdefault to this)#谱 谱 id:3:initdefault:✡✝✆3. Centos 6 在 開 機 層 級 為 5 時 Ctrl + Alt + [F1] 為 圖 形 界 面 。4. Ctrl + Alt + [F2] login谱✞CentOS <strong>Linux</strong> release 6.0 (Final)De-Yu Wang CSIE CYUT 21


3.2. 指 令 下 達 CHAPTER 3. 文 字 命 令谳谵Kernel 2.6.32-71.el6.x86_64 on an x86_64kvm4 login: dywangPasswd:Last login: Wed Dec 19 14:53:35 on tty2谷 [dywang@deyu ~]$ cat /etc/issueCentOS <strong>Linux</strong> release 6.0 (Final)谹 Kernel \r on an \m✡✝✆(a) 符 號 ~ 代 表 『 使 用 者 的 家 目 錄 』。(b) 預 設 root 的 提 示 字 元 為 #, 一 般 使 用 者 的 提 示 字 元 為 $。5. exit( 登 出 離 開 系 統 並 不 是 關 機 )✞谱 [dywang@deyu ~]$ exit✡✝✆6. 從 文 字 界 面 進 入 圖 形 界 面✞谱 [dywang@deyu ~]$ startx✡✝✆3.2 指 令 下 達1. 格 式[root@deyu dywang]# command [ -options ] parameter1 parameter2 ...指 令 選 項 參 數 1 參 數 2(a) <strong>Linux</strong> 環 境 下 , 大 小 寫 不 同 ;(b) 選 項 可 不 指 定 , [ ] 並 不 存 在 於 實 際 的 指 令 中 , 通 常 以 "-" 加 入 選 項設 定 , 有 時 完 整 參 數 名 稱 以 "--" 輸 入 ;(c) 指 令 、 選 項 及 參 數 間 以 空 格 區 分 ( 個 數 不 拘 );(d) 按 下 [Enter], 開 始 執 行 指 令 。(e) 指 令 太 長 可 以 跳 脫 字 元 "\" , 跳 脫 [Enter] 動 作 , 換 行 繼 續 輸 入 。2. 切 換 至 root 身 份De-Yu Wang CSIE CYUT 22


3.2. 指 令 下 達 CHAPTER 3. 文 字 命 令✞谱 [dywang@deyu ~]$ su -[root@deyu ~]#✡✝✆3. 以 ssh 連 線 至 虛 擬 機AAAAB3NzaC1yc2EAAAABIwAAAQEAlUrRxmSY4ngrTFj1dpW9XzHdgzNxl2Dt3rwpMui8UlieYiedHM✞[root@deyu ~]# ssh root@kvm4.deyu.wang谲 The authenticity of host ’kvm4.deyu.wang (192.168.122.4)’ can’tbe established.RSA key fingerprint is f2:04:37:1e:5b:7c:86:0d:c6:c6:3e:6b:85:a7:5d:6f.谴 Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added ’kvm4.deyu.wang’ (RSA) to the list ofknown hosts.谶 root@kvm4.deyu.wang’s password:Last login: Tue Dec 20 09:00:03 2011谸 [root@kvm4 ~]# w09:10:19 up 32 min, 1 user, load average: 0.00, 0.00, 0.00谱 谰 USER TTY FROM LOGIN@ IDLE JCPU PCPUWHATroot pts/0 deyu.wang 09:09 0.00s 0.04s 0.01s w谱 谲 [root@kvm4 ~]# lsanaconda-ks.cfg install.log install.log.syslog谱 谴 [root@kvm4 ~]# exitlogout谱 谶 Connection to kvm4.deyu.wang closed.[root@deyu ~]# cat ~/.ssh/known_hosts谱 谸 kvm4.deyu.wang ssh-rsa/E1aYUlwZeY60kbvQMcZ3RZYrT3zhnhVAzQPJ4RfqBEBG3xVdH2amz630KKOnPn5tBFG3EnHu3ot+bL/ArNTFDIKfUkuY9LBASgjCxIw/lUlVUZNcpo+3EpBryzWZ7DzNahgctQ0CU10FXJDqxLKM9VSzugrUMhf+tjb3OTyf8PM+g8DDFFifWinNa9qoBf6s5fZajj/xANhTw2OYgn/jETSXtTOZVZ3K7vcABwdnfwNkBnGnxn9jo1ND5QzITqRmBGWDa1M6W5pnp+xPUQ==[root@deyu ~]# ssh root@kvm4.deyu.wang谲 谰 root@kvm4.deyu.wang’s password:Last login: Tue Dec 20 09:09:55 2011 from deyu.wang谲 谲 [root@kvm4 ~]# exitlogout谲 谴 Connection to kvm4.deyu.wang closed.谲 谶[root@deyu ~]# rm ~/.ssh/known_hosts[root@deyu ~]# ssh root@kvm4.deyu.wangroot@kvm4.deyu.wang’s password:谲 谸 Last login: Sun Jan 1 16:41:28 2012 from 192.168.122.1[root@kvm4 ~]#✡✝✆De-Yu Wang CSIE CYUT 23


3.3. 正 確 的 關 機 CHAPTER 3. 文 字 命 令3.3 正 確 的 關 機1. <strong>Linux</strong> 為 多 人 多 工 環 境 , 螢 幕 背 後 可 能 有 多 人 或 多 個 服 務 正 在 工 作 , 不 正 常關 機 可 能 造 成 檔 案 系 統 毀 損 。2. who: 查 看 誰 在 線 上 。✞谱 [root@dywHome2 ~]# whodywang tty1 2008-09-07 06:00✡✝✆3. shutdown: 通 知 線 上 使 用 者 關 機 的 時 刻 後 關 機 。✞[root@mdk-dyw ~]# shutdown谲 Usage: shutdown [-akrhfnc] [-t secs] time [warning message]-a: use /etc/shutdown.allow谴 -k: don’t really shutdown, only warn.-r: reboot after shutdown.谶 -h: halt after shutdown.-f: do a ’fast’ reboot (skip fsck).谸 -F: Force fsck on reboot.-n:do not go through "init" but go downreal fast.谱 谰 -c: cancel a running shutdown.-t secs: delay between warning and kill signal.谱 谲** the "time" argument is mandatory! (try "now") **[root@mdk-dyw ~]# shutdown -h now谱 谴 [root@mdk-dyw ~]# shutdown -h 00:05谱 谶谱 谸[root@mdk-dyw ~]# shutdown -h +30[root@mdk-dyw ~]# shutdown -r now[root@mdk-dyw ~]# shutdown -r +30 ’The system will reboot’[root@mdk-dyw ~]# shutdown -k now ’This system will reboot’✡✝✆4. halt: 關 機 。✞[root@mdk-dyw ~]# halt✡✝✆5. reboot: 重 新 開 機 。De-Yu Wang CSIE CYUT 24


3.4. 線 上 求 助 CHAPTER 3. 文 字 命 令✞谱 [root@mdk-dyw ~]# reboot✡✝✆3.4 線 上 求 助1. 大 部 分 指 令 都 有 --help 的 選 項 , 但 不 是 所 有 指 令 皆 有 此 選 項 , 例 如 :谱谳✞[root@kvm4 ~]# su --helpUsage: su [OPTION]... [-] [USER [ARG]...]Change the effective user id and group id to that of USER.谵 -, -l, --login make the shell a login shell-c, --command=COMMAND pass a single COMMAND to the shellwith -c谷 --session-command=COMMAND pass a single COMMAND to the shellwith -cand do not create a new session谹 -f, --fast pass -f to the shell (for csh ortcsh)-m, --preserve-environment do not reset environment variables谱 谱 -p same as -m-s, --shell=SHELLrun SHELL if /etc/shells allows it谱 谳 --help display this help and exit--version output version information and exit谱 谵A mere - implies -l. If USER not given, assume root.谱 谷 ....✡✝✆2. man: 查 詢 指 令 使 用 手 冊 。谱谳谵谷谹谱 谱✞[root@kvm4 ~]# man suSU(1)NAMEUser CommandsSU(1)su - run a shell with substitute user and group IDsSYNOPSISsu [OPTION]... [-] [USER [ARG]...]DESCRIPTIONChange the effective user id and group id to that of USER.De-Yu Wang CSIE CYUT 25


3.4. 線 上 求 助 CHAPTER 3. 文 字 命 令谱 谳谱 谵 ......AUTHOR谱 谷-, -l, --loginmake the shell a login shellWritten by David MacKenzie.谱 谹REPORTING BUGS...✡✝✆3. 數 字 代 號代 號 代 表 內 容1 使 用 者 可 以 操 作 的 指 令 或 可 執 行 檔2 系 統 核 心 可 呼 叫 的 函 式 與 工 具3 常 用 函 式 (function) 與 函 式 庫 (library)4 裝 置 檔 案 的 說 明5 設 定 檔6 遊 戲7 慣 例 與 協 定8 系 統 管 理 員 可 用 的 管 理 指 令9 跟 核 心 有 關 的 文 件4. 內 容 代 號代 號NAMESYNOPSISDESCRIPTIONOPTIONSCOMMANDSFILESSEE ALSOEXAMPLEBUGSHISTORYOTHER VERSIONS代 表 內 容簡 短 指 令 、 資 料 名 稱 說 明簡 短 指 令 下 達 語 法 簡 介較 完 整 的 說 明針 對 SYNOPSIS 中 列 舉 的 所 有 參 數 說 明當 此 程 式 執 行 中 可 下 達 的 指 令此 程 式 所 使 用 、 參 考 或 連 結 的 檔 案與 此 指 令 相 關 的 說 明參 考 範 例是 否 有 相 關 的 臭 蟲指 令 歷 史是 否 有 其 他 版 本5. man 相 關 按 鍵 有 :De-Yu Wang CSIE CYUT 26


3.4. 線 上 求 助 CHAPTER 3. 文 字 命 令按 鍵 進 行 工 作空 白 鍵 往 下 翻 一 頁 。page up 往 上 翻 一 頁 。page down 往 下 翻 一 頁 。home 回 到 最 前 頁 。end 到 最 終 頁 。/word 向 下 搜 尋 word 這 個 字 。?word 向 上 搜 尋 word 這 個 字 。n,N n 繼 續 下 一 個 搜 尋 ,N 繼 續 反 向 搜 尋 。q 離 開 。6. man 使 用 功 能✞[root@kvm4 ~]# man --help谲 man, version 1.6f谴谶谸谱 谰谱 谲谱 谴谱 谶谱 谸usage: man [-adfhktwW] [section] [-M path] [-P pager] [-S list][-m system] [-p string] name ...a : find all matching entriesc : do not use cat filed : print gobs of debugging informationD : as for -d, but also display the pagesf : same as whatis(1)h : print this help messagek : same as apropos(1)K : search for a string in all pagest : use troff to format pages for printingw : print location of man page(s) that would be displayed(if no name given: print directories that would be searched)W : as for -w, but display filenames only谲 谰 C file : use ‘file’ as configuration fileM path : set search path for manual pages to ‘path’谲 谲 P pager : use program ‘pager’ to display pagesS list : colon separated section list谲 谴 m system : search for alternate system’s man pagesp string : string tells which preprocessors to run谲 谶 e - [n]eqn(1) p - pic(1) t - tbl(1)✡✝g - grap(1) r - refer(1) v - vgrind(1)✆De-Yu Wang CSIE CYUT 27


3.5. 基 礎 指 令 操 作 CHAPTER 3. 文 字 命 令3.5 基 礎 指 令 操 作1. date: 顯 示 日 期 及 時 間 。✞谱 [root@kvm4 ~]# dateSun Jan 1 22:39:06 CST 2012谳 [root@kvm4 ~]# date +%Y/%m/%d2012/01/01✡✝✆2. cal: 顯 示 日 月 曆 。✞[root@kvm4 ~]# cal谲 January 2012Su Mo Tu We Th Fr Sa谴 1 2 3 4 5 6 78 9 10 11 12 13 14谶 15 16 17 18 19 20 2122 23 24 25 26 27 28谸 29 30 31谱 谰 [root@kvm4 ~]# cal -3December 2011 January 2012 February 2012谱 谲 Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa1 2 3 1 2 3 4 5 6 7 1 2 3 4谱 谴 4 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 1111 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18谱 谶 18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 2525 26 27 28 29 30 31✡✝29 30 31 26 27 28 29✆3. 相 對 路 徑 與 絕 對 路 徑 。(a) 絕 對 路 徑 : 從 根 目 錄 /寫 起 , 如 : 目 錄 /usr/share/man。(b) 相 對 路 徑 : 不 是 從 根 目 錄 / 寫 起 , 其 寫 法 如 :. 代 表 此 層 目 錄.. 代 表 上 層 目 錄- 代 表 前 一 個 工 作 目 錄~ 代 表 自 己 的 家 目 錄~user 代 表 到 user 這 個 用 戶 的 家 目 錄4. cd (Change Directory): 變 換 工 作 目 錄 ;pwd (Print WorkingDirectory): 顯 示 目 前 所 在 的 目 錄 。De-Yu Wang CSIE CYUT 28


3.5. 基 礎 指 令 操 作 CHAPTER 3. 文 字 命 令✞谱 [root@kvm4 ~]# cd ..[root@kvm4 /]# cd谳 [root@kvm4 ~]# cd /home/[root@kvm4 home]# cd ~谵 [root@kvm4 ~]# pwd/root谷 [root@kvm4 ~]# cd /etc谹[root@kvm4 etc]# cd[root@kvm4 ~]# pwd/root谱 谱 [root@kvm4 ~]# cd -/etc✡✝✆5. ls (list directory contents): 顯 示 檔 案 名 稱 、 屬 性 等 。✞[root@kvm4 ~]# ls谲 anaconda-ks.cfg a.txt install.log install.log.syslog[root@kvm4 ~]# ls -a谴 . a.txt .bash_profile install.log.tcshrc.. .bash_history .bashrc install.log.syslog谶 anaconda-ks.cfg .bash_logout .cshrc .ssh[root@kvm4 ~]# ls -l谸 total 28-rw-------. 1 root root 4665 Dec 24 16:29 anaconda-ks.cfg谱 谰 -rw-r--r--. 1 root root 0 Dec 30 17:32 a.txt-rw-r--r--. 1 root root 11508 Dec 24 16:29 install.log谱 谲 -rw-r--r--. 1 root root✡✝5331 Dec 24 16:28 install.log.syslog✆6. cp (copy files and directories): 拷 貝 檔 案 或 目 錄 。✞[root@kvm4 ~]# cp install.log /tmp谲 [root@kvm4 ~]# ls /tmp/install.log/tmp/install.log✡✝✆7. rm (remove files or directories): 移 除 檔 案 或 目 錄 。谱谳✞[root@kvm4 ~]# rm /tmp/install.logrm: remove regular file ‘/tmp/install.log’? y[root@kvm4 ~]# ls /tmp/install.logDe-Yu Wang CSIE CYUT 29


3.5. 基 礎 指 令 操 作 CHAPTER 3. 文 字 命 令ls: cannot access /tmp/install.log: No such file or directory✡✝✆8. mv (move (rename) files): 檔 案 移 動 或 改 名 。✞[root@kvm4 ~]# touch a.txt谲 [root@kvm4 ~]# lsanaconda-ks.cfg a.txt install.log install.log.syslog谴 [root@kvm4 ~]# mv a.txt /tmp[root@kvm4 ~]# ls ./a.txt /tmp/a.txt谶 ls: cannot access ./a.txt: No such file or directory/tmp/a.txt✡✝✆De-Yu Wang CSIE CYUT 30


CHAPTER 4.VI 編 輯 器Chapter 4vi 編 輯 器4.1 vi 與 vim1. <strong>Linux</strong> 的 系 統 中 使 用 文 字 編 輯 器 來 編 輯 您 的 <strong>Linux</strong> 參 數 設 定 檔 。2. <strong>Linux</strong> 與 Unix 系 統 中 的 參 數 檔 幾 乎 都 是 ASCII 碼 的 『 純 文 字 』 檔 。3. vi 為 文 書 編 輯 器 , vim 是 vi 的 進 階 軟 體 。4. vim 加 入 了 支 援 正 規 表 示 法 的 搜 尋 架 構 、 多 檔 編 輯 、 區 塊 複 製 等 功 能 。5. vim 官 方 網 站 亦 稱 vim 為 程 式 開 發 工 具 。6. 大 家 來 學 VIM( 一 個 歷 久 彌 新 的 編 輯 器 )4.2 vi 的 使 用1. vi 共 分 為 三 種 模 式 , 分 別 是 『 一 般 模 式 』、『 編 輯 模 式 』 與 『 指 令 列 命 令 模式 』 三 種 。i,o,a,rI,O,A,R✲編 輯 模 式一 般 模 式✛ [Esc] 可 輸 入 任 何 字 元游 標 移 動搜 尋 、 取 代刪 除 字 元 、 刪 除 整 列 :, /,✲? 指 令 列 模 式複 製 整 列 、 貼 上 整 列讀 取 、 儲 存 檔 案✛其 他 額 外 功 能2. 簡 易 範 例(a) 使 用 vi 進 入 一 般 模 式✞谱 [dywang@dywOffice tmp]$ vim test.txt✡✝✆De-Yu Wang CSIE CYUT 31


4.2. VI 的 使 用 CHAPTER 4. VI 編 輯 器(b) 按 下 i 進 入 編 輯 模 式 , 開 始 編 輯 文 字 。(c) 按 下 [Esc] 按 鈕 回 到 一 般 模 式 。(d) 在 一 般 模 式 中 按 下 :x 儲 存 後 離 開 vi。3. 常 用 指 令 列 表一 般 模 式移 動 游 標h 或 向 左 方 向 鍵游 標 向 左 移 動 一 個 字 元j 或 向 下 方 向 鍵游 標 向 下 移 動 一 個 字 元k 或 向 上 方 向 鍵游 標 向 上 移 動 一 個 字 元l 或 向 右 方 向 鍵游 標 向 右 移 動 一 個 字 元[Ctrl]+f螢 幕 『 向 前 』 移 動 一 頁[Ctrl]+b螢 幕 『 向 後 』 移 動 一 頁[Ctrl]+d螢 幕 『 向 前 』 移 動 半 頁[Ctrl]+u螢 幕 『 向 後 』 移 動 半 頁+ 游 標 移 動 到 非 空 白 字 元 的 下 一 列- 游 標 移 動 到 非 空 白 字 元 的 上 一 列n按 下 數 字 後 再 按 空 白 鍵 , 游 標 會 向 右 移 動 這 一 行 的 n 個字 元 。 例 如 20 則 游 標 會 向 後 面 移 動 20 個 字 元距 離 。0 這 是 數 字 『 0 』: 移 動 到 這 一 行 的 最 前 面 字 元 處 。$ 移 動 到 這 一 行 的 最 後 面 字 元 處H游 標 移 動 到 這 個 螢 幕 的 最 上 方 那 一 行M游 標 移 動 到 這 個 螢 幕 的 中 央 那 一 行L游 標 移 動 到 這 個 螢 幕 的 最 下 方 那 一 行G游 標 移 動 到 這 個 檔 案 的 最 後 一 行nG游 標 移 動 到 這 個 檔 案 的 第 n 行 。 例 如 20G 則 會 移 動 到檔 案 的 第 20 行 ( 可 配 合 :set nu)n游 標 向 下 移 動 n 行一 般 模 式搜 尋 與 取 代/word 向 游 標 之 後 尋 找 一 個 字 串 名 稱 為 word 的 字 串 。?word 向 游 標 之 前 尋 找 一 個 字 串 名 稱 為 word 的 字 串 。n 重 複 前 一 個 搜 尋 。N 反 向 進 行 前 一 個 搜 尋 動 作 。:n1,n2s/word1/word2/g 在 第 n1 與 n2 行 之 間 尋 找 word1 這 個 字 串 , 並 將 該 字串 取 代 為 word2 。:1,$s/word1/word2/g 從 第 一 行 到 最 後 一 行 尋 找 word1 字 串 , 並 將 該 字 串 取 代為 word2 。:1,$s/word1/word2/gc 從 第 一 行 到 最 後 一 行 尋 找 word1 字 串 , 並 將 該 字 串 取 代為 word2 且 在 取 代 前 顯 示 提 示 字 元 給 使 用 者 確 認 是 否 需要 取 代 。一 般 模 式刪 除 、 複 製 與 貼 上x, X x 為 向 後 刪 除 一 個 字 元 ,X 為 向 前 刪 除 一 個 字 元nx向 後 刪 除 n 個 字 元dd刪 除 游 標 所 在 的 那 一 整 列ndd刪 除 游 標 所 在 的 向 下 n 列 , 例 如 20dd 則 是 刪 除 20 列d1G刪 除 游 標 所 在 到 第 一 行 的 所 有 資 料De-Yu Wang CSIE CYUT 32


4.2. VI 的 使 用 CHAPTER 4. VI 編 輯 器dG刪 除 游 標 所 在 到 最 後 一 行 的 所 有 資 料dw 刪 除 一 個 字 (delete word)。 不 適 用 於 中 文 。yy 複 製 游 標 所 在 的 那 一 行 ( 常 用 )nyy複 製 游 標 所 在 的 向 下 n 列 , 例 如 20yy 則 是 複 製 20 列y1G複 製 游 標 所 在 列 到 第 一 列 的 所 有 資 料yG複 製 游 標 所 在 列 到 最 後 一 列 的 所 有 資 料p, P p 為 複 製 的 資 料 在 游 標 下 一 行 貼 上 ,P 則 為 貼 在 游 標 上一 行 。J將 游 標 所 在 列 與 下 一 列 的 資 料 結 合 成 同 一 列u 復 原 前 一 個 動 作 。[Ctrl]+r 反 復 原 前 一 個 動 作 。. 重 做 上 一 個 動 作 。進 入 編 輯 模 式i, I 插 入 :i(I) 在 目 前 的 游 標 所 在 處 ( 所 在 行 第 一 個 非 空 白字 元 處 ) 插 入 輸 入 之 文 字 ;a, A 增 加 :a(A) 由 目 前 游 標 所 在 的 下 一 個 ( 最 後 一 個 ) 字 元 處開 始 輸 入 :o, O 插 入 新 的 一 行 :o(O) 從 游 標 所 在 的 下 ( 上 ) 一 行 插 入 新 的一 行 ;r, R 取 代 :r 會 取 代 游 標 所 在 的 那 一 個 字 元 ;R 會 一 直 取 代游 標 所 在 的 文 字 , 直 到 按 下 ESC 為 止 ;Esc 退 出 編 輯 模 式 , 回 到 一 般 模 式 中 。指 令 列 命 令 模 式:w 將 編 輯 的 資 料 寫 入 硬 碟 檔 案 中:w!若 檔 案 屬 性 為 『 唯 讀 』 時 , 強 制 寫 入 該 檔 案:q 離 開 vi:q! 若 曾 修 改 過 檔 案 , 又 不 想 儲 存 , 使 用 ! 為 強 制 離 開 不儲 存 檔 案 。:wq 儲 存 後 離 開 , 若 為 :wq! 則 為 強 制 儲 存 後 離 開:x 與 wq 相 同:e! 將 檔 案 還 原 到 最 原 始 的 狀 態 。ZZ 若 檔 案 沒 有 更 動 , 則 不 儲 存 離 開 , 若 檔 案 已 經 經 過 更 動 ,則 儲 存 後 離 開 。:w [filename] 將 編 輯 的 資 料 儲 存 成 另 一 個 檔 案 ( 類 似 另 存 新 檔 ):r [filename] 在 編 輯 的 資 料 中 , 讀 入 另 一 個 檔 案 的 資 料 。 亦 即 將『filename』 這 個 檔 案 內 容 加 到 游 標 所 在 行 後 面 。:set nu顯 示 行 號 , 設 定 之 後 , 會 在 每 一 行 的 字 首 顯 示 該 行 的 行 號:set nonu 與 set nu 相 反 , 為 取 消 行 號 。:n1,n2 w [filename] 將 n1 到 n2 的 內 容 儲 存 成 filename 這 個 檔 案 。:! command 暫 時 離 開 vi 到 指 令 列 模 式 下 執 行 command 的 顯 示 結果 。 例 如 [ :! ls /home ]4. vi 編 輯 中 回 復 與 暫 存 檔(a) 如 果 編 輯 檔 案 為 /home/csie/vitest.txt, 則 同 時 會 有 一 個 暫 存 檔/home/csie/.vitest.txt.swp 產 生 , 其 為 隱 藏 檔 。(b) 結 束 vi 編 輯 時 暫 存 檔 也 會 刪 除 。De-Yu Wang CSIE CYUT 33


4.2. VI 的 使 用 CHAPTER 4. VI 編 輯 器(c) 若 不 知 因 素 導 致 vi 程 式 中 斷 , 則 在 下 次 編 輯 該 檔 案 時 會 出 現 是 否 回 復的 訊 息 。練 習 題1. vi 有 那 三 種 模 式 ?Sol. 一 般 模 式 、 編 輯 模 式 與 指 令 列 模 式2. 在 vi 一 般 模 式 下 , 可 以 那 四 個 字 元 鍵 進 行 游 標 向 左 、 下 、 上 、 右 移 動 一 個字 元 ?Sol. h j k l3. 在 vi 一 般 模 式 下 , 如 何 使 螢 幕 『 向 前 』 移 動 一 頁 ?Sol. [Ctrl]+f4. 在 vi 一 般 模 式 下 , 如 何 使 螢 幕 『 向 後 』 移 動 一 頁 ?Sol. [Ctrl]+b5. 在 vi 一 般 模 式 下 , 如 何 使 螢 幕 『 向 前 』 移 動 半 頁 ?Sol. [Ctrl]+d6. 在 vi 一 般 模 式 下 , 如 何 使 螢 幕 『 向 後 』 移 動 半 頁 ?Sol. [Ctrl]+u7. 在 vi 一 般 模 式 下 , 如 何 使 游 標 移 動 到 非 空 白 字 元 的 下 一 列 ?Sol. 按 + 鍵8. 在 vi 一 般 模 式 下 , 如 何 使 游 標 移 動 到 非 空 白 字 元 的 上 一 列 ?Sol. 按 - 鍵9. 在 vi 一 般 模 式 下 , 如 何 使 游 標 向 右 移 動 這 一 行 的 12 個 字 元 ?Sol. 按 12 鍵10. 在 vi 一 般 模 式 下 , 如 何 使 游 標 移 動 到 這 一 行 的 最 前 面 字 元 處 ?Sol. 按 0 鍵11. 在 vi 一 般 模 式 下 , 如 何 使 游 標 移 動 到 這 一 行 的 最 後 面 字 元 處 ?Sol. 按 $ 鍵12. 在 vi 一 般 模 式 下 , 如 何 使 游 標 移 動 到 這 個 螢 幕 的 最 上 方 那 一 行 ?Sol. 按 H 鍵13. 在 vi 一 般 模 式 下 , 如 何 使 游 標 移 動 到 這 個 螢 幕 的 中 央 那 一 行 ?Sol. 按 M 鍵14. 在 vi 一 般 模 式 下 , 如 何 使 游 標 移 動 到 這 個 螢 幕 的 最 下 方 那 一 行 ?Sol. 按 L 鍵15. 在 vi 一 般 模 式 下 , 如 何 使 游 標 移 動 到 這 個 螢 幕 的 最 後 一 行 ?Sol. 按 G 鍵De-Yu Wang CSIE CYUT 34


4.2. VI 的 使 用 CHAPTER 4. VI 編 輯 器16. 在 vi 一 般 模 式 下 , 如 何 使 游 標 移 動 到 這 個 檔 案 的 第 12 行 ?Sol. 輸 入 12G17. 在 vi 一 般 模 式 下 , 如 何 使 游 標 游 標 向 下 移 動 12 行 ?Sol. 輸 入 1218. 在 vi 一 般 模 式 下 , 如 何 向 游 標 之 後 尋 找 一 個 字 串 名 稱 為 word 的 字 串 , 接著 重 複 搜 尋 ?Sol. 輸 入 /word , 接 著 按 n 鍵19. 在 vi 一 般 模 式 下 , 如 何 向 游 標 之 後 尋 找 一 個 字 串 名 稱 為 word 的 字 串 , 接著 反 向 重 複 搜 尋 ?Sol. 輸 入 /word , 接 著 按 N 鍵20. 在 vi 一 般 模 式 下 , 如 何 向 游 標 之 前 尋 找 一 個 字 串 名 稱 為 word 的 字 串 , 接著 重 複 搜 尋 ?Sol. 輸 入 ?word , 接 著 按 n 鍵21. 在 vi 一 般 模 式 下 , 如 何 向 游 標 之 前 尋 找 一 個 字 串 名 稱 為 word 的 字 串 , 接著 反 向 重 複 搜 尋 ?Sol. 輸 入 ?word , 接 著 按 N 鍵22. 在 vi 一 般 模 式 下 , 如 何 向 游 標 後 刪 除 一 個 字 元 ?Sol. 按 x 鍵23. 在 vi 一 般 模 式 下 , 如 何 向 游 標 前 刪 除 一 個 字 元 ?Sol. 按 X 鍵24. 在 vi 一 般 模 式 下 , 如 何 向 游 標 後 刪 除 12 個 字 元 ?Sol. 按 12x 鍵25. 在 vi 一 般 模 式 下 , 如 何 向 游 標 前 刪 除 12 個 字 元 ?Sol. 按 12X 鍵26. 在 vi 一 般 模 式 下 , 如 何 刪 除 游 標 所 在 的 那 一 整 列 ?Sol. 按 dd27. 在 vi 一 般 模 式 下 , 如 何 刪 除 一 個 字 ?( 不 適 用 於 中 文 )Sol. 按 dw28. 在 vi 一 般 模 式 下 , 如 何 刪 除 游 標 所 在 的 向 下 12 列 ?Sol. 按 12dd29. 在 vi 一 般 模 式 下 , 如 何 刪 除 游 標 所 在 到 最 後 一 行 的 所 有 資 料 ?Sol. 按 d1G30. 在 vi 一 般 模 式 下 , 如 何 複 製 游 標 所 在 的 那 一 行 ?Sol. 按 yyDe-Yu Wang CSIE CYUT 35


4.2. VI 的 使 用 CHAPTER 4. VI 編 輯 器31. 在 vi 一 般 模 式 下 , 如 何 複 製 游 標 所 在 的 向 下 12 列 ?Sol. 按 12yy32. 在 vi 一 般 模 式 下 , 如 何 複 製 游 標 所 在 列 到 第 一 列 的 所 有 資 料 ?Sol. 按 y1G33. 在 vi 一 般 模 式 下 , 如 何 複 製 游 標 所 在 列 到 最 後 一 列 的 所 有 資 料 ?Sol. 按 yG34. 在 vi 一 般 模 式 下 , 如 何 將 複 製 的 資 料 在 游 標 下 一 行 貼 上 ?Sol. 按 p35. 在 vi 一 般 模 式 下 , 如 何 將 複 製 的 資 料 在 游 標 上 一 行 貼 上 ?Sol. 按 P36. 在 vi 一 般 模 式 下 , 如 何 將 游 標 所 在 列 與 下 一 列 的 資 料 結 合 成 同 一 列 ?Sol. 按 J37. 我 已 經 在 vi 內 進 行 很 多 動 作 , 但 現 在 想 要 復 原 , 如 何 做 ?Sol. 一 直 重 複 按 u 即 可 ;38. 在 vi 的 一 般 模 式 中 , 反 復 原 前 一 個 動 作 ?Sol. [Ctrl]+r39. 在 vi 的 一 般 模 式 中 , 重 做 前 一 個 動 作 ?Sol. .40. vi 如 何 由 一 般 模 式 進 入 編 輯 模 式 ( 在 目 前 游 標 處 插 入 輸 入 之 文 字 )?Sol. i41. vi 如 何 由 一 般 模 式 進 入 編 輯 模 式 ( 所 在 行 第 一 個 非 空 白 字 元 處 插 入 輸 入 之 文字 )?Sol. I42. vi 如 何 由 一 般 模 式 進 入 編 輯 模 式 ( 由 目 前 游 標 所 在 的 下 一 個 字 元 處 開 始 輸入 )?Sol. a43. vi 如 何 由 一 般 模 式 進 入 編 輯 模 式 ( 由 目 前 游 標 所 在 的 最 後 一 個 字 元 處 開 始 輸入 )?Sol. A44. vi 如 何 由 一 般 模 式 進 入 編 輯 模 式 ( 從 游 標 所 在 的 下 一 行 插 入 新 的 一 行 )?Sol. o45. vi 如 何 由 一 般 模 式 進 入 編 輯 模 式 ( 從 游 標 所 在 的 上 一 行 插 入 新 的 一 行 )?Sol. O46. vi 如 何 由 一 般 模 式 進 入 編 輯 模 式 ( 會 取 代 游 標 所 在 的 那 一 個 字 元 )?Sol. rDe-Yu Wang CSIE CYUT 36


4.2. VI 的 使 用 CHAPTER 4. VI 編 輯 器47. vi 如 何 由 一 般 模 式 進 入 編 輯 模 式 ( 會 一 直 取 代 游 標 所 在 的 文 字 , 直 到 退 出 編輯 模 式 )?Sol. R48. vi 如 何 退 出 編 輯 模 式 , 回 到 一 般 模 式 中 ?Sol. 按 下 ESC49. 在 vi 的 一 般 模 式 中 , 輸 入 13 後 按 Enter 與 輸 入 13 後 按 下 G , 代 表 什麼 意 義 ?Sol. 向 下 移 動 13 行 , 以 及 去 到 第 13 行 。50. 在 vi 的 一 般 模 式 中 , 先 以 指 令 將 游 標 移 到 第 13 行 , 複 製 13 到 17 行 ,再 以 指 令 將 游 標 移 到 第 20 行 , 最 後 將 資 料 貼 到 20 行 以 後 , 如 何 做 ?Sol. 13G 5yy 20G p51. 在 vi 的 一 般 模 式 中 , 先 以 指 令 將 游 標 移 到 第 50 行 , 刪 除 50 到 55 行 ,如 何 做 ?Sol. 50G 6dd52. 在 vi 的 一 般 模 式 中 , 如 何 以 指 令 將 游 標 移 到 第 5 行 , 再 連 結 第 5, 6行 ?Sol. 5G J53. 在 vi 的 一 般 模 式 , 輸 入 /find 代 表 什 麼 意 義 ? 另 外 , 輸 入 j 又 代 表 什 麼意 義 ? 輸 入 5k 代 表 什 麼Sol. 搜 尋 find 這 個 字 串 ; 向 下 移 動 : 向 上 移 動 5 個 字 元 。54. 在 vi 的 一 般 模 式 中 , 我 想 要 取 代 目 前 檔 案 第 100 到 200 行 之 間 的 test成 為 TEST 且 不 詢 問 , 要 如 何 做 ?Sol. :100,200s/test/TEST/g55. 在 vi 的 一 般 模 式 中 , 我 想 要 取 代 目 前 檔 案 第 100 到 200 行 之 間 的 test成 為 TEST 且 取 代 前 詢 問 , 要 如 何 做 ?Sol. :100,200s/test/TEST/gc56. 在 vi 的 一 般 模 式 中 , 我 想 要 取 代 目 前 檔 案 第 1 到 最 後 一 行 之 間 的 test成 為 TEST 且 不 詢 問 , 要 如 何 做 ?Sol. :1,$s/test/TEST/g57. 在 vi 的 一 般 模 式 中 , 我 想 要 取 代 目 前 檔 案 第 1 到 最 後 一 行 之 間 的 test成 為 TEST 且 取 代 前 詢 問 , 要 如 何 做 ?Sol. :1,$s/test/TEST/gc58. 在 vi 的 一 般 模 式 中 , 如 何 儲 存 並 結 束 檔 案 後 離 開 ?Sol. 在 一 般 模 式 下 執 行 :wq 或 :x59. 在 vi 的 指 令 列 模 式 中 ,『 :q! 』 代 表 什 麼 意 思 ?Sol. 不 儲 存 , 強 制 離 開 viDe-Yu Wang CSIE CYUT 37


4.2. VI 的 使 用 CHAPTER 4. VI 編 輯 器60. 在 vi 的 一 般 模 式 當 中 , 輸 入 ZZ 代 表 什 麼 意 思 ?Sol. 若 檔 案 已 更 動 , 則 儲 存 後 離 開 , 若 未 被 更 動 , 則 直 接 離 開 vi 。61. 在 vi 的 一 般 模 式 中 , 如 何 將 編 輯 的 資 料 寫 入 硬 碟 檔 案 中 ?Sol. 輸 入 :w62. 在 vi 的 一 般 模 式 中 , 如 何 將 目 前 編 輯 的 檔 案 另 存 為 file1.txt?Sol. 輸 入 :w file1.txt63. 在 vi 的 一 般 模 式 中 , 若 目 前 編 輯 的 檔 案 為 唯 讀 檔 , 如 何 強 制 存 回 ?Sol. 輸 入 :w!64. 在 vi 的 一 般 模 式 中 , 如 何 離 開 vi?Sol. 輸 入 :q65. 在 vi 的 一 般 模 式 中 , 如 何 強 制 離 開 不 儲 存 檔 案 ?Sol. 輸 入 :q!66. 在 vi 的 一 般 模 式 中 , 如 何 儲 存 後 離 開 ?Sol. 輸 入 :wq 或 :x67. 在 vi 的 一 般 模 式 中 , 如 何 強 制 儲 存 後 離 開 ?Sol. 輸 入 :wq! 或 :x!68. 在 vi 的 一 般 模 式 中 , 如 何 將 目 前 編 輯 的 檔 案 還 原 到 原 始 狀 態 ?Sol. 輸 入 :e!69. 在 vi 的 一 般 模 式 中 , 如 何 設 定 顯 示 行 號 ?Sol. 輸 入 :set nu70. 在 vi 的 一 般 模 式 中 , 如 何 取 消 設 定 顯 示 行 號 ?Sol. 輸 入 :set nonu71. 在 vi 的 一 般 模 式 中 , 如 何 讀 取 另 一 檔 案 file.txt?Sol. 輸 入 :r file.txt72. 在 vi 的 一 般 模 式 中 , 如 何 將 10 到 20 的 內 容 儲 存 成 file1.txt 這 個 檔案 ?Sol. 輸 入 :10,20 w file1.txt73. 在 vi 的 一 般 模 式 中 , 如 何 將 10 到 最 後 一 行 的 內 容 儲 存 成 file1.txt 這個 檔 案 ?Sol. 輸 入 :10,$ w file1.txt74. 在 vi 的 一 般 模 式 中 , 如 何 暫 時 離 開 , 執 行 指 令 ls -l?Sol. 輸 入 :! ls -l75. 在 vi 編 輯 檔 案 file.txt 中 , 同 時 會 產 生 一 暫 存 檔 , 其 檔 名 為 何 ?Sol. .file.txt.swpDe-Yu Wang CSIE CYUT 38


4.3. VIM 的 額 外 功 能 CHAPTER 4. VI 編 輯 器76. 如 果 要 以 vi 編 輯 檔 案 file.txt 時 , 出 現 是 否 回 復 的 訊 息 , 表 示 有 那 個 暫存 檔 存 在 ?Sol. .file.txt.swp4.3 vim 的 額 外 功 能1. 如 果 使 用 vi, 在 畫 面 右 下 角 有 目 前 游 標 所 在 行 列 號 碼 , 則 vi 己 被 vim 取代 了 。✞谱 [dywang@dywOffice tmp]$ ll /bin/vi*lrwxrwxrwx 1 root root 20 Oct 17 13:11 /bin/vi -> /etc/alternatives/vi*谳 lrwxrwxrwx 1 root root 21 Oct 17 13:11 /bin/vim -> /etc/alternatives/vim*[dywang@dywOffice tmp]$ ll /etc/alternatives/vi*谵 lrwxrwxrwx 1 root root 21 Oct 17 13:11 /etc/alternatives/vi ->/usr/bin/vim-enhanced*谷 lrwxrwxrwx 1 root root 21 Oct 17 13:11 /etc/alternatives/vim ->/usr/bin/vim-enhanced*✡✝✆2. vim 具 有 顏 色 顯 示 的 功 能 , 並 且 還 支 援 許 多 的 程 式 語 法 。3. vim /etc/man.config 出 現 訊 息 說 明 :✞"/etc/man.config" [readonly] 150L, 4900C 1,1Top✡✝✆(a) 編 輯 檔 案 名 稱 為 /etc/man.config;(b) 檔 案 為 唯 讀 檔 ;(c) 檔 案 共 有 150 行 ,4900 字 元 ;(d) 目 前 游 標 所 在 位 置 為 第 一 行 , 第 一 列 ;(e) 目 前 頁 面 在 最 前 頁 。4. 區 塊 選 擇區 塊 選 擇 的 按 鍵 意 義v 字 元 選 擇 , 會 將 游 標 經 過 的 地 方 反 白 選 擇 。V 行 選 擇 , 會 將 游 標 經 過 的 反 白 選 擇 。[Ctrl]+v 區 塊 選 擇 , 可 以 用 長 方 形 的 方 式 選 擇 資 料 。y 將 反 白 的 地 方 複 製 起 來 。d 將 反 白 的 地 方 刪 除 掉 。De-Yu Wang CSIE CYUT 39


4.3. VIM 的 額 外 功 能 CHAPTER 4. VI 編 輯 器5. 多 檔 案 編 輯(a) vi 內 使 用 :r filename 可 將 檔 案 filename 的 內 容 在 游 標 處 插 入 。(b) 可 於 vim 後 接 多 個 檔 案 來 同 時 開 啟 多 個 檔 案 , 例 如 :vim filename1filename2 filename3。 其 相 關 按 鍵 有 :多 檔 案 編 輯 的 按 鍵:n 編 輯 下 一 個 檔 案 。:N 編 輯 上 一 個 檔 案 。:files 列 出 目 前 開 啟 的 所 有 檔 案 。6. 多 視 窗 功 能(a) 在 指 令 列 模 式 輸 入 :sp filename。(b) 如 果 省 略 filename 則 兩 視 窗 為 同 一 檔 案 。多 視 窗 下 的 按 鍵 功 能:sp 開 啟 同 一 檔 案 於 新 視 窗 。:sp filename 開 啟 檔 案 filename 於 新 視 窗 。[Ctrl]+wj 游 標 移 動 到 下 方 的 視 窗 。 按 法 為 : 先 按 下[Ctrl] 不 放 , 再 下 w 後 放 開 所 有 的 按 鍵 , 然後 再 按 下 j。[Ctrl]+wk 游 標 移 動 到 上 方 的 視 窗 。 按 法 為 同 上 。[Ctrl]+wq 結 束 下 方 視 窗 , 與 [Ctrl]+w 移 動 到 下 方 視 窗後 , 再 按 下 :q 離 開 相 同 。7. vim 環 境 設 定(a) 個 人 動 作 記 錄 檔 案 :~/.viminfo。 例 如 : 編 輯 同 一 檔 案 時 , 游 標 會 在 上次 退 出 時 的 位 置 。(b) 整 體 vim 的 設 定 值 放 在 /etc/vimrc。(c) 若 要 更 改 vim 設 定 , 建 議 自 行 建 立 ~/.vimrc。vim 的 環 境 設 定 參 數:set nu 設 定 行 號 。:set nonu 取 消 定 行 號 。:set hlsearch 將 搜 尋 的 字 串 反 白 。:set autoindent 自 動 縮 排 。:set noautoindent 不 自 動 縮 排 。:set backup自 動 儲 存 備 份 。 備 份 檔 名 為 filename~。:set rule 顯 示 右 下 角 的 狀 態 說 明 。:set showmode 顯 示 --insert-- 等 字 眼 在 左 下 角 的 狀 態 列 。:set backspace=(012) 2 利 用 backspace 例 退 鍵 除 任 意 字 元 ;0 或 1 僅 可 刪 除 剛 剛 輸 入 的 字 元 。:set all 顯 示 目 前 所 有 的 環 境 參 數 設 定 值 。:syntax (off|on) 是 否 依 據 程 式 相 關 語 法 顯 示 不 同 顏 色 。De-Yu Wang CSIE CYUT 40


4.3. VIM 的 額 外 功 能 CHAPTER 4. VI 編 輯 器練 習 題1. 在 vim 的 一 般 模 式 中 , 如 何 將 游 標 經 過 的 地 方 反 白 選 擇 ?Sol. 按 v2. 在 vim 的 一 般 模 式 中 , 如 何 將 游 標 經 過 的 反 白 選 擇 ?Sol. 按 V3. 在 vim 的 一 般 模 式 中 , 如 何 進 入 區 塊 選 擇 ( 長 方 形 ) 環 境 ?Sol. [Ctrl]+v4. 在 vim 的 一 般 模 式 中 , 區 塊 選 擇 後 , 要 將 反 白 的 區 塊 複 製 , 需 按 什 麼 鍵 ?Sol. y5. 在 vim 的 一 般 模 式 中 , 區 塊 選 擇 後 , 要 將 反 白 的 區 塊 刪 除 , 需 按 什 麼 鍵 ?Sol. d6. vim 在 多 檔 編 輯 時 , 如 何 列 出 開 啟 的 所 有 檔 案 ?Sol. :files7. vim 如 何 將 檔 案 filename 的 內 容 在 游 標 處 插 入 ?Sol. :r filename8. 如 何 在 啟 動 vim 時 , 同 時 編 輯 file1 與 file2 兩 個 檔 案 ?Sol. vim file1 file29. vim 在 多 檔 案 編 輯 時 , 如 何 編 輯 下 一 個 檔 案 ?Sol. 按 :n10. vim 在 多 檔 案 編 輯 時 , 如 何 編 輯 上 一 個 檔 案 ?Sol. 按 :N11. vim 如 何 開 啟 同 一 檔 案 於 新 視 窗 ?Sol. :sp12. vim 如 何 開 啟 檔 案 filename 於 新 視 窗 ?Sol. :sp filename13. vim 在 多 視 窗 下 , 如 何 將 檔 游 標 移 動 到 上 方 的 視 窗 ?Sol. 先 按 [Ctrl] 不 放 , 再 按 w 後 , 放 開 所 有 按 鍵 , 再 按 下 k。14. vim 在 多 視 窗 下 , 如 何 將 檔 游 標 移 動 到 下 方 的 視 窗 ?Sol. 先 按 [Ctrl] 不 放 , 再 按 w 後 , 放 開 所 有 按 鍵 , 再 按 下 j。15. vim 個 人 動 作 記 錄 檔 案 為 何 ( 請 寫 出 目 錄 / 檔 名 )?Sol. ~/.viminfo16. 整 體 vim 的 設 定 檔 案 為 何 ( 請 寫 出 目 錄 / 檔 名 )?Sol. /etc/vimrc17. 若 要 更 改 vim 設 定 , 可 以 在 自 己 的 家 目 錄 建 立 那 個 檔 案 ?Sol. ~/.vimrc。De-Yu Wang CSIE CYUT 41


4.4. VI 實 機 練 習 題 CHAPTER 4. VI 編 輯 器4.4 vi 實 機 練 習 題4.4.1 練 習 一1. 在 自 己 的 家 目 錄 建 立 一 個 新 的 目 錄 zzz。2. 進 入 目 錄 zzz。3. 下 載 檔 案 viex1.txt, 並 重 新 命 名 為 vi1.txt4. 使 用 vi 或 vim 編 輯 vi1.txt, 執 行 以 下 動 作 :(a) 先 到 第 10 行 。(b) 複 製 3 行 。(c) 再 到 第 20 行 , 往 下 貼 上 。(d) 再 到 最 後 一 行 , 往 下 產 生 一 行 空 白 行 方 式 進 入 " 插 入 " 模 式 進 行 編 輯 。(e) 加 入 文 字 ’ABCDEabcde’。(f) 換 行 再 加 入 ’1234567890’。(g) 搜 尋 字 串 "MANPATH", 並 將 其 取 代 為 你 的 學 號 。(h) 存 檔 後 退 出 。4.4.2 練 習 二1. 在 自 己 的 家 目 錄 建 立 一 個 新 的 目 錄 zzz。2. 進 入 目 錄 zzz。3. 下 載 檔 案 viex2.txt, 並 重 新 命 名 為 vi2.txt4. 使 用 vi 或 vim 編 輯 vi2.txt, 執 行 以 下 動 作 :(a) 先 到 第 5 行 。(b) 刪 除 3 行 。(c) 再 到 第 30 行 , 往 上 貼 上 。(d) 再 到 第 一 行 , 往 上 產 生 一 行 空 白 行 方 式 進 入 " 插 入 " 模 式 進 行 編 輯 。(e) 加 入 文 字 ’ABCDEabcde’。(f) 換 行 再 加 入 ’1234567890’。(g) 從 第 30 行 至 最 後 一 行 搜 尋 字 串 "MANPATH", 並 將 其 取 代 為 你 的 學 號 。(h) 存 檔 後 退 出 。De-Yu Wang CSIE CYUT 42


4.4. VI 實 機 練 習 題 CHAPTER 4. VI 編 輯 器4.4.3 練 習 三1. 在 自 己 的 家 目 錄 建 立 一 個 新 的 目 錄 zzz。2. 進 入 目 錄 zzz。3. 下 載 檔 案 viex3.txt, 並 重 新 命 名 為 vi2.txt4. 使 用 vi 或 vim 編 輯 vi3.txt, 執 行 以 下 動 作 :(a) 先 到 第 35 行 。(b) 將 下 一 行 合 併 至 這 一 行(c) 再 到 第 20 行 , 刪 除 這 一 行 到 第 一 行 的 資 料 。(d) 再 到 第 10 行 , 在 這 行 的 最 後 加 入 文 字 ’ABCDEabcde’。(e) 換 行 再 加 入 ’1234567890’。(f) 從 第 30 行 至 第 55 行 搜 尋 字 串 "man", 並 將 其 取 代 為 你 的 學 號 。(g) 存 檔 後 退 出 。De-Yu Wang CSIE CYUT 43


4.4. VI 實 機 練 習 題 CHAPTER 4. VI 編 輯 器De-Yu Wang CSIE CYUT 44


CHAPTER 5.正 規 表 示 法 與 管 線 處 理Chapter 5正 規 表 示 法 與 管 線 處 理5.1 基 礎 正 規 表 示 法• 什 麼 是 正 規 表 示 法1. 處 理 字 串 的 方 法 , 以 行 為 單 位 進 行 字 串 的 處 理 行 為 。2. 透 過 一 些 特 殊 符 號 的 輔 助 , 讓 使 用 者 輕 易 的 達 到 搜 尋 、 取 代 , 限 定 某 特定 字 串 的 處 理 程 序 。3. 延 伸 的 正 規 表 示 法 : 可 以 作 群 組 的 字 串 『 或 (or)』 及 『 且 (and)』 的 處理 。• 正 規 表 示 法 用 途1. 系 統 管 理 員 的 可 以 透 過 『 正 規 表 示 法 』 的 功 能 , 將 登 錄 的 資 訊 進 行 處理 , 僅 取 出 『 有 問 題 』 的 資 訊 來 進 行 分 析 。2. 一 般 支 援 正 規 表 示 法 的 軟 體 可 利 用 其 進 行 字 串 的 處 理 , 例 如 :『 郵 件 伺服 器 』 以 『 字 串 』 的 比 對 來 過 濾 郵 件 。3. 軟 體 中 輸 入 欄 位 的 格 式 限 制 , 例 如 : 只 能 為 數 字 。• less, man, vim, grep, awk ,sed 等 工 具 皆 支 援 正 規 表 示 法 。• 重 要 特 殊 字 元 (characters)谱字 符✞RE 意 義 與 範 例谳 ^word 待 搜 尋 的 字 串 (word) 在 行 首 。 範 例 :grep -n ’^#’ re.txt 搜 尋 行 首 為谵 # 開 始 的 那 一 行 。word$ 待 搜 尋 的 字 串 (word) 在 行 尾 。 範 例 :谷grep -n ’!$’ re.txt 將 行 尾 為! 的 那 一 行 列 印 出 來 。谹 . 代 表 『 任 意 一 個 』 字 符 , 一 定 是 一 個 任 意 字 符 。 範 例 :grep -n ’e.e’ re.txt 搜 尋 的 字 串 可 以 是De-Yu Wang CSIE CYUT 45


5.1. 基 礎 正 規 表 示 法 CHAPTER 5. 正 規 表 示 法 與 管 線 處 理谱 谱(eve) (eae) (eee) (e e), 但 不 能 僅 有 (ee)。 亦 即e 與 e 中 間 『 一 定 』 僅 有 一 個 字 元 , 而 空 白 字 元 也 是 字 元 。谱 谳 \ 跳 脫 字 符 , 將 特 殊 符 號 的 特 殊 意 義 去 除 。 範 例 :grep -n \’ re.txt 搜 尋 含 有 單 引 號谱 谵 ’ 的 那 一 行 。谱 谷* 重 複 零 個 或 多 個 的 前 一 個 RE 字 符 範 例 :grep -n ’ess*’ re.txt 找 出 含 有(es) (ess) (esss) 等 等 的 字 串 。谱 谹 \{n,m\} 連 續 n 到 m 個 的 『 前 一 個 RE 字 符 』 若 為\{n\} 則 是 連 續 n 個 的 前 一 個 RE 字 符 , 若 是谲 谱 \{n,\} 則 是 連 續 n 個 以 上 的 前 一 個 RE 字 符 。 範 例 :grep -n ’go\{2,3\}g’ re.txt 在谲 谳谲 谵谲 谷g 與 g 之 間 有 2 個 到 3 個 的 o 存 在 的 字 串 , 亦即 (goog)(gooog)[ ] 在 [ ] 當 中 『 謹 代 表 一 個 待 搜 尋 的 字 元 』 範 例 :grep -n ’g[ld]’ re.txt 搜 尋 含 有(gl) 或 (gd) 的 那 一 行 範 例 :grep -n ’[0-9]’ re.txt 搜 尋 含 有 任 意 數 字 的 那 一 行 。 在 字 元 集 合谲 谹 [ ] 中 的 減 號 - 是 代 表 兩 個 字 元 之 間 的 所 有 連 續 字 元 。:[^]^ 在 [ ] 內 時 , 代 表 的 意 義 是 『 反 向 選 擇 』 範 例 :谳 谱grep -n ’oo[^t]’ re.txt 搜 尋 的 字 串 可 以 是(oog) (ood) 但 不 能 是 (oot)。谳 谳 [[:digit:]] 數 字 , 與 相 同 [0-9][[:lower:]] 小 寫 字 元 , 與 [a-z 相 同 ]谳 谵[[:upper:]] 大 寫 字 元 , 與 [A-Z 相 同 ] 更 多 的 表 示 法 可 下 指 令man 7 regex 查 詢 。✡✝✆• 以 grep 擷 取 字 串1. 準 備 一 純 文 字 檔✞谱 [root@kvm5 ~]# cp /etc/auto.master /tmp[root@kvm5 ~]# cat /tmp/auto.master谳 # Sample auto.master file# This is an automounter map and it has the following format谵 # key [ -mount-options-separated-by-comma ] location# For details of the format look at autofs(5).谷 #/misc /etc/auto.misc谹 ## NOTE: mounts done from a hosts map will be mounted with the谱 谱 # "nosuid" and "nodev" options unless the "suid" and "dev"# options are explicitly given.谱 谳 #/net -hosts谱 谵 #De-Yu Wang CSIE CYUT 46


5.1. 基 礎 正 規 表 示 法 CHAPTER 5. 正 規 表 示 法 與 管 線 處 理# Include central master map if it can be found using谱 谷 # nsswitch sources.#谱 谹 # Note that if there are entries for /net or /misc (as# above) in the included master map any keys that are the谲 谱 # same will not be seen as the first read key seen takes# precedence.谲 谳 #+auto.master✡✝✆2. 搜 尋 特 定 字 串 : 從 檔 案 中 取 得 特 定 字 串✞[root@kvm5 ~]# grep ’format’ /tmp/auto.master谲 # This is an automounter map and it has the following format# For details of the format look at autofs(5).谴 [root@kvm5 ~]# grep --color ’format’ /tmp/auto.master# This is an automounter map and it has the following format谶 # For details of the format look at autofs(5).✡✝✆3. 行 首 為 +✞[root@kvm5 ~]# grep --color ’^+’ /tmp/auto.master谲 +auto.master✡✝✆4. 行 尾 為 the✞[root@kvm5 ~]# grep --color ’the$’ /tmp/auto.master谲 # NOTE: mounts done from a hosts map will be mounted with the# above) in the included master map any keys that are the✡✝✆5. 包 含 auto.*✞谱 [root@kvm5 ~]# grep --color ’auto.*’ /tmp/auto.master# Sample auto.master file谳 # This is an automounter map and it has the following format# For details of the format look at autofs(5).谵 /misc /etc/auto.misc+auto.master谷 [root@kvm5 ~]# grep --color ’auto\.*’ /tmp/auto.masterDe-Yu Wang CSIE CYUT 47


5.1. 基 礎 正 規 表 示 法 CHAPTER 5. 正 規 表 示 法 與 管 線 處 理# Sample auto.master file谹 # This is an automounter map and it has the following format# For details of the format look at autofs(5).谱 谱 /misc /etc/auto.misc+auto.master谱 谳 [root@kvm5 ~]# grep --color ’auto\.\.*’ /tmp/auto.master# Sample auto.master file谱 谵 /misc /etc/auto.misc+auto.master✡✝✆6. 利 用 [ ] 來 搜 尋 集 合 字 元✞[root@kvm5 ~]# grep --color ’auto[a-z]’ /tmp/auto.master谲 # This is an automounter map and it has the following format# For details of the format look at autofs(5).✡✝✆7. 利 用 [ ] 反 向 搜 尋 集 合 字 元✞谱 [root@kvm5 ~]# grep --color ’auto[^a-z]’ /tmp/auto.master# Sample auto.master file谳 /misc /etc/auto.misc+auto.master✡✝✆8. 搜 尋 數 字✞[root@kvm5 ~]# grep --color ’[0-9]’ /tmp/auto.master谲 # For details of the format look at autofs(5).✡✝✆9. 搜 尋 大 寫 字 元✞[root@kvm5 ~]# grep --color ’[[:upper:]]’ /tmp/auto.master谲 # Sample auto.master file# This is an automounter map and it has the following format谴 # For details of the format look at autofs(5).# NOTE: mounts done from a hosts map will be mounted with the谶 # Include central master map if it can be found using# Note that if there are entries for /net or /misc (as✡✝✆De-Yu Wang CSIE CYUT 48


5.2. 延 伸 正 規 表 示 法 CHAPTER 5. 正 規 表 示 法 與 管 線 處 理10. 搜 尋 非 行 首 非 #, 即 非 註 解 行✞谱 [root@kvm5 ~]# grep --color ’^[^#]’ /tmp/auto.master/misc /etc/auto.misc谳 /net -hosts+auto.master✡✝✆• 例 題 : 以 正 規 表 示 法 顯 示 行 號 方 式 找 出 目 錄 /etc 以 下 符 合 下 列 條 件 之 檔案 。1. 包 含 boot 或 root 字 串 的 檔 案 。2. 包 含 b 開 頭 t 結 尾 之 字 串 的 檔 案 。3. b 開 頭 t 結 尾 且 中 間 1 個 o 以 上 之 字 串 的 檔 案 。4. 包 含 b 開 頭 t 結 尾 且 中 間 2 至 4 個 o 之 字 串 的 檔 案 。5. 包 含 行 首 為 root 之 字 串 的 檔 案 。6. 包 含 行 尾 為 root 之 字 串 的 檔 案 。• 例 題 : 想 要 查 出 來 檔 案 中 含 有 ! 與 > 的 字 行 ( ! 在 正 規 表 示 法 中 並 不 是特 殊 字 元 ):✞grep -n ’[!>]’ re.txt✡✝✆5.2 延 伸 正 規 表 示 法• grep 支 援 的 是 基 礎 型 的 正 規 表 示 法 , 延 伸 正 規 表 示 法 egrep 是 grep -E的 命 令 別 名 。• 延 伸 型 正 規 表 示 法 之 特 殊 符 號✞谱 RE 字 符 意 義 與 範 例+ 重 複 『 一 個 或 一 個 以 上 』 的 前 一 個 RE 字 符 範 例 :谳egrep -n ’go+d’ re.txt 搜 尋(god) (good) (goood)... 等 等 的 字 串 。谵 ? 『 零 個 或 一 個 』 的 前 一 個 RE 字 符 範 例 :egrep -n ’go?d’ re.txt 搜 尋谷 (gd) (god) 這 兩 個 字 串 。| 用 或 ( or ) 的 方 式 找 出 數 個 字 串 範 例 :谹egrep -n ’gd|good|dog’ re.txt 搜 尋De-Yu Wang CSIE CYUT 49


5.3. 資 料 流 重 導 向 CHAPTER 5. 正 規 表 示 法 與 管 線 處 理gd 、 good 或 dog 這 三 個 字 串 。谱 谱 ( ) 找 出 『 群 組 』 字 串 或 作 為 『 多 個 重 複 群 組 』 的 判 別 範 例 :egrep -n ’g(la|oo)d’ 搜 尋谱 谳 (glad) 或 (good) 這 兩 個 字 串 。 範 例 :egrep -n ’A(xyz)+C’ re.txt 找 開 頭 是谱 谵 A 結 尾 是 C , 中 間 有 一 個 以 上 的 "xyz" 字 串 。✡✝✆• 例 題 : 去 除 空 白 行 與 行 首 為 # 的 行 列✞谱 # 基 礎 型 的 正 規 表 示 法 需 要 使 用 到 管 線 命 令 來 搜 尋 兩 次grep -v ’^$’ re.txt | grep -v ’^#’谳 # 支 援 延 伸 型 正 規 表 示 法 可 以 簡 化 為 :egrep -v ’^$|^#’ re.txt✡✝✆• 例 題 : 以 延 伸 型 正 規 表 示 法 顯 示 行 號 方 式 , 找 出 目 錄 /etc 以 下 符 合 下 列 條件 之 檔 案 。練 習 題1. 包 含 boot 或 root 字 串 的 檔 案 。2. 包 含 b 開 頭 t 結 尾 且 中 間 0 個 或 1 個 o 之 字 串 的 檔 案 。3. b 開 頭 t 結 尾 且 中 間 1 個 o 以 上 之 字 串 的 檔 案 。5.3 資 料 流 重 導 向• 為 何 要 使 用 命 令 輸 出 重 導 向 ?1. 儲 存 螢 幕 輸 出 的 資 訊 ;2. 背 景 執 行 中 的 程 式 , 不 希 望 他 干 擾 螢 幕 正 常 的 輸 出 結 果 時 ;3. 儲 存 系 統 例 行 命 令 ( 例 如 寫 在 /etc/crontab 中 的 檔 案 ) 的 執 行 結 果 ;4. 將 已 知 的 可 能 錯 誤 訊 息 丟 掉 『 2> /dev/null 』;5. 錯 誤 訊 息 與 正 確 訊 息 需 要 分 別 輸 出 時 。• 指 令 執 行 過 程 之 資 料 傳 輸file standard input ✲ command standard output ✲file/devicestandard error❄file/deviceDe-Yu Wang CSIE CYUT 50


5.3. 資 料 流 重 導 向 CHAPTER 5. 正 規 表 示 法 與 管 線 處 理1. 執 行 cat /etc/issue, 出 現 standard output。✞[root@kvm5 ~]# cat /etc/issue谲 CentOS <strong>Linux</strong> release 6.0 (Final)Kernel \r on an \m✡✝✆2. 執 行 cat /tmp/issue, 出 現 standard error。✞谱 [root@kvm5 ~]# cat /tmp/issuecat: /tmp/issue: No such file or directory✡✝✆3. 傳 送 指 令(a) 標 準 輸 入 (stdin) : 代 碼 為 0 , 使 用 < 或 >;(c) 標 準 錯 誤 輸 出 (stderr): 代 碼 為 2 , 使 用 2> 或 2>>;>, 1> 標 準 輸 出 至 檔 案 , 該 檔 案 被 覆 蓋 或 建 立 。>>, 1>> 標 準 輸 出 至 檔 案 , 該 檔 案 被 建 立 或 累 加 。command 2> 裝 置 或 檔 案 錯 誤 輸 出 至 檔 案 , 該 檔 案 被 覆 蓋 或 建 立 。2>> 錯 誤 輸 出 至 檔 案 , 該 檔 案 被 建 立 或 累 加 。< 輸 入 /tmp/issue谲 [root@kvm5 ~]# cat /tmp/issueCentOS <strong>Linux</strong> release 6.0 (Final)谴 Kernel \r on an \m✡✝✆5. 下 達 > 與 >>✞[root@kvm5 ~]# cat /etc/issue >> /tmp/issue谲 [root@kvm5 ~]# cat /tmp/issueCentOS <strong>Linux</strong> release 6.0 (Final)谴 Kernel \r on an \m谶CentOS <strong>Linux</strong> release 6.0 (Final)Kernel \r on an \m✡✝✆De-Yu Wang CSIE CYUT 51


5.3. 資 料 流 重 導 向 CHAPTER 5. 正 規 表 示 法 與 管 線 處 理6. 下 達 2>谱谳谵✞[root@kvm5 ~]# cat /tmp/dywangcat: /tmp/dywang: No such file or directory[root@kvm5 ~]# cat /tmp/dywang 2> cat-error[root@kvm5 ~]# cat cat-errorcat: /tmp/dywang: No such file or directory谷[root@kvm5 ~]# cat /tmp/dywang 2> /dev/null✡✝✆7. 下 達 2>&1: 標 準 輸 出 與 標 準 錯 誤 輸 出 同 時 寫 入 同 一 個 檔 案✞谱 [root@kvm5 ~]# cat /etc/issue /tmp/dywangCentOS <strong>Linux</strong> release 6.0 (Final)谳 Kernel \r on an \m谵 cat: /tmp/dywang: No such file or directory[root@kvm5 ~]# cat /etc/issue /tmp/dywang 1> list 2>list谷 [root@kvm5 ~]# cat listcat: /tmp/dywang: No such file or directory谹 n an \m谱 谱 [root@kvm5 ~]# cat /etc/issue /tmp/dywang 2> list 1>list[root@kvm5 ~]# cat list谱 谳 cat: /tmp/dywang: No such file or directoryn an \m谱 谵[root@kvm5 ~]# cat /etc/issue /tmp/dywang 1> list 2>&1谱 谷 [root@kvm5 ~]# cat listCentOS <strong>Linux</strong> release 6.0 (Final)谱 谹 Kernel \r on an \m谲 谱cat: /tmp/dywang: No such file or directory✡✝✆8. 將 螢 幕 輸 入 結 果 存 入 檔 案✞谱 [root@kvm5 ~]# cat > list first谳 > second> EOF谵 [root@kvm5 ~]# cat listfirst谷 second✡✝✆De-Yu Wang CSIE CYUT 52


5.4. 管 線 命 令 (PIPE) CHAPTER 5. 正 規 表 示 法 與 管 線 處 理• 命 令 執 行 的 判 斷 依 據1. 指 令 間 以 分 號 ( ; ) 隔 開 : 連 續 執 行 指 令 。✞谱 [root@kvm5 ~]# sync; shutdown -h now✡✝✆2. 指 令 間 以 && 隔 開 : 前 面 指 令 執 行 結 果 正 確 , 就 接 著 執 行 後 續 的 指 令 ,否 則 就 略 過 。✞谱 [root@kvm5 ~]# ls /tmp && touch /tmp/testingagin## 目 錄 / 存 在 , 所 以 tmp/tmp/ 會 被 建 立 。testingagin谳 [root@kvm5 ~]# ls /vbird && touch /vbird/test## 目 錄 / 不 存 在 , 所 以 vbirdtouch /vbird/ 不 會 被 執 行 。test✡✝✆3. 指 令 間 以 || 隔 開 : 前 一 個 指 令 有 錯 誤 時 , 後 面 的 指 令 才 被 執 行 。✞[root@kvm5 ~]# ls /tmp/vbirding || touch /tmp/vbirding✡✝✆4. 例 題 : 以 ls 測 試 /tmp/csie 是 否 存 在 ? 若 存 在 則 顯 示 "exist" ,若 不 存 在 , 則 顯 示 "not exist"。✞谱 ls /tmp/csie && echo "exist" || echo "not exist"


5.4. 管 線 命 令 (PIPE) CHAPTER 5. 正 規 表 示 法 與 管 線 處 理1. 使 用 cat 指 令 輸 出 後 的 內 容 , 以 grep 找 出 要 看 的 字 串 。✞[root@kvm5 ~]# cat /tmp/auto.master | grep misc谲 /misc /etc/auto.misc# Note that if there are entries for /net or /misc (as✡✝✆2. 使 用 ls 指 令 輸 出 後 的 內 容 , 被 less 讀 取 , 並 且 利 用 less 的 功 能 前 後 翻 動相 關 的 資 訊 。✞谱 [root@kvm5 ~]# ls -al /etc | less✡✝✆3. Examples谱谳谵谷谹谱 谱谱 谳谱 谵谱 谷谱 谹✞[root@kvm5 ~]# ls /usr/lib64 | grep ’libX11’libX11.so.6libX11.so.6.3.0libX11-xcb.so.1libX11-xcb.so.1.0.0[root@kvm5 ~]# grep ’^n.*/sbin/nologin$’ /etc/passwdnobody:x:99:99:Nobody:/:/sbin/nologinnscd:x:28:28:NSCD Daemon:/:/sbin/nologinnfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologinnslcd:x:65:55:LDAP Client User:/:/sbin/nologin[root@kvm5 ~]# grep ’^n.*/sbin/nologin$’ /etc/passwd | sortnfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinnscd:x:28:28:NSCD Daemon:/:/sbin/nologinnslcd:x:65:55:LDAP Client User:/:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologin谲 谱 [root@kvm5 ~]# grep ’^n.*/sbin/nologin$’ /etc/passwd | sort |mail -s ’dywang test’ root@kvm5.deyu.wang[root@kvm5 ~]# mail谲 谳 Heirloom Mail version 12.4 7/29/08. Type ? for help."/var/spool/mail/root": 2 messages 2 new谲 谵 >N 1 Mail Delivery <strong>System</strong> Mon Jan 23 19:19 96/3452 "Undelivered Mail Returned to Sender"N 2 root Mon Jan 23 19:24 39/1643 "dywang test"De-Yu Wang CSIE CYUT 54


5.4. 管 線 命 令 (PIPE) CHAPTER 5. 正 規 表 示 法 與 管 線 處 理谲 谷 & 2Message 2:谲 谹 From root@kvm5.deyu.wang Mon Jan 23 19:24:16 2012Return-Path: 谳 谱 X-Original-To: root@kvm5.deyu.wangDelivered-To: root@kvm5.deyu.wang谳 谳 Date: Mon, 23 Jan 2012 19:24:16 +0800To: root@kvm5.deyu.wang谳 谵 Subject: dywang testUser-Agent: Heirloom mailx 12.4 7/29/08谳 谷 Content-Type: text/plain; charset=us-asciiFrom: root@kvm5.deyu.wang (root)谳 谹 Status: R谴 谱谴 谳谴 谵nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinnscd:x:28:28:NSCD Daemon:/:/sbin/nologinnslcd:x:65:55:LDAP Client User:/:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologin谴 谷& qHeld 2 messages in /var/spool/mail/root✡✝✆De-Yu Wang CSIE CYUT 55


5.4. 管 線 命 令 (PIPE) CHAPTER 5. 正 規 表 示 法 與 管 線 處 理De-Yu Wang CSIE CYUT 56


CHAPTER 6.基 本 的 系 統 設 定Chapter 6基 本 的 系 統 設 定6.1 <strong>Linux</strong> 網 路 設 定1. 網 路 設 定 相 關 檔 案(a) /etc/sysconfig/network: 設 定 『 主 機 名 稱 ( HOSTNAME ) 與 開 機 啟 動Network 與 否 』(b) /etc/sysconfig/network-scripts/ifcfg-eth0: 設 定 網 路 卡 參 數 的 檔案i. networkii. IPiii. netmaskiv. broadcastv. gatewayvi. 開 機 時 的 IP 取 得 方 式 ( DHCP, static ,none)vii. 是 否 在 開 機 的 時 候 啟 動 。(c) /etc/resolv.conf: 設 定 DNS IP( 名 稱 解 析 伺 服 器 ) 的 檔 案 , 中 華 電信 的 DNS 168.95.1.1。(d) /etc/hosts: 設 定 Hostname 對 應 IP。2. 固 定 IP 上 網 方 式 : 假 設 <strong>Linux</strong> 主 機 需 要 的 參 數 如 下 :✞Hostname deyu谲IP: 192.168.122.19谴 Netmask 255.255.255.0Network 192.168.122.0


6.1. LINUX 網 路 設 定 CHAPTER 6. 基 本 的 系 統 設 定✡✝✆3. 修 改 主 機 名 稱 :/etc/sysconfig/network✞谱 [root@deyu ~]# cat /etc/sysconfig/networkNETWORKING=yes谳 HOSTNAME=deyuGATEWAY=192.168.122.1✡✝✆4. 查 詢 及 設 定 主 機 名 稱 :hostname✞[root@deyu ~]# hostname谲 deyu[root@deyu ~]# hostname csie谴 [root@deyu ~]# hostnamecsie谶 [root@deyu ~]# hostname deyu[root@deyu ~]# hostname谸 deyu✡✝✆5. 設 定 網 路 參 數 :/etc/sysconfig/network-scripts/ifcfg-eth0✞[root@deyu ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0谲 DEVICE=eth0


6.1. LINUX 網 路 設 定 CHAPTER 6. 基 本 的 系 統 設 定6. 啟 動 與 關 閉 網 卡 :✞[root@deyu ~]# ifup eth0谲 [root@deyu ~]# ifdown eth0# 上 面 的 作 法 是 針 對 eth0 來 進 行 啟 動 (ifup) 與 關 閉 (ifdown) ;谴[root@deyu ~]# /etc/init.d/network restart谶 # 針 對 這 部 主 機 的 所 有 網 路 介 面 包 含 ( lo) 與 通 訊 閘 進 行 重 新 啟 動 ,# 所 以 網 路 會 停 頓 再 開 !✡✝✆7. CentOS 6 文 字 界 面 設 定 工 具 setup✞谱 [root@kvm2 ~]# setupText Mode Setup Utility 1.19.9(c)1999-2006 Red Hat, Inc谳 ********** Choose a Tool ************ *谵 * Authentication configuration ** Network configuration *谷 * ** ************ ******** *谹 * * Run Tool * * Quit * ** ************ ******** *谱 谱 * *************************************谱 谳 / between elements | Use to edit aselection谱 谵 ******** Select Action ********* *谱 谷 * Device configuration ** DNS configuration *谱 谹 * ** *谲 谱 * ************* ******** ** * Save&Quit * * Quit * *谲 谳 * ************* ******** ** *谲 谵 *******************************谲 谷 *********** Network Configuration ************ *谲 谹 * ** Name eth0________________ *谳 谱 * Device eth0________________ ** Use DHCP [ ] *De-Yu Wang CSIE CYUT 59


6.2. KVM NETWORK BRIDGE SETUP CHAPTER 6. 基 本 的 系 統 設 定谳 谳 * Static IP 192.168.122.2_______ ** Netmask 255.255.255.0_______ *谳 谵 * Default gateway IP 192.168.122.1_______ ** Primary DNS Server 192.168.122.1_______ *谳 谷 * Secondary DNS Server ____________________ ** *谳 谹 * ****** ********** ** * Ok * * Cancel * *谴 谱 * ****** ********** **********************************************谴 谳 / between elements | selects | next screen谴 谵 ******** DNS configuration ********* *谴 谷 * ** Hostname kvm2.deyu.wang_ *谴 谹 * Primary DNS 192.168.122.1__ ** Secondary DNS _______________ *谵 谱 * Tertiary DNS _______________ ** DNS search path deyu.wang______ *谵 谳 * ** ****** ********** *谵 谵 * * Ok * * Cancel * ** ****** ********** *谵 谷 ***********************************/ between elements | selects | next screen谵 谹 [root@kvm2 ~]# system-config-network 直 接 進 入


6.2. KVM NETWORK BRIDGE SETUP CHAPTER 6. 基 本 的 系 統 設 定✞谱 [root@deyu ~]# cat /etc/sysconfig/network-scripts/ifcfgeth0DEVICE="eth0"谳 BOOTPROTO="static"DNS1="192.168.0.254"谵 HOSTNAME="deyu.example.com"HWADDR="48:5B:39:C4:F5:31"谷 IPADDR="192.168.0.254"MTU="1500"谹 NETMASK="255.255.255.0"NM_CONTROLLED="yes"谱 谱 ONBOOT="yes"✡✝✆ii. 將 eth0 備 份 且 建 立 橋 接 界 面 br0✞谱 [root@deyu ~]# cp /etc/sysconfig/network-scripts/ifcfgeth0\/etc/sysconfig/network-scripts/backup-ifcfg-eth0谳 [root@deyu ~]# cp /etc/sysconfig/network-scripts/ifcfgeth0\/etc/sysconfig/network-scripts/backup-ifcfg-br0✡✝✆iii. 修 改 eth0 成 如 下 :✞DEVICE="eth0"谲 ONBOOT="yes"BRIDGE=br0✡✝✆iv. 修 改 br0 成 如 下 :✞谱 DEVICE="br0"BOOTPROTO="static"谳 IPADDR="192.168.0.254"GATEWAY=192.168.0.254谵 NETMASK="255.255.255.0"DNS1="192.168.0.254"谷 HOSTNAME="deyu.example.com"NAME="Bridge eth0"谹 ONBOOT="yes"TYPE="Bridge"✡✝✆De-Yu Wang CSIE CYUT 61


6.2. KVM NETWORK BRIDGE SETUP CHAPTER 6. 基 本 的 系 統 設 定v. 重 新 啟 動 網 路✞[root@deyu ~]# /etc/init.d/network restart✡✝✆(b) 以 NetworkManager 管 理i. 查 看 eth0 設 定✞谱 DEVICE="eth0"NM_CONTROLLED="yes"谳 BOOTPROTO="none"ONBOOT="yes"✡✝✆ii. 修 改 virbr0 設 定✞[root@rhcsa ~]# vim /usr/share/libvirt/networks/default.xml谲 default谴 谶 谸 谱 谰 ✡✝✆(c) 重 新 啟 動 網 路✞谱 [root@rhcsa ~]# /etc/init.d/NetworkManager restart✡✝✆3. 虛 擬 機 以 dhcp 重 新 啟 動 網 路 , 看 ip 是 否 在 設 定 的 範 圍 內 ?✞谱 [root@kvm2 ~]# /etc/init.d/network restart[root@kvm2 ~]# ifconfig✡✝✆De-Yu Wang CSIE CYUT 62


6.3. 網 路 偵 測 與 觀 察 CHAPTER 6. 基 本 的 系 統 設 定4. 虛 擬 機 要 連 上 外 部 網 路✞[root@deyu ~]# vim /etc/sysctl.conf谲 net.ipv4.ip_forward = 1[root@deyu ~]# sysctl -p谴 [root@deyu ~]# iptables -t nat -A POSTROUTING -o virbr0 -jMASQUERADE✡✝✆6.3 網 路 偵 測 與 觀 察1. ifconfig 手 動 的 暫 時 啟 動 、 觀 察 與 修 改 網 路 介 面 的 相 關 參 數✞[root@deyu ~]# ifconfig {interface} {up|down}


6.3. 網 路 偵 測 與 觀 察 CHAPTER 6. 基 本 的 系 統 設 定谳 谰谳 谲TX packets:10011453 errors:0 dropped:0 overruns:0carrier:0collisions:0 txqueuelen:1000RX bytes:3012738247 (2.8 GiB) TX bytes:2820412995 (2.6GiB)Interrupt:22 Base address:0xc000谳 谴 lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0谳 谶inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:16436 Metric:1谳 谸RX packets:10178 errors:0 dropped:0 overruns:0 frame:0TX packets:10178 errors:0 dropped:0 overruns:0 carrier:0谴 谰collisions:0 txqueuelen:0RX bytes:12722824 (12.1 MiB) TX bytes:12722824 (12.1MiB)谴 谲# 列 出 目 前 已 經 被 啟 動 的 卡 , 不 論 這 個 卡 是 否 有 給 予 , 都 會 被 顯 示 出 來 。 IP谴 谴 # 輸 入 ifconfig , 則 會 秀 出 這 張 介 面 的 相 關 資 料 , 不 管 該 介 面 是 否 有 啟動 。eth0谴 谶谴 谸谵 谰谵 谲谵 谴谵 谶谵 谸* : 網 路 卡 的 代 號 ;eth0* : 網 路 卡 的 硬 體 位 址 , 俗 稱 HWaddr ;MAC* inet :addrIPv4 的 IP 位 址 , 後 續 的 Bcast, Mask 分 別 代 表 的是 Broadcast 與 netmask* inet6 :addrIPv6 版 本 的 , 沒 有 使 用 , 所 以 略 過 ; IP* :MTU* : 網 路 由 啟 動 到 目 前 為 止 的 封 包 接 收 情 況 ,RXpackets 代 表 封 包 數 、errors 代 表 封 包 發 生 錯 誤 的 數量 、dropped 代 表 封 包 有 問 題 而 遭 丟 棄 的 數 量* : 與 TX RX 相 反 , 為 網 路 由 啟 動 到 目 前 為 止 的 傳 送 情 況 ;* : 代 表 封 包 碰 撞 的 情 況 , 如 果 發 生 太 多 次 , 表 示 網 路 狀 況 不 太好 ;collisions* : 代 表 用 來 傳 輸 資 料 的 緩 衝 區 的 儲 存 長 度 ;txqueuelen* RX bytes, TX : 總 傳 送 、 接 收 的 位 元 組 總 量 bytes* Interrupt, : 網 路 卡 硬 體 的 資 料 ,Memory IRQ 岔 斷 與 記 憶 體 位 址 ;範 例 二 : 暫 時 修 改 網 路 介 面谶 谰 [root@deyu ~]# ifconfig eth0 192.168.1.11[root@deyu ~]# ifconfig eth0谶 谲 eth0 Link encap:Ethernet HWaddr 00:0D:60:AA:A3:81inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0谶 谴 UP BROADCAST MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0谶 谶TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000谶 谸 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)谷 谰 [root@linux ~]# ifconfig eth0:0 192.168.50.50De-Yu Wang CSIE CYUT 64


6.3. 網 路 偵 測 與 觀 察 CHAPTER 6. 基 本 的 系 統 設 定谷 谲# eth0:0 是 在 該 網 路 介 面 上 , 再 模 擬 一 個 網 路 介 面 , 亦 即 在 一 張 網 路 卡 上 面設 定 多 個 ! IP[root@deyu ~]# ifconfig eth0:0 192.168.1.13谷 谴 [root@deyu ~]# ifconfigeth0 Link encap:Ethernet HWaddr 00:0D:60:AA:A3:81谷 谶 inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0UP BROADCAST MULTICAST MTU:1500 Metric:1谷 谸RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0谸 谰collisions:0 txqueuelen:1000RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)谸 谲eth0:0 Link encap:Ethernet HWaddr 00:0D:60:AA:A3:81谸 谴 inet addr:192.168.1.13 Bcast:192.168.1.255 Mask:255.255.255.0UP BROADCAST MULTICAST MTU:1500 Metric:1 以 下 省 略谸 谶 ........谸 谸 # 重 新 啟 動 網 路 ifconfig 設 定 的 資 料 全 部 失 效 , 會 以 ifcfg-ethx 的 設 定為 主 ![root@deyu ~]# /etc/init.d/network restart谹 谰 Shutting down interface eth0: [OK ]Shutting down interface eth1: [OK ]谹 谲 Shutting down loopback interface: [OK ]Bringing up loopback interface: [OK ]谹 谴 Bringing up interface eth0: [OK ]Bringing up interface eth1: [OK ]谹 谶 [root@deyu ~]# ifconfigeth0 Link encap:Ethernet HWaddr 00:0D:60:AA:A3:81谹 谸 UP BROADCAST MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0谱 谰 谰TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000谱 谰 谲 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)谱 谰 谴 eth1 Link encap:Ethernet HWaddr 00:50:FC:80:2B:32inet addr:192.168.122.19 Bcast:192.168.122.255 Mask:255.255.255.0谱 谰 谶inet6 addr: 2002:a311:c13:5:250:fcff:fe80:2b32/64 Scope:Globalinet6 addr: fec0::5:250:fcff:fe80:2b32/64 Scope:Site谱 谰 谸inet6 addr: 2002:a311:cbb:5:250:fcff:fe80:2b32/64 Scope:Globalinet6 addr: fe80::250:fcff:fe80:2b32/64 Scope:LinkDe-Yu Wang CSIE CYUT 65


6.3. 網 路 偵 測 與 觀 察 CHAPTER 6. 基 本 的 系 統 設 定谱 谱 谰 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:69593888 errors:1 dropped:11 overruns:1frame:0谱 谱 谲TX packets:10011643 errors:0 dropped:0 overruns:0carrier:0collisions:0 txqueuelen:1000谱 谱 谴 RX bytes:3013177959 (2.8 GiB) TX bytes:2820447763 (2.6GiB)Interrupt:22 Base address:0xc000谱 谱 谶lo Link encap:Local Loopback谱 谱 谸 inet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:Host谱 谲 谰 UP LOOPBACK RUNNING MTU:16436 Metric:1谱 谲 谲RX packets:10178 errors:0 dropped:0 overruns:0 frame:0TX packets:10178 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0谱 谲 谴 RX bytes:12722824 (12.1 MiB) TX bytes:12722824 (12.1MiB)✡✝✆2. 路 由 器 會 分 析 來 源 端 封 包 的 IP 表 頭 , 找 出 目 標 的 IP 後 , 透 過 路 由 表(routing table) 將 封 包 向 下 一 個 目 標 (next hop) 傳 送 。 達 行 方 式 :(a) 硬 體 功 能 : 例 如 Cisco, IBM, 3Com 等 公 司 生 產 的 硬 體 路 由 器 內 有 嵌 入式 的 作 業 系 統 , 可 以 負 責 不 同 網 域 間 的 封 包 轉 譯 與 轉 遞 等 功 能 ;(b) 軟 體 功 能 : 例 如 <strong>Linux</strong> 的 核 心 就 有 提 供 封 包 轉 遞 的 能 力 。 啟 動 方 式 :谲✞#1. 暫 時 啟 動 , 重 新 開 機 後 復 原[root@linux ~]# echo "1" > /proc/sys/net/ipv4/ip_forward谴 #2. 開 機 啟 動 封 包 轉 遞 :[root@linux ~]# vi /etc/sysctl.conf谶 # 將 底 下 這 個 設 定 值 修 改 正 確 即 可 !net.ipv4.ip_forward = 1谸[root@linux ~]# sysctl -p 立 刻 讓 該 設 定 生 效


6.3. 網 路 偵 測 與 觀 察 CHAPTER 6. 基 本 的 系 統 設 定谳[root@deyu ~]# route add [-net|-host] 網 域 或 主機 [] netmask [mask] [gw|dev][root@deyu ~]# route del [-net|-host] 網 域 或 主機 [] netmask [mask] [gw|dev] 觀 察 的 參 數 :谵 -n : 不 要 使 用 通 訊 協 定 或 主 機 名 稱 , 直 接 使 用 IP 或 port ;number-ee : 使 用 更 詳 細 的 資 訊 來 顯 示 增 加谷 (add) 與 刪 除 (del) 路 由 的 相 關 參 數 :-net : 表 示 後 面 接 的 路 由 為 一 個 網 域 ;谹 -host : 表 示 後 面 接 的 為 連 接 到 單 部 主 機 的 路 由 ;netmask : 與 網 域 有 關 , 可 以 設 定 netmask 決 定 網 域 的 大 小 ;谱 谱 gw : gateway 的 簡 寫 , 後 續 接 的 是 IP 的 數 值 喔 , 與 dev 不 同 ;dev : 如 果 只 是 要 指 定 由 那 一 塊 網 路 卡 連 線 出 去 , 則 使 用 這 個 設 定 , 後 面接谱 谳eth0 等 範 例 : 觀 察 路 由 狀 態谱 谵 [root@deyu ~]# routeKernel IP routing table谱 谷 Destination Gateway Genmask Flags Metric RefUse Iface192.168.122.0 * 255.255.255.0 U 0 00 eth1谱 谹 169.254.0.0 * 255.255.0.0 U 0 00 eth1default 192.168.122.1 0.0.0.0 UG 0 00 eth1谲 谱 [root@deyu ~]# route -nKernel IP routing table谲 谳 Destination Gateway Genmask Flags Metric RefUse Iface192.168.122.0 0.0.0.0 255.255.255.0 U 0 00 eth1谲 谵 169.254.0.0 0.0.0.0 255.255.0.0 U 0 00 eth10.0.0.0 192.168.122.1 0.0.0.0 UG 0 00 eth1谲 谷# Destination, : 分 別 是 Genmask network 與 , 組 合 成 一 個 完 整 的 網谲 谹域 。 netmask# : 該 網 域 是 通 過 那 個 Gateway gateway 連 接 出 去 ?# Gateway 0.0.0.0 表 示 該 路 由 是 直 接 由 本 機 傳 送 , 亦 即 可 以 透 過 區 域 網 路的 MAC 直 接 傳 訊 ;谳 谱 # Gateway 有 顯 示 , 表 示 該 路 由 需 要 經 過 路 由 器 IP 通 訊 閘 () 才 能 夠 傳 送 出去 。# : 總 共 有 多 個 旗 標 , 代 表 的 意 義 如 下 :Flags谳 谳 o U (route is up): 該 路 由 是 啟 動 的 ;o H (target is a host): 目 標 是 一 部 主 機 (IP) 而 非 網 域 ;谳 谵o G (use gateway): 需 要 透 過 外 部 的 主 機 (gateway) 來 轉 遞 封包 ;o R (reinstate route for dynamic routing): 使 用 動 態 路 由谳 谷時 , 恢 復 路 由 資 訊 的 旗 標 ;o D (dynamically installed by daemon or redirect): 已 經De-Yu Wang CSIE CYUT 67


6.3. 網 路 偵 測 與 觀 察 CHAPTER 6. 基 本 的 系 統 設 定谳 谹由 服 務 或 轉 port 功 能 設 定 為 動 態 路 由o M (modified from routing daemon or redirect): 路 由 已 經被 修 改 了 ;o ! (reject route): 這 個 路 由 將 不 會 被 接 受 用 來 抵 擋 不 安 全 的網 域 !()# : 這 個 路 由 傳 遞 封 包 的 介 面 。Iface谴 谱 # 查 看 最 後 default gateway 192.168.122.1 與 設 定 是 否 一 致 ?✡✝✆4. ping 透 過 ICMP 封 包 進 行 整 個 網 路 的 狀 況 報 告 。✞谱 [root@deyu ~]# ping [-bcstnM] IP 參 數 :谳 -b : 後 面 接 的 是 broadcast 的 , 用 在 你 『 需 要 對 整 個 網 域 的 主 機 進行 IP ping 』 時 ;-c : 後 面 接 的 是 執 行 ping 的 次 數 , 例 如 -c 5 ;谵 -n : 不 進 行 IP 與 主 機 名 稱 的 反 查 , 直 接 使 用 IP ;-s : 發 送 出 去 的 ICMP 封 包 大 小 , 預 設 為 56(bytes), 再加 8 bytes 的 ICMP 表 頭 資 料谷 -t :TTL 的 數 值 , 預 設 是 , 每 經 過 一 個 節 點 就 會 少 一 ; 255-M [do|dont] : 主 要 在 偵 測 網 路 的 MTU 數 值 大 小 , 兩 個 常 見 的 項 目 是 :谹 do : 代 表 傳 送 一 個 DF (Don’t Fragment) 旗 標 , 讓 封 包 不 能 重 新 拆 包與 打 包 ;: 代 表 不 要 傳 送dont DF 旗 標 , 表 示 封 包 可 以 在 其 他 主 機 上 拆 包 與 打 包 範 例 一 : 偵 測谱 谱192.168.122.1 DNS 主 機 是 否 存 在 ?谱 谳 [root@deyu ~]# ping -c 3 192.168.122.1PING 192.168.122.1 (192.168.122.1) 56(84) bytes of data.谱 谵 64 bytes from 192.168.122.1: icmp_seq=1 ttl=63 time=0.315 ms64 bytes from 192.168.122.1: icmp_seq=2 ttl=63 time=0.292 ms谱 谷 64 bytes from 192.168.122.1: icmp_seq=3 ttl=63 time=0.317 ms谱 谹 --- 192.168.122.1 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2005ms谲 谱 rtt min/avg/max/mdev = 0.292/0.308/0.317/0.011 ms谲 谳 # 64 : 表 示 這 次 傳 送 的 bytes ICMP 封 包 大 小 為 64 ;bytes# icmp_seq:=1ICMP 所 偵 測 進 行 的 次 數 ;谲 谵 # ttl: 每 經 過 一 個 帶 有 =63 MAC 的 節 點 (node), 例如 router, bridge 時 , TTL 就 會 減 ; 1# time=0.315 : 回 應 時 間 , 單 位 有 ms ms 秒 (0.001) 及 us 秒 (0.000001)。 範例 二 : 偵 測谲 谷192.168.122.1 GATEWAY 主 機 是 否 存 在 ?谲 谹 [root@deyu ~]# ping -c 3 192.168.122.1PING 192.168.122.1 (192.168.122.1) 56(84) bytes of data.谳 谱 64 bytes from 192.168.122.1: icmp_seq=1 ttl=64 time=0.166 ms64 bytes from 192.168.122.1: icmp_seq=2 ttl=64 time=0.155 ms谳 谳 64 bytes from 192.168.122.1: icmp_seq=3 ttl=64 time=0.139 msDe-Yu Wang CSIE CYUT 68


6.3. 網 路 偵 測 與 觀 察 CHAPTER 6. 基 本 的 系 統 設 定谳 谵 --- 192.168.122.1 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 1998ms谳 谷 rtt min/avg/max/mdev = 0.139/0.153/0.166/0.015 ms✡✝✆5. 設 定 DNS 的 IP:/etc/resolv.conf✞谱 [root@deyu ~]# cat /etc/resolv.confnameserver 192.168.122.1谳 nameserver 168.95.1.1nameserver 139.175.10.20✡✝✆6. host 查 出 某 個 主 機 名 稱 的 IP谲谴谶谸✞[root@deyu ~]# host [-a] hostname [server] 參 數 :-a : 列 出 該 主 機 詳 細 的 各 項 主 機 名 稱 設 定 資 料[server] : 可 以 使 用 非 為 /etc/resolv.conf 的 DNS 主 機 來 查 詢 。 範 例一 : 列 出csie.cyut.edu.tw 的 IP[root@deyu ~]# host csie.cyut.edu.twcsie.cyut.edu.tw has address 163.17.10.1 範 例 二 : 列 出谱 谰 www.google.tw 的 IP[root@deyu ~]# host www.google.tw谱 谲 www.google.tw is an alias for www.google.com.www.google.com is an alias for www.l.google.com.谱 谴 www.l.google.com has address 64.233.183.147www.l.google.com has address 64.233.183.99谱 谶 www.l.google.com has address 64.233.183.103www.l.google.com has address 64.233.183.104谱 谸 www.l.google.com has address 64.233.183.105www.l.google.com has address 64.233.183.106谲 谰 www.google.tw is an alias for www.google.com.www.google.com is an alias for www.l.google.com.谲 谲 www.google.tw is an alias for www.google.com.www.google.com is an alias for www.l.google.com.✡✝✆7. dig 查 詢 DNSDe-Yu Wang CSIE CYUT 69


6.3. 網 路 偵 測 與 觀 察 CHAPTER 6. 基 本 的 系 統 設 定✞谱 [root@deyu ~]# dig [@server] [FQDN] [type] 參 數 說 明 :谳谵@server : 如 果 不 想 以 /etc/resolv.conf 來 作 為 DNS 主 機 , 則 可 在 此 填 入其 他 的 IPtype : 預 設 是 查 詢 A 標 誌 , 你 可 以 在 這 裡 入 其 他 的 標 誌 ,如 mx, ns 等 。 此 功 能 亦 可 使 用[-t type] 來 處 理 。 範 例 一 : 查 詢谷 csie.cyut.edu.tw[root@deyu ~]# cat /etc/resolv.conf谹 nameserver 168.95.192.1nameserver 168.95.1.1谱 谱 [root@deyu ~]# dig csie.cyut.edu.tw谱 谳谱 谵谱 谷; DiG 9.3.2 csie.cyut.edu.tw;; global options: printcmd;; Got answer:;; ->>HEADER


6.4. 系 統 時 間 設 定 CHAPTER 6. 基 本 的 系 統 設 定谴 谷;; ->>HEADER


6.4. 系 統 時 間 設 定 CHAPTER 6. 基 本 的 系 統 設 定# kod: 當 要 求 的 服 務 超 過 限 制 , 不 是 直 接 丟 棄 服 務 要 求 , 而 是 傳送 serverserver谲 谳kiss-o’-death (KoD) , 讓 轉 向 要 求 其 他 服務 ,packetclientserver 或 等 一 段 時 間 再 要 求 服 務 。server谲 谵 # nomodify: 用 戶 端 不 能 更 改 NTP 伺 服 器 的 時 間 參 數 。# notrap : 不 提 供 trap 這 個 遠 端 事 件 登 錄 (remote event logging) 的功 能 。谲 谷 # nopeer : 避 免 其 他 人 使 用 此 作 為 ntpdtime server# noquery : 用 戶 端 不 能 夠 使 用 ntpq, ntpc 等 指 令 來 查 詢 時 間 伺 服 器 ;谲 谹## server 格 式谳 谱 # server address [options ...]server tock.stdtime.gov.tw prefer谳 谳 server 0.rhel.pool.ntp.orgserver 1.rhel.pool.ntp.org谳 谵 server 2.rhel.pool.ntp.org谳 谷# perfer 表 示 『 優 先 使 用 』 的 主 機谳 谹 ## 如 果 外 部 time 無 法 連 線 或 層 級 server(stratum) 以 上 , 則 以 本 機 時 鐘 為 系統 時 間 。10#server 127.127.1.0 # local clock谴 谱 #fudge 127.127.1.0 stratum 10✡✝✆2. 編 輯 /etc/sysconfig/ntpd✞谱 [root@demo ~]# vim /etc/sysconfig/ntpd# Drop root to id ’ntp:ntp’ by default.谳 OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"SYNC_HWCLOCK=yes谵 # 改 成 , yesBIOS 的 時 間 也 會 跟 著 改 變 。✡✝✆3. 啟 動 NTP 服 務✞谱 [root@demo ~]# /etc/init.d/ntpd startStarting ntpd: [ OK]✡✝✆4. 觀 察 NTP 服 務 的 port 123De-Yu Wang CSIE CYUT 72


6.4. 系 統 時 間 設 定 CHAPTER 6. 基 本 的 系 統 設 定✞[root@demo ~]# netstat -tlunp | grep 123谲 udp 0 0 192.168.0.250:123 0.0.0.0:*3224/ntpdudp 0 0 127.0.0.1:123 0.0.0.0:*3224/ntpd谴 udp 0 0 0.0.0.0:123 0.0.0.0:*3224/ntpdudp 0 0 ::1:123 :::*3224/ntpd谶 udp 0 0 fe80::5054:ff:fe00:fa:123 :::*3224/ntpdudp 0 0 :::123 :::*✡✝3224/ntpd✆5. 設 定 開 機 啟 動 ntpd✞谱 [root@demo ~]# chkconfig ntpd on✡✝✆6. 查 詢 開 機 是 否 啟 動 ntpd✞谱 [root@demo ~]# chkconfig --list ntpdntpd 0:off 1:off 2:on 3:on 4:on 5:on6:off✡✝✆7. 確 認 NTP 伺 服 器 是 否 順 利 更 新 時 間 ?✞[root@demo ~]# ntpstat -p谲 unsynchronisedtime server re-starting谴 polling server every 64 s## 幾 分 鐘 後 再 觀 察谶 [root@demo ~]# ntpstat -pnsynchronised to NTP server (59.124.196.83) at stratum 3谸 time correct to within 782 mspolling server every 64 s✡✝✆8. 手 動 調 校 系 統 時 間De-Yu Wang CSIE CYUT 73


6.4. 系 統 時 間 設 定 CHAPTER 6. 基 本 的 系 統 設 定✞谱 [root@demo ~]# ntpdate tock.stdtime.gov.tw18 Jul 10:40:24 ntpdate[3334]: the NTP socket is in use, exiting谳 [root@demo ~]# /etc/init.d/ntpd stopShutting down ntpd: [ OK]谵 [root@demo ~]# ntpdate tock.stdtime.gov.tw18 Jul 10:40:37 ntpdate[3341]: step time server 220.130.158.71✡✝offset 1.909398 sec✆9. 調 整 BIOS 時 間✞[root@deyu ~]# hwclock [-rw] 選 項 與 參 數 :谲-r : 亦 即 read , 讀 出 目 前 BIOS 內 的 時 間 參 數 ;谴 -w : 亦 即 write , 將 目 前 的 <strong>Linux</strong> 系 統 時 間 寫 入 BIOS 中 。谶 [root@demo ~]# hwclock -w; hwclock -r; dateMon 18 Jul 2011 10:42:26 AM CST -0.323154 seconds谸 Mon Jul 18 10:42:25 CST 2011✡✝✆10. 使 用 圖 形 界 面 做 網 路 校 時(a) 進 入 X window, 依 照 『 開 始 』→『 系 統 』→『 管 理 』→『 日 期 與 時間 』 打 開 設 定 軟 體 ;(b) 選 擇 網 路 時 間 協 定 (Network Time Protocol);(c) 按 下 『Enable Network Time Protocol』;(d) 輸 入 tock.stdtime.gov.tw;(e) 按 下 OK!De-Yu Wang CSIE CYUT 74


CHAPTER 7.帳 號 與 身 份 管 理Chapter 7帳 號 與 身 份 管 理7.1 <strong>Linux</strong> 的 帳 號1. 帳 號 與 ID(a) 帳 號 ID: 使 用 者 的 ID(User ID, UID) 與 群 組 的 ID(Group ID, GID)(b) <strong>Linux</strong> 主 機 只 認 識 UID 及 GID, 不 認 識 我 們 輸 入 的 帳 號 名 稱 。(c) /etc/passwd 及 /etc/group 分 別 記 錄 UID 及 GID 的 對 應 。2. 如 何 登 入 <strong>Linux</strong> 主 機 ?( 系 統 必 須 讀 取 /etc/passwd 與 /etc/shadow)(a) 先 找 尋 /etc/passwd 裡 面 是 否 有 這 個 帳 號 ?i. 如 果 沒 有 則 跳 出 ,ii. 如 果 有 則 將 該 帳 號 對 應 的 UID 與 GID 讀 出 , 該 帳 號 的 家 目 錄 與shell 設 定 也 一 併 讀 出 ;(b) 核 對 密 碼 表 : 核 對 輸 入 的 密 碼 與 /etc/shadow 對 應 的 帳 號 與 UID 之 密碼 是 否 相 符 ?(c) 如 果 一 切 正 確 , 就 進 入 Shell 控 管 的 階 段 。3. /etc/passwd 每 一 行 以 『:』 分 隔 , 共 分 為 七 項✞[root@dywOffice dywang]# cat /etc/passwd谲 root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/bin/sh谴 daemon:x:2:2:daemon:/sbin:/bin/shadm:x:3:4:adm:/var/adm:/bin/sh谶 test:x:500:100:test:/home/test:/bin/bash✡✝✆(a) 帳 號 名 稱 (root)(b) 密 碼 (x): 不 顯 示De-Yu Wang CSIE CYUT 75


7.1. LINUX 的 帳 號 CHAPTER 7. 帳 號 與 身 份 管 理(c) UID(0)ID 範 圍 該 ID 使 用 者 特 性0 系 統 管 理 員 , 只 要 將 UID 改 為 0 即 可 成 為 系統 管 理 員 。1 ~ 499 保 留 給 系 統 使 用 的 ID, 除 了 0 之 外 , 其 他 的UID 並 無 不 同 ,預 設 1 ~ 99 保 留 給 系 統 預 設 的 帳號 ,100 ~ 499 保 留 給 一 些 服 務 使 用 。500 ~ 65535 一 般 使 用 者 的 UID 從 500 編 起 。(d) GID: 與 /etc/group 有 關 。(e) 備 註 說 明 (root)(f) 家 目 錄 (/root)(g) Shell(/bin/bash)4. 每 個 使 用 者 都 要 使 用 到 /etc/passwd, 因 此 /etc/passwd 的 屬 性 必 須 為-rw-r--r--。 為 安 全 起 見 , 密 碼 移 到 /etc/shadow。5. /etc/shadow 每 一 行 以 『:』 分 隔 , 共 分 為 九 項✞[root@dywOffice dywang]# cat /etc/shadow谲 root:$1$fgY7Mcld$uKagcyaEt2UgPr8NFFSQP1:13341:0:99999:7:::bin:*:13341:0:99999:7:::谴 daemon:*:13341:0:99999:7:::adm:*:13341:0:99999:7:::谶 test:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:13341:0:99999:7:::✡✝✆(a) 帳 號 名 稱 , 要 與 /etc/passwd 相 同 才 可 。(b) 密 碼 : 真 正 的 密 碼 但 已 加 密 , 密 碼 欄 第 一 個 字 為 「*」 或 者 是 「!」, 表示 這 個 帳 號 不 會 被 用 來 登 入 。(c) 上 次 更 動 密 碼 的 日 期 , 計 算 <strong>Linux</strong> 日 期 的 時 間 是 以 1970 年 1 月 1日 為 0, 而 1971 年 1 月 1 日 則 為 365。(d) 密 碼 不 可 被 更 動 的 天 數 ,0 表 示 密 碼 隨 時 可 以 更 動 , 如 果 設 定 為 20,則 20 天 之 內 皆 無 法 改 變 密 碼 。(e) 密 碼 需 要 重 新 變 更 的 天 數 , 如 果 設 定 為 99999 表 示 密 碼 不 需 要 重 新 輸入 。(f) 密 碼 需 要 變 更 前 的 警 告 期 限 : 如 上 例 則 7 天 之 內 系 統 會 警 告 用 戶 。(g) 密 碼 過 期 的 恕 限 時 間 : 當 密 碼 失 效 後 ,n 天 內 還 可 以 登 入 。(h) 帳 號 失 效 日 期 : 計 算 方 式 同 欄 位 3。(i) 保 留 : 看 以 後 有 無 新 功 能 加 入 。De-Yu Wang CSIE CYUT 76


7.2. 使 用 者 管 理 指 令 CHAPTER 7. 帳 號 與 身 份 管 理6. 例 題 : 說 明 下 列 帳 號 密 碼 相 關 意 義 。✞csie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:13341:0:99999:7:3:13361:✡✝✆7.2 使 用 者 管 理 指 令useradd 增 加 使 用 者 。passwd 設 定 或 變 更 密 碼 。usermod 用 戶 帳 號 相 關 資 料 微 調 。userdel 刪 除 使 用 者 。id 查 詢 使 用 者 的 UID、GID 及 所 擁 有 的 群 組 。1. useradd: 增 加 使 用 者 。✞谱 [root@dywOffice dywang]# useradd [-ungGmMd] user 參 數 :谳 -u: 指 定 帳 號 的 。 UID-n: 群 組 為 。 users谵 -g: 後 接 之 群 組 initial , 變 動 group /etc/。passwd-G: 後 接 之 群 組 為 支 援 此 帳 號 之 群 組 , 變 動 /etc/。group谷 -M: 不 要 建 立 使 用 者 家 目 錄 。-m: 建 立 使 用 者 家 目 錄 。谹 -d: 指 定 某 個 目 錄 為 家 目 錄 , 而 不 使 用 預 設 目 錄 。-s: 指 定 使 用 的 。 shell 範 例 :谱 谱谱 谳 ### 帳 號 之 群 組 ###[root@dywOffice dywang]# useradd -n testing谱 谵 [root@dywOffice dywang]# ll /home/testingtotal 4谱 谷 drwx------ 2 testing users 4096 Aug 7 15:28 tmp/[root@dywOffice ~]# useradd -G ftp test1谱 谹 [root@dywOffice ~]# useradd -n test2[root@dywOffice ~]# useradd -g test1 test3谲 谱 [root@dywOffice ~]# grep test1 /etc/passwd /etc/group/etc/passwd:test1:x:511:511::/home/test1:/bin/bash谲 谳 /etc/group:ftp:x:76:ftp,calculus1A,calculus1B,linux2AB,test1/etc/group:test1:x:511:谲 谵 [root@dywOffice ~]# grep test2 /etc/passwd /etc/group/etc/passwd:test2:x:512:100::/home/test2:/bin/bash谲 谷 [root@dywOffice ~]# grep test3 /etc/passwd /etc/group/etc/passwd:test3:x:513:511::/home/test3:/bin/bash谲 谹 [root@dywOffice ~]# ls -ld /home/test?drwx--x--x 21 test1 ftp 4096 Jul 31 07:24 /home/test1/De-Yu Wang CSIE CYUT 77


7.2. 使 用 者 管 理 指 令 CHAPTER 7. 帳 號 與 身 份 管 理谳 谱 drwx--x--x 3 test2 users 4096 Dec 6 13:50 /home/test2/drwx--x--x 3 test3 test1 4096 Dec 6 14:11 /home/test3/谳 谳### 帳 號 之 家 目 錄 ###谳 谵 [root@dywOffice ~]# useradd -M test4[root@dywOffice ~]# useradd -m test5谳 谷 [root@dywOffice ~]# useradd -d /home/testx test6[root@dywOffice ~]# ls -ld /home/test[456x]谳 谹 drwxr-xr-x 4 test5 test5 4096 Dec 19 11:02 /home/test5/drwxr-xr-x 4 test6 test6 4096 Dec 19 11:04 /home/testx/谴 谱### 帳 號 之 shell ###谴 谳 [root@dywOffice ~]# useradd -s /bin/bash[root@dywOffice ~]# useradd -s /bin/false谴 谵 [root@dywOffice ~]# useradd -s /bin/sh[root@dywOffice ~]# useradd -s /sbin/nologin✡✝✆2. passwd: 設 定 或 變 更 密 碼 。✞[root@linux ~]# passwd [-lunxwS] username 參 數 :谲-l : 將 username 這 個 帳 號 的 密 碼 鎖 住 (lock), 在 /etc/shadow 內 的 密谴碼 欄-u : 將 -l 的 lock 解 開 。-n : 後 面 接 天 數 數 字 (), 最 短 天 數 ; 亦 即 是 /etc/shadow 內 的 第 四 欄 ;谶 -x : 後 面 接 天 數 數 字 (), 最 長 天 數 ; 亦 即 是 /etc/shadow 內 的 第 五 欄 ;-w : 後 面 接 天 數 數 字 (), 警 告 天 數 ; 亦 即 是 /etc/shadow 內 的 第 六 欄 ;谸 -i : 後 面 接 天 數 數 字 (), 密 碼 過 期 的 恕 限 時 間 ; 亦 即 是 /etc/shadow 內 的第 七 欄 ;-S : 顯 示 目 前 這 個 username 的 相 關 資 訊 。谱 谰 --stdin : 經 由 標 準 輸 入 取 得 密 碼 , 配 合 管 線 處 理 , 可 大 量 更 改 用 戶 密 碼 。 範例 : 範 例 一 : 鎖 住 用 戶谱 谲谱 谴谱 谶谱 谸csie1 的 密 碼 。[root@localhost csie]# passwd -l csie1Locking password for user csie1.passwd: Success[root@localhost csie]# grep csie1 /etc/shadowcsie1:!!$1$P0vkC.HK$MsHV7PNiDBXHcCS4hJ.yI/:13861::99999:::: 範 例二 : 解 除 鎖 定 用 戶谲 谰 csie1 的 密 碼 。[root@localhost csie]# passwd -u csie1谲 谲 Unlocking password for user csie1.passwd: Success.谲 谴 [root@localhost csie]# grep csie1 /etc/shadowcsie1:$1$P0vkC.HK$MsHV7PNiDBXHcCS4hJ.yI/:13861::99999:::: 範 例 三 :De-Yu Wang CSIE CYUT 78


7.2. 使 用 者 管 理 指 令 CHAPTER 7. 帳 號 與 身 份 管 理更 改 用 戶谲 谶csie1 的 密 碼 之 最 短 、 最 長 、 警 告 及 過 期 的 恕 限 時 間 。谲 谸 [root@localhost csie]# passwd -n 0 -x 60 -w 5 -i 2 csie1Adjusting aging data for user csie1.谳 谰 passwd: Success[root@localhost csie]# grep csie1 /etc/shadow谳 谲 csie1:$1$P0vkC.HK$MsHV7PNiDBXHcCS4hJ.yI/:13861:0:60:5:2::[root@localhost csie]# passwd -S csie1谳 谴 Password set, MD5 crypt. 範 例 四 : 密 碼 設 定 , 必 須 經 由 鍵 盤 輸 入 兩 次 。谳 谶谳 谸谴 谰谴 谲[root@dywOffice dywang]# passwd testingChanging password for user testing.New UNIX password:BAD PASSWORD: it is too shortRetype new UNIX password:passwd: all authentication tokens updated successfully. 範 例 五 : 經由 標 準 輸 入 取 得 密 碼 , 配 合 管 線 處 理 , 可 大 量 更 改 用 戶 密 碼 。谴 谴[root@dywHome2 ~]# echo "lopex" | passwd --stdin dywang✡✝✆(a) root 可 進 行 密 碼 設 定 與 變 更 , 不 需 要 知 道 舊 密 碼 。(b) 一 般 而 言 , 密 碼 最 好 要 符 合 下 列 要 求 :i. 密 碼 不 能 與 帳 號 相 同 ;ii. 密 碼 盡 量 不 要 選 用 字 典 裡 面 會 出 現 的 字 串 ;iii. 密 碼 需 要 超 過 8 個 字 元 ;3. userdel: 刪 除 使 用 者 。✞谱 [root@linux ~]# userdel [-r] username 參 數 :谳 -r : 連 同 使 用 者 的 家 目 錄 一 起 刪 除 。 範 例 :谵谷[root@dywOffice dywang]# userdel -r testing# 若 帳 號 只 是 『 暫 時 不 啟 用 』, 可 將 /etc/shadow 最 後 倒 數 第 二 個 欄 位 ( 第八 欄 位 ) 設 定 為 。 0✡✝✆4. id: 查 詢 使 用 者 的 UID、GID 及 所 擁 有 的 群 組 。De-Yu Wang CSIE CYUT 79


7.3. 使 用 者 身 份 切 換 CHAPTER 7. 帳 號 與 身 份 管 理✞[dywang@dywOffice ~]$ id谲 uid=501(dywang) gid=100(users) groups=100(users)✡✝✆7.3 使 用 者 身 份 切 換su 轉 換 用 戶 身 份 。sudo 不 需 要 root 的 密 碼 , 卻 可 執 行 root 的 工 具 。visudo編 輯 /etc/sudoers。1. su: 轉 換 用 戶 身 份 。✞[root@linux ~]# su [-lcm] [username] 參 數 :谲- : 變 換 身 份 為 , 取 得 一 個 新 的 root , 使 用 shell root 的 環 境 設 定 參 數檔 , 如谴 /root/.bash_profile 等 。-l username : 變 換 身 份 為 , 且 使 用 username username 的 所 有 相 關 環 境 設定 檔 。谶 -m,-p : 使 用 目 前 的 環 境 設 定 , 而 不 重 新 讀 取 新 使 用 者 的 設 定 檔 。-c command : 僅 進 行 一 次 指 令 。 command谸[dywang@dywOffice ~]$ su谱 谰 Password:[root@dywOffice dywang]#谱 谲# su 與 su - 之 差 別谱 谴 [dywang@dywHome2 ~]$ echo $SHLVL4谱 谶 [dywang@dywHome2 ~]$ suPassword:谱 谸 [root@dywHome2 dywang]# pwd/home/dywang谲 谰 [root@dywHome2 dywang]# echo $SHLVL5谲 谲 [root@dywHome2 dywang]# exitexit谲 谴 [dywang@dywHome2 ~]$ echo $SHLVL4谲 谶 [dywang@dywHome2 ~]$ su -Password:谲 谸 [root@dywHome2 ~]# pwd/root谳 谰 [root@dywHome2 ~]# echo $SHLVL1谳 谲De-Yu Wang CSIE CYUT 80


7.3. 使 用 者 身 份 切 換 CHAPTER 7. 帳 號 與 身 份 管 理谳 谴谳 谶谳 谸谴 谰谴 谲谴 谴谴 谶谴 谸谵 谰谵 谲谵 谴谵 谶# 一 般 使 用 者 變 換 至 一 般 使 用 者[dywang@dywHome2 ~]$ su ddywPassword:[ddyw@dywHome2 dywang]$ pwd/home/dywang[ddyw@dywHome2 dywang]$ echo $SHLVL5[ddyw@dywHome2 dywang]$ exitexit[dywang@dywHome2 ~]$ su -l ddywPassword:[ddyw@dywHome2 ~]$ pwd/home/ddyw[ddyw@dywHome2 ~]$ echo $SHLVL1[ddyw@dywHome2 ~]$ exit[dywang@dywHome2 ~]$ su -m ddywPassword:* Warning: SSH_AUTH_SOCK in environment is invalid; ignoring it* Warning: GPG_AGENT_INFO in environment is invalid; ignoring it* Warning: removing empty lock filerm: cannot remove ‘/home/dywang/.keychain/dywHome2-lockf’:Permission denied* Warning: removing empty lock file 以 下 省 略谵 谸 [dywang@dywHome2 ~]$ su -m rootPassword:谶 谰 [root@dywHome2 ~]#谶 谲 # root 變 換 至 一 般 使 用 者[root@dywHome2 tmp]# su ddyw谶 谴 [ddyw@dywHome2 tmp]$ echo $SHLVL2谶 谶 [ddyw@dywHome2 tmp]$ su - ddywPassword:谶 谸 [ddyw@dywHome2 ~]$ echo $SHLVL1谷 谰 [root@dywHome2 tmp]# echo $SHLVL1谷 谲 [root@dywHome2 tmp]# su -m ddywbash: /root/.bashrc: Permission denied谷 谴 [ddyw@dywHome2 tmp]$ echo $SHLVL2谷 谶 [ddyw@dywHome2 tmp]$ exitexit✡✝✆2. sudo: 不 需 要 root 的 密 碼 , 卻 可 執 行 root 的 工 具 。De-Yu Wang CSIE CYUT 81


7.3. 使 用 者 身 份 切 換 CHAPTER 7. 帳 號 與 身 份 管 理✞谱 [root@linux ~]# sudo [-u [username|#uid]] command 參 數 :谳 -u : 後 面 可 以 接 使 用 者 帳 號 名 稱 , 或 者 是 。 例 如 UID UID 是 500 的 身 份 ,可 以 :-u #500 來 作 為 切 換 到 UID 為 500 的 那 位 使 用 者 。谵[dywang@dywOffice ~]$ sudo mkdir /root/testing谷 Password:[dywang@dywOffice ~]$ ll /root/testing谹 ls: /root/testing: Permission denied[dywang@dywOffice ~]$ su谱 谱 Password:[root@dywOffice dywang]# ll /root/谱 谳 total 12drwx------ 2 root root 4096 Jul 12 19:35 drakx/谱 谵 drwxr-xr-x 2 root root 4096 Aug 7 12:14 testing/drwx------ 4 root root 4096 Aug 7 10:33 tmp/谱 谷 [root@dywOffice dywang]# exitexit谱 谹 [dywang@dywOffice ~]$ sudo rm -rf /root/testing✡✝✆(a) 當 使 用 者 執 行 sudo 時 , 系 統 會 主 動 的 去 尋 找 /etc/sudoers 檔 案 , 判斷 該 使 用 者 是 否 有 執 行 sudo 的 權 限 ;(b) 若 使 用 者 具 有 可 執 行 sudo 的 權 限 , 便 讓 使 用 者 『 輸 入 使 用 者 自 己 的 密碼 』 來 確 認 ;(c) 若 密 碼 輸 入 成 功 , 便 開 始 進 行 sudo 後 續 接 的 指 令 ;(d) root 執 行 sudo 時 , 不 需 要 輸 入 密 碼 ;(e) 若 欲 切 換 的 身 份 與 執 行 者 身 份 相 同 , 那 也 不 需 要 輸 入 密 碼 。3. visudo: 編 輯 /etc/sudoers。(a) visudo 是 以 vi 開 啟 /etc/sudoers, 不 過 儲 存 離 開 時 ,visudo 會 額外 檢 查 /etc/sudoers 內 部 的 語 法 , 以 避 免 使 用 者 輸 入 錯 誤 的 資 訊 。(b) 加 入 一 行 『 dywang ALL=(ALL) ALL 』 代 表 的 意 義 是 :使 用 者 帳 號 登 入 的 主 機 = ( 可 以 變 換 的 身 份 ) 可 以 下 達 的 指 令✞谱 [root@dywOffice dywang]# visudo# User privilege specification谳 root ALL=(ALL) ALLdywang✡✝ALL=(ALL) ALL✆De-Yu Wang CSIE CYUT 82


7.3. 使 用 者 身 份 切 換 CHAPTER 7. 帳 號 與 身 份 管 理(c) 若 系 統 有 個 Web 的 軟 體 是 由 使 用 者 www 進 行 編 輯 , 想 要 讓 使 用 者dywang 可 以 用 帳 號 www 進 行 編 輯 :✞dywang ALL = (www) ALL✡✝✆(d) 以 群 組 進 行 規 範 。 例 如 : 讓 屬 於 群 組 grpcsie 的 使 用 者 都 能 夠 進 行sudo :✞谱 %grpcsie ALL = (ALL) ALL## 『 使 用 者 帳 號 』 的 欄 位 前 面 加 上 『』 表 示 群 組 。%✡✝✆(e) 讓 群 組 內 的 使 用 者 在 使 用 sudo 時 不 需 要 輸 入 密 碼 , 可 在 『 可 以 下 達 的指 令 』 欄 位 內 多 加 入 參 數 『NOPASSWD:』:✞%csie ALL = (ALL) NOPASSWD: ALL✡✝✆練 習 題1. 如 何 變 換 身 份 為 root?Sol. su - 或 su2. 如 何 變 換 身 份 為 csie, 並 使 用 csie 的 所 有 相 關 環 境 設 定 檔 ?Sol. su -l csie3. 如 何 變 換 身 份 為 csie, 但 使 用 目 前 的 環 境 設 定 , 而 不 重 新 讀 取 新 使 用 者 的 設定 檔 ?Sol. su -m csie 或 su -p csie4. 如 何 只 執 行 root 權 限 的 指 令 cmd 一 次 , 而 不 變 換 身 份 為 root?Sol. su -c cmd5. 如 何 執 行 root 權 限 的 指 令 cmd, 而 不 變 換 身 份 為 root?Sol. sudo cmd6. 使 用 者 是 否 具 有 可 執 行 sudo 的 權 限 , 記 錄 在 那 個 設 定 檔 ?Sol. /etc/sudoers7. 若 使 用 者 具 有 可 執 行 sudo 的 權 限 , 會 讓 使 用 者 輸 入 誰 的 密 碼 來 確 認 ?Sol. 使 用 者 本 身 的 密 碼De-Yu Wang CSIE CYUT 83


7.4. 群 組 管 理 指 令 CHAPTER 7. 帳 號 與 身 份 管 理8. root 執 行 sudo 需 不 需 密 碼 來 確 認 ?Sol. 不 需 要9. 為 什 麼 不 建 議 直 接 以 vi 修 改 /etc/sudoers, 而 是 執 行 visudo 來 編 輯 ?Sol. visudo 儲 存 離 開 時 會 額 外 去 檢 查 /etc/sudoers 內 部 的 語 法 , 以 避免 使 用 者 輸 入 錯 誤 的 資 訊 。10. 若 系 統 有 個 Web 的 軟 體 是 由 使 用 者 www 進 行 編 輯 , 想 要 讓 使 用 者 dywang可 以 用 帳 號 www 進 行 編 輯 , 請 以 visudo 加 入 正 確 的 一 行 。Sol. dywang ALL=(www) ALL11. 若 要 讓 屬 於 群 組 grpcsie 的 使 用 者 都 能 夠 進 行 sudo, 請 以 visudo 加 入 正確 的 一 行 。Sol. %grpcsie ALL = (ALL) ALL12. 若 要 讓 屬 於 群 組 grpcsie 的 使 用 者 都 能 夠 進 行 sudo, 且 不 需 要 輸 入 密 碼 ,請 以 visudo 加 入 正 確 的 一 行 。Sol. %grpcsie ALL = (ALL) NOPASSWD: ALL7.4 群 組 管 理 指 令groupadd 增 加 群 組 。groupmod group 相 關 參 數 的 修 改 。groupdel 刪 除 群 組 。gpasswd 群 組 密 碼 管 理 。1. groupadd: 增 加 群 組 。✞谱 [root@linux ~]# groupadd [-g gid] [-r] 參 數 :谳 -g : 後 面 接 某 個 特 定 的 GID , 用 來 直 接 給 予 某 個 。 GID-r : 建 立 系 統 群 組 。 與 /etc/login.defs 內 的 GID_MIN 有 關 。谵[root@dywOffice ~]# groupadd -g 55 testing谷 [root@dywOffice ~]# grep testing /etc/group /etc/gshadow/etc/group:testing:x:55:谹 /etc/gshadow:testing:!::✡✝✆2. groupmod:group 相 關 參 數 的 修 改 。✞谱 [root@linux ~]# groupmod [-g gid] [-n group_name] 參 數 :谳 -g : 修 改 既 有 的 GID 數 字 ;De-Yu Wang CSIE CYUT 84


7.4. 群 組 管 理 指 令 CHAPTER 7. 帳 號 與 身 份 管 理-n : 修 改 既 有 的 群 組 名 稱 。谵[root@dywOffice ~]# groupmod -g 113 -n group3 testing谷 [root@dywOffice ~]# grep group3 /etc/group /etc/gshadow/etc/group:group3:x:113:谹 /etc/gshadow:group3:!::


7.4. 群 組 管 理 指 令 CHAPTER 7. 帳 號 與 身 份 管 理谲 谰 [root@localhost csie]# groupadd group1[root@localhost csie]# gpasswd group1谲 谲 Changing the password for group group1New Password:谲 谴 Re-enter new password:[root@localhost csie]# grep group1 /etc/group /etc/gshadow谲 谶 /etc/group:group1:x:500:/etc/gshadow:group1:08IgaW1zBhnas::谲 谸[csie@localhost csie]$ newgrp group1谳 谰 Password:[csie@localhost csie]$ groups谳 谲 group1 users[csie@localhost csie]$ touch group1test谳 谴 [csie@localhost csie]$ ll group1test-rw-r--r-- 1 csie group1 0 月 12 16 16:17 group1test✡✝✆練 習 題1. 如 何 建 立 新 的 群 組 csie?Sol. groupadd csie2. 如 何 建 立 新 的 群 組 csie, 並 指 定 GID 為 53?Sol. groupadd -g 53 csie3. 如 何 調 整 群 組 csie 的 GID 為 52?Sol. groupmod -g 52 csie4. 如 何 調 整 群 組 csie 的 名 稱 為 CSIE?Sol. groupmod -n CSIE csie5. 如 何 刪 除 群 組 csie?Sol. groupdel csie6. 要 成 功 刪 除 群 組 csie, 必 須 有 何 限 制 ?Sol. /etc/passwd 內 的 帳 號 沒 有 任 何 用 戶 使 用 該 群 組 作 為 初 始 群 組 。7. 如 何 設 定 群 組 csie 的 密 碼 ?Sol. gpasswd csieDe-Yu Wang CSIE CYUT 86


CHAPTER 8.LINUX 檔 案 權 限 與 管 理Chapter 8<strong>Linux</strong> 檔 案 權 限 與 管 理8.1 使 用 者 與 群 組• <strong>Linux</strong> 為 多 人 多 工 系 統 。• 檔 案 擁 有 者 保 有 隱 私 權 。• 檔 案 所 屬 群 組 -- 團 隊 功 能 。rootGroup 1Group 2Group nuser 1auser 2auser auser 1buser 1cuser 2buser 2c user buser 2d練 習 題1. 有 一 個 人 的 身 份 較 為 特 殊 , 他 可 以 管 理 系 統 。 請 問 這 個 人 的 帳 號 名 稱 為 何 ?Sol. root8.2 檔 案 權 限• 檔 案 權 限 與 屬 性 為 學 習 <strong>Linux</strong> 之 重 要 關 卡 。• 在 根 目 錄 "/" 下 , 輸 入 指 令 ls -al✞[dywang@mdk-dyw /]$ ls -al谲 total 72De-Yu Wang CSIE CYUT 87


8.2. 檔 案 權 限 CHAPTER 8. LINUX 檔 案 權 限 與 管 理drwxr-xr-x 18 root adm 4096 Sep 16 11:11 ./谴 drwxr-xr-x 18 root adm 4096 Sep 16 11:11 ../-rw-r--r-- 1 root root 0 Sep 16 11:11 .autofsck谶 drwxr-xr-x 2 root root 4096 Sep 28 12:50 bin/drwxr-xr-x 3 root root 4096 Sep 16 11:11 boot/谸 drwxr-xr-x 26 root root 14420 Oct 1 12:30 dev/drwxr-xr-x 85 root root 8192 Sep 29 12:59 etc/谱 谰 drwxr-xr-x 18 root root 4096 Sep 26 12:45 home/drwxr-xr-x 2 root root 4096 Sep 9 16:14 initrd/谱 谲 drwxr-xr-x 11 root root 4096 Sep 28 12:49 lib/drwxr-xr-x 5 root root 4096 Sep 29 12:59 mnt/谱 谴 drwxr-xr-x 2 root root 4096 Jan 5 2004 opt/dr-xr-xr-x 179 root root 0 Sep 16 11:10 proc/谱 谶 -rw------- 1 root root 1024 Sep 9 13:06 .rnddrwx------ 16 root root 4096 Oct 1 13:13 root/谱 谸 drwxr-xr-x 2 root root 8192 Sep 28 12:50 sbin/drwxr-xr-x 10 root root 0 Sep 16 11:10 sys/谲 谰 drwxrwxrwt 23 root root 4096 Oct 1 13:13 tmp/drwxr-xr-x 12 root root 4096 Sep 9 13:15 usr/谲 谲 drwxr-xr-x✡✝23 root root 4096 Sep 9 17:31 var/✆說 明 :– total 72: 檔 案 共 72 Blocks。– 各 欄 位 說 明 :欄 位 一 欄 位 二 欄 位 三 欄 位 四 欄 位 五 欄 位 六 欄 位 七drwxr-xr-x 3 root root 4096 Sep 16 11:11 boot檔 案 屬 性 硬 連 結 數 目 擁 有 者 所 有 者 群 組 大 小 建 檔 日 期 檔 名1. 第 一 欄 位 drwxr-xr-x, 共 有 檔 案 的 10 個 屬 性 :可 讀 可 寫 可 執 行 無 可 寫 之 屬 性❙ ☎ ✱ ✟❙ ✱ ✟ ✟✟ ❧ ❧d rwx r-x r-x✱ ✱✱✱ ✁ ❊ ❭檔 案 擁 有 者 檔 案 所 屬 群 組 其 他 人檔 案 類 型之 屬 性 之 屬 性 之 屬 性(a) 第 一 屬 性 代 表 這 個 檔 案 是 『 目 錄 、 檔 案 或 連 結 檔 』:∗ [ d ] 是 目 錄 ;∗ [ - ] 是 檔 案 ;∗ [ l ] 為 連 結 檔 (link file);∗ [ b ] 表 示 為 裝 置 檔 裡 面 的 可 供 儲 存 的 周 邊 設 備 , 例 如 硬 碟 ;∗ [ c ] 表 示 為 裝 置 檔 裡 面 的 序 列 埠 設 備 , 例 如 鍵 盤 、 滑 鼠 。(b) 接 下 來 的 屬 性 中 , 三 個 為 一 組 , 且 均 為 『rwx』 的 三 個 參 數 的 組合 。 其 中 ,[ r ] 代 表 可 讀 、De-Yu Wang CSIE CYUT 88


8.2. 檔 案 權 限 CHAPTER 8. LINUX 檔 案 權 限 與 管 理• 權 限 的 應 用[ w ] 代 表 可 寫 、[ x ] 代 表 可 執 行 、[ - ] 代 表 無 該 權 限 :∗ 第 一 組 為 『 擁 有 人 的 權 限 』;∗ 第 二 組 為 『 同 群 組 的 權 限 』;∗ 第 三 組 為 『 其 他 非 本 群 組 的 權 限 』。(c) 對 於 目 錄 光 有 可 讀 權 限[ r ] 並 無 法 存 取 目 錄 , 必 須 要 有 權 限[ x ], 才 能 執 行ls, cd 等 指 令 , 以 進 入 目 錄 。(d) <strong>Linux</strong> 檔 案 是 否 可 執 行 與 附 檔 名 無 關 , 而 是 其 有 無 可 執 行[ x ] 的 權 限 。(e) 本 例 中 drwxr-xr-x 代 表 :∗ 檔 案 為 一 目 錄 。∗ 檔 案 擁 有 者 可 讀 、 可 寫 亦 可 執 行 。∗ 檔 案 所 屬 群 組 可 讀 、 可 執 行 但 不 可 寫 。∗ 其 他 人 可 讀 、 可 執 行 但 不 可 寫 。2. 第 二 欄 表 示 為 連 結 佔 用 的 節 點 (i-node) ( 若 為 目 錄 時 , 通 常 與 該 目錄 底 下 還 有 多 少 目 錄 有 關 ) 這 部 分 將 在 介 紹 連 結 link 檔 案 時 ( 下 一節 ) 再 深 入 的 介 紹 ;3. 第 三 欄 表 示 這 個 檔 案 ( 或 目 錄 ) 的 『 擁 有 人 』;4. 第 四 欄 表 示 擁 有 人 的 群 組 ;5. 第 五 欄 為 這 個 檔 案 的 大 小 ;6. 第 六 欄 為 這 個 檔 案 的 建 檔 日 期 或 者 是 最 近 的 修 改 日 期 , 分 別 為 月份 、 日 期 及 時 間 。7. 第 七 欄 為 這 個 檔 案 的 檔 名 , 如 果 檔 名 之 前 多 一 個 『. 』, 則 代 表 這個 檔 案 為 『 隱 藏 檔 』。1. 進 入 某 目 錄 成 為 『 可 工 作 目 錄 』 的 基 本 權 限(a) 使 用 者 可 進 入 該 目 錄 需 具 備 x 權 限(b) 使 用 者 可 在 該 目 錄 查 閱 檔 名 , 需 具 備 r 權 限2. 讀 取 一 個 檔 案 的 基 本 權 限(a) 使 用 者 在 該 檔 案 所 在 的 目 錄 至 少 要 有 x 權 限(b) 使 用 者 對 該 檔 案 至 少 要 有 r 權 限3. 修 改 一 個 檔 案 的 基 本 權 限(a) 使 用 者 在 該 檔 案 所 在 的 目 錄 至 少 要 有 x 權 限(b) 使 用 者 對 該 檔 案 至 少 要 有 r, w 權 限4. 建 立 一 個 檔 案 的 基 本 權 限De-Yu Wang CSIE CYUT 89


8.2. 檔 案 權 限 CHAPTER 8. LINUX 檔 案 權 限 與 管 理(a) 使 用 者 在 該 目 錄 要 具 有 w,x 的 權 限5. 進 入 某 目 錄 並 執 行 該 目 錄 下 的 某 個 指 令(a) 使 用 者 在 該 目 錄 至 少 要 有 x 的 權 限(b) 使 用 者 在 該 檔 案 至 少 需 要 有 x 的 權 限• 例 題 : 若 要 成 功 使 用 指 令 cp, 來 源 / 目 標 的 權 限 各 是 如 何 ?來 源 :2; 目 標 :3。• 例 題 : 在 <strong>Linux</strong> 檔 案 系 統 中 , 刪 除 一 個 檔 案 最 少 具 備 什 麼 權 限 ?A(A) 只 需 對 檔 案 所 在 目 錄 具 有 wx(B) 只 需 對 檔 案 所 在 目 錄 具 有 wx, 及 對 檔 案 具 有 w(C) 只 需 對 檔 案 所 在 目 錄 具 有 wx, 及 對 檔 案 具 有 rw(D) 只 需 對 檔 案 所 在 目 錄 具 有 w , 及 對 檔 案 具 有 w• 例 題 : 使 用 者 foo 屬 於 群 組 foo, 有 一 個 目 錄 名 稱 為 foo, 屬 於 使 用 者root 及 群 組 root, 並 且 目 錄 foo 的 存 取 權 限 為 『drwxr-x--x』, 請 問 下列 哪 些 正 確 ?AD(A) 使 用 者 foo 可 以 進 入 目 錄 foo(B) 使 用 者 foo 不 能 進 入 目 錄 foo(C) 使 用 者 foo 可 以 由 ls 看 到 目 錄 foo 下 有 哪 些 檔 案(D) 如 果 目 錄 foo 中 有 一 檔 案 bar 其 存 取 權 限 為 777, 使 用 者 foo 可 以讀 取 bar練 習 題1. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 drwxr-xr-x 代表 意 義 為 何 ?Sol. 此 檔 為 一 目 錄 , 擁 有 人 的 權 限 為 可 讀 、 可 寫 、 可 執 行 ;同 群 組 使 用 者 權 限 為 可 讀 、 不 可 寫 、 可 執 行 ;其 他 使 用 者 權 限 為 可 讀 、 不 可 寫 、 可 執 行 。2. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 drwxr-x--- 代表 意 義 為 何 ?Sol. 此 檔 為 一 目 錄 , 擁 有 人 的 權 限 為 可 讀 、 可 寫 、 可 執 行 ;同 群 組 使 用 者 權 限 為 可 讀 、 不 可 寫 、 可 執 行 ;其 他 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 不 可 執 行 。3. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 drwx--x--x 代表 意 義 為 何 ?Sol. 此 檔 為 一 目 錄 , 擁 有 人 的 權 限 為 可 讀 、 可 寫 、 可 執 行 ;同 群 組 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 可 執 行 ;其 他 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 可 執 行 。4. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 dr-x--x--x 代表 意 義 為 何 ?De-Yu Wang CSIE CYUT 90


8.2. 檔 案 權 限 CHAPTER 8. LINUX 檔 案 權 限 與 管 理Sol. 此 檔 為 一 目 錄 , 擁 有 人 的 權 限 為 可 讀 、 不 可 寫 、 可 執 行 ;同 群 組 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 可 執 行 ;其 他 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 可 執 行 。5. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 -rwxr--r-- 代表 意 義 為 何 ?Sol. 此 檔 為 一 檔 案 , 擁 有 人 的 權 限 為 可 讀 、 可 寫 、 可 執 行 ;同 群 組 使 用 者 權 限 為 可 讀 、 不 可 寫 、 不 可 執 行 ;其 他 使 用 者 權 限 為 可 讀 、 不 可 寫 、 不 可 執 行 。6. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 -rw-r--r-- 代表 意 義 為 何 ?Sol. 此 檔 為 一 檔 案 , 擁 有 人 的 權 限 為 可 讀 、 可 寫 、 不 可 執 行 ;同 群 組 使 用 者 權 限 為 可 讀 、 不 可 寫 、 不 可 執 行 ;其 他 使 用 者 權 限 為 可 讀 、 不 可 寫 、 不 可 執 行 。7. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 -rwxr-xr-- 代表 意 義 為 何 ?Sol. 此 檔 為 一 檔 案 , 擁 有 人 的 權 限 為 可 讀 、 可 寫 、 可 執 行 ;同 群 組 使 用 者 權 限 為 可 讀 、 不 可 寫 、 可 執 行 ;其 他 使 用 者 權 限 為 可 讀 、 不 可 寫 、 不 可 執 行 。8. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 -rw------- 代表 意 義 為 何 ?Sol. 此 檔 為 一 檔 案 , 擁 有 人 的 權 限 為 可 讀 、 可 寫 、 不 可 執 行 ;同 群 組 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 不 可 執 行 ;其 他 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 不 可 執 行 。9. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 -r-xr-xr-- 代表 意 義 為 何 ?Sol. 此 檔 為 一 檔 案 , 擁 有 人 的 權 限 為 可 讀 、 不 可 寫 、 可 執 行 ;同 群 組 使 用 者 權 限 為 可 讀 、 不 可 寫 、 可 執 行 ;其 他 使 用 者 權 限 為 可 讀 、 不 可 寫 、 不 可 執 行 。10. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 lrwxrwxrwx 代表 意 義 為 何 ?Sol. 此 檔 為 一 連 結 檔 , 擁 有 人 、 同 群 組 及 其 他 使 用 者 的 權 限 皆 為 可 讀 、 可寫 、 可 執 行 。11. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 brw------- 代表 意 義 為 何 ?Sol. 此 檔 為 一 可 供 儲 存 的 周 邊 設 備 , 擁 有 人 的 權 限 為 可 讀 、 可 寫 、 不 可 執行 ;同 群 組 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 不 可 執 行 ;其 他 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 不 可 執 行 。12. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 一 個 櫚 位 為 crw-rw---- 代表 意 義 為 何 ?De-Yu Wang CSIE CYUT 91


8.2. 檔 案 權 限 CHAPTER 8. LINUX 檔 案 權 限 與 管 理Sol. 此 檔 為 一 序 列 埠 設 備 , 擁 有 人 的 權 限 為 可 讀 、 可 寫 、 不 可 執 行 ;同 群 組 使 用 者 權 限 為 可 讀 、 可 寫 、 不 可 執 行 ;其 他 使 用 者 權 限 為 不 可 讀 、 不 可 寫 、 不 可 執 行 。13. 每 個 檔 案 或 目 錄 都 有 權 限 設 定 ,ls -l 輸 出 的 第 七 個 櫚 位 為 .bashrc, 其 中檔 名 前 有 『.』 代 表 意 義 為 何 ?Sol. 表 示 此 檔 為 『 隱 藏 檔 』。14. 進 入 某 目 錄 成 為 『 可 工 作 目 錄 』 的 基 本 權 限 為 何 ?Sol. 1. 使 用 者 可 進 入 該 目 錄 需 具 備 x 權 限 。 2. 使 用 者 可 在 該 目 錄 查 閱 檔名 , 需 具 備 r 權 限 。15. 讀 取 一 個 檔 案 的 基 本 權 限 為 何 ?Sol. 1. 使 用 者 在 該 檔 案 所 在 的 目 錄 至 少 要 有 x 權 限 。 2. 使 用 者 對 該 檔 案至 少 要 有 r 權 限 。16. 修 改 一 個 檔 案 的 基 本 權 限 為 何 ?Sol. 1. 使 用 者 在 該 檔 案 所 在 的 目 錄 至 少 要 有 x 權 限 。 2. 使 用 者 對 該 檔 案至 少 要 有 r, w 權 限 。17. 建 立 一 個 檔 案 的 基 本 權 限 為 何 ?Sol. 使 用 者 在 該 目 錄 要 具 有 w,x 的 權 限 。18. 進 入 某 目 錄 並 執 行 該 目 錄 下 的 某 個 指 令 之 基 本 權 限 為 何 ?Sol. 1. 使 用 者 在 該 目 錄 至 少 要 有 x 的 權 限 。 2. 使 用 者 在 該 檔 案 至 少 需 要有 x 的 權 限 。19. 在 <strong>Linux</strong> 檔 案 系 統 中 , 刪 除 一 個 檔 案 最 少 要 具 備 什 麼 權 限 ?Sol. 只 需 對 檔 案 所 在 目 錄 具 有 wx。20. 使 用 者 foo 屬 於 群 組 foo, 有 一 個 目 錄 名 稱 為 foo, 使 於 使 用 者 root 及群 組 root, 並 且 目 錄 foo 的 存 取 權 限 為 『drwxr-x--x』, 則 使 用 者 foo可 不 可 以 進 入 目 錄 foo?Sol. 可 以 。21. 使 用 者 foo 屬 於 群 組 foo, 有 一 個 目 錄 名 稱 為 foo, 使 於 使 用 者 root 及群 組 root, 並 且 目 錄 foo 的 存 取 權 限 為 『drwxr-x--x』, 則 使 用 者 foo可 不 可 以 由 ls 看 到 目 錄 foo 下 有 哪 些 檔 案 ?Sol. 不 可 以 。22. 使 用 者 foo 屬 於 群 組 foo, 有 一 個 目 錄 名 稱 為 foo, 使 於 使 用 者 root 及群 組 root, 並 且 目 錄 foo 的 存 取 權 限 為 『drwxr-x--x』, 如 果 目 錄 foo中 有 一 檔 案 bar 其 存 取 權 限 為 777, 使 用 者 foo 可 不 可 以 讀 取 bar?Sol. 可 以 。De-Yu Wang CSIE CYUT 92


8.3. 改 變 檔 案 權 限 CHAPTER 8. LINUX 檔 案 權 限 與 管 理8.3 改 變 檔 案 權 限1. chgrp: 改 變 檔 案 所 屬 群 組 。✞chgrp 群 組 名 稱 檔 案 或 目 錄✡✝✆• 群 組 名 稱 必 須 已 存 在 於 /etc/group, 否 則 會 產 生 錯 誤 。2. chown: 改 變 檔 案 擁 有 者 。✞谱 chown [ -R ] 帳 號 名 稱 檔 案 或 目 錄chown [ -R ] 帳 號 名 稱 群 組 名 稱 : 檔 案 或 目 錄✡✝✆(a) 帳 號 名 稱 必 須 已 存 在 於 /etc/passwd, 否 則 會 產 生 錯 誤 。(b) 選 項 [ -R ] 可 以 連 目 錄 下 的 所 有 次 目 錄 或 檔 案 同 時 更 改 擁 有 者 。(c) chown 亦 可 同 時 更 改 所 屬 群 組 。3. chmod: 改 變 權 限 。✞chmod [ -R ] xyz 檔 案 或 目 錄谲 chmod [ -R ] u = r 檔 案 或 目 錄g + w 檔 案 或 目 錄谴o - x 檔 案 或 目 錄a 檔 案 或 目 錄谶 chmod u=rwx,go=rx 檔 案 或 目 錄chmod a-x 檔 案 或 目 錄✡✝✆• xyz 為 三 組 rwx 屬 性 數 值 之 加 總 。r : 4w : 2x : 1• -rwxr-xr-- 之 屬 性 數 值 為 754。• 符 號 類 型u : userg : groupo : othera : allDe-Yu Wang CSIE CYUT 93


8.3. 改 變 檔 案 權 限 CHAPTER 8. LINUX 檔 案 權 限 與 管 理+ : 加 入- : 除 去= : 設 定4. 例 題 : 若 從 光 碟 複 製 某 一 目 錄 abc ( 包 含 次 目 錄 之 所 有 檔 案 ) 至 硬 碟 , 則 目前 使 用 者 雖 為 檔 案 擁 有 者 , 但 卻 無 法 修 改 該 檔 案 , 請 問 如 何 以 簡 單 的 方 式 ,讓 使 用 者 可 以 修 改 所 有 檔 案 ?✞谱 chmod u+w -R abc✡✝✆練 習 題1. 如 何 變 更 檔 案 foo 所 屬 群 組 為 root?Sol. chgrp root foo2. 要 變 更 檔 案 foo 所 屬 群 組 為 csie, 則 群 組 csie 必 須 存 在 , 否 則 會 產 生 錯誤 , 亦 即 csie 必 須 存 在 於 那 個 檔 案 中 ?Sol. /etc/group3. 如 何 變 更 檔 案 foo 擁 有 者 為 root?Sol. chown root foo4. 要 變 更 檔 案 foo 擁 有 者 為 csie, 則 csie 帳 號 必 須 存 在 , 否 則 會 產 生 錯誤 , 亦 即 csie 必 須 存 在 於 那 個 檔 案 中 ?Sol. /etc/passwd5. 如 何 以 一 個 指 令 一 次 變 更 檔 案 foo 擁 有 者 為 root, 且 所 屬 群 組 為 wheel?Sol. chown root:wheel foo6. 如 何 以 一 個 指 令 一 次 變 更 目 錄 /root 及 其 下 所 有 次 目 錄 或 檔 案 之 擁 有 者 為root, 且 所 屬 群 組 為 wheel?Sol. chown root:wheel -R /root7. 如 何 以 一 個 指 令 改 變 檔 案 /tmp/pwfile 的 擁 有 者 為 csie 且 所 屬 群 組 為users?Sol. chown csie:users /tmp/pwfile8. 如 何 以 一 個 指 令 改 變 目 錄 /tmp/testdir 及 其 次 目 錄 與 檔 案 的 擁 有 者 為csie1?Sol. chown -R csie1 /tmp/testdir9. 如 何 將 檔 案 /tmp/testfile 的 權 限 改 成 -rw-r-----?Sol. chmod 640 /tmp/testfile 或 chmod u=rw,g=r,o= /tmp/testfileDe-Yu Wang CSIE CYUT 94


8.3. 改 變 檔 案 權 限 CHAPTER 8. LINUX 檔 案 權 限 與 管 理10. 如 何 將 檔 案 /tmp/testfile 的 權 限 改 成 -rwxr-x---?Sol. chmod 750 /tmp/testfile 或 chmod u=rwx,g=rx,o=/tmp/testfile11. 如 何 變 更 目 錄 foo 及 其 下 所 有 次 目 錄 或 檔 案 , 擁 有 者 的 權 限 為 可 讀 及 可 寫 ,其 他 權 限 則 不 變 ?Sol. chmod u=rw -R foo12. 如 何 變 更 檔 案 foo 擁 有 者 的 權 限 為 可 讀 及 可 寫 , 其 他 權 限 則 不 變 ?Sol. chmod u=rw foo13. 如 何 去 除 擁 有 者 對 檔 案 foo 可 執 行 的 權 限 , 其 他 權 限 則 不 變 ?Sol. chmod u-x foo14. 如 何 增 加 擁 有 者 對 檔 案 foo 可 寫 的 權 限 , 其 他 權 限 則 不 變 ?Sol. chmod u+w foo15. 如 何 變 更 目 錄 foo 及 其 下 所 有 次 目 錄 或 檔 案 , 所 屬 群 組 及 其 他 使 用 者 的 權 限為 可 讀 及 可 執 行 , 其 他 權 限 則 不 變 ?Sol. chmod go=rx -R foo16. 如 何 變 更 檔 案 foo 所 屬 群 組 及 其 他 使 用 者 的 權 限 為 可 讀 及 可 執 行 , 其 他 權 限則 不 變 ?Sol. chmod go=rx foo17. 如 何 去 除 其 他 使 用 者 對 檔 案 foo 可 寫 的 權 限 , 其 他 權 限 則 不 變 ?Sol. chmod o-w foo18. 如 何 增 加 所 屬 群 組 對 檔 案 foo 可 執 行 的 權 限 , 其 他 權 限 則 不 變 ?Sol. chmod g+x foo19. 如 何 以 屬 性 數 值 設 定 檔 案 foo 的 權 限 , 擁 有 者 為 可 讀 、 可 寫 、 可 執 行 ; 所 屬群 組 為 可 讀 、 不 可 寫 、 可 執 行 ; 其 他 使 用 者 則 為 不 可 讀 、 寫 及 執 行 ?Sol. chmod 750 foo20. 如 何 以 屬 性 數 值 設 定 檔 案 foo 的 權 限 , 擁 有 者 為 可 讀 、 可 寫 、 可 執 行 ; 所 屬群 組 為 可 讀 、 不 可 寫 、 不 可 執 行 ; 其 他 使 用 者 則 為 不 可 讀 、 寫 及 執 行 ?Sol. chmod 740 foo21. 如 何 以 屬 性 數 值 設 定 檔 案 foo 的 權 限 , 擁 有 者 為 可 讀 、 可 寫 、 不 可 執 行 ; 所屬 群 組 為 可 讀 、 不 可 寫 、 不 可 執 行 ; 其 他 使 用 者 則 為 可 讀 、 不 可 寫 、 不 可 執行 ?Sol. chmod 644 foo22. 如 何 以 屬 性 數 值 設 定 目 錄 foo 及 其 下 所 有 次 目 錄 或 檔 案 的 權 限 , 擁 有 者 為 可讀 、 可 寫 、 不 可 執 行 ; 所 屬 群 組 為 可 讀 、 不 可 寫 、 不 可 執 行 ; 其 他 使 用 者 則為 可 讀 、 不 可 寫 、 不 可 執 行 ?Sol. chmod 644 -R fooDe-Yu Wang CSIE CYUT 95


8.4. ACCESS CONTROL LISTS CHAPTER 8. LINUX 檔 案 權 限 與 管 理8.4 Access Control Listsgetfacl 取 得 ACL 的 狀 態 。setfacl 設 定 ACL 的 狀 態 。1. 什 麼 是 ACL (Access Control List)?(a) 提 供 傳 統 的 owner,group,others 的 read,write,execute 權 限 之 外 的 細 部權 限 設 定 。(b) ACL 可 以 針 對 單 一 使 用 者 , 單 一 檔 案 或 目 錄 來 進 行 r, w, x 的 權 限 規範 。(c) ACL 主 要 可 以 針 對 以 下 項 目 來 控 制 權 限 :i. 使 用 者 (user): 可 以 針 對 使 用 者 來 設 定 權 限 ;ii. 群 組 (group): 針 對 群 組 為 對 象 來 設 定 其 權 限 ;iii. 預 設 屬 性 (mask): 針 對 在 該 目 錄 下 在 建 立 新 檔 案 / 目 錄 時 , 規 範 新資 料 的 預 設 權 限 。2. 啟 動 及 觀 察 ACL✞谱 [root@demo ~]# mount -o remount,acl /[root@demo ~]# mount谳 /dev/mapper/vgsrv-root on / type ext4 (rw,acl)✡✝✆3. 開 機 即 啟 動 ACL✞谱 [root@demo ~]# vim /etc/fstab/dev/mapper/vgsrv-root / ext4 defaults,acl 1 1✡✝✆4. setfacl: 設 定 ACL 的 狀 態 。✞[root@demo ~]# setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X}acl_file] file ... 選項 :谲-m : 設 定 後 續 的 acl 參 數 給 檔 案 使 用 , 不 可 與 -x 合 用 ;谴 -x : 刪 除 後 續 的 acl 參 數 , 不 可 與 -m 合 用 ;-b : 移 除 所 有 的 ACL 設 定 參 數 ;谶 -k : 移 除 預 設 的 ACL 參 數 ;-R : 遞 迴 設 定 , 即 包 括 次 目 錄 都 會 被 設 定 ; aclDe-Yu Wang CSIE CYUT 96


8.4. ACCESS CONTROL LISTS CHAPTER 8. LINUX 檔 案 權 限 與 管 理谸 -d : 設 定 『 預 設 acl 參 數 』, 只 對 目 錄 有 效 , 在 該 目 錄 新 建 的 資 料 會 引 用 此預 設 值acl_spec:谱 谰 [d[efault]:] [u[ser]:]uid [:perms][d[efault]:] g[roup]:gid [:perms]谱 谲 [d[efault]:] m[ask][:] [:perms][d[efault]:] o[ther][:] [:perms]谱 谴 # d 選 項 , 表 示 該 目 錄 預 設 有 設 定 的 acl 規 範 , 類 似 umask 的 功 能 。谱 谶 [root@demo ~]# cd /tmp[root@demo tmp]# touch acl_test谱 谸 [root@demo tmp]# ll acl_test-rw-r--r--. 1 root root 0 Jul 18 17:35 acl_test谲 谰 ## 針 對 使 用 者 aclan[root@demo tmp]# setfacl -m u:aclan:rwx acl_test谲 谲 [root@demo tmp]# ll acl_test-rw-rwxr--+ 1 root root 0 Jul 18 17:35 acl_test谲 谴 # 權 限 部 分 多 了 個 , 且 權 限 不 是 原 本 的 \"? +644✡✝✆5. getfacl: 取 得 ACL 狀 態 。✞[root@demo ~]# getfacl filename 選 項 與 參 數 :谲getfacl 的 選 項 幾 乎 與 setfacl 相 同谴[root@demo tmp]# getfacl acl_test谶 # file: acl_test# owner: root谸 # group: rootuser::rw-谱 谰 user:aclan:rwx


8.4. ACCESS CONTROL LISTS CHAPTER 8. LINUX 檔 案 權 限 與 管 理谹谱 谱谱 谳谱 谵谱 谷谱 谹谲 谱谲 谳谲 谵user::rwxuser:aclan:rwxgroup::r--mask::rwxother::r--


8.4. ACCESS CONTROL LISTS CHAPTER 8. LINUX 檔 案 權 限 與 管 理# group: root谵 谹 user::rwxgroup::r--谶 谱 group:aclan:r-xmask::r-x谶 谳 other::r--✡✝✆7. 例 題 : 將 目 錄 /tmp/acl_dir, 設 定 為 讓 aclan 可 以 進 入 查 閱 , 但 不 具 有 修改 的 權 力 。✞谱 # 1. 先 產 生 測 試 目 錄[root@demo tmp]# mkdir acl_dir谳 [root@demo tmp]# ll -d acl_*drwxr-xr-x. 2 root root 4096 Jul 18 18:10 acl_dir谵 -rwxr-xr--+ 1 root root 0 Jul 18 17:35 acl_test[root@demo tmp]# chmod 700 acl_dir/谷 [root@demo tmp]# ll -d acl_*drwx------. 2 root root 4096 Jul 18 18:10 acl_dir谹 -rwxr-xr--+ 1 root root 0 Jul 18 17:35 acl_test谱 谱 # 2. 切 換 使 用 者 aclan 測 試[root@demo tmp]# su - aclan谱 谳 [aclan@demo ~]$ cd /tmp/acl_dir/-bash: cd: /tmp/acl_dir/: Permission denied谱 谵# 3. 用 root 設 定 aclan 對 目 錄 acl_dir 的 權 限谱 谷 [root@demo tmp]# setfacl -m u:aclan:rx acl_dir[root@demo tmp]# getfacl acl_dir谱 谹 # file: acl_dir# owner: root谲 谱 # group: rootuser::rwx谲 谳 user:aclan:r-xgroup::---谲 谵 mask::r-xother::---谲 谷#4. 再 切 換 使 用 者 aclan 測 試谲 谹 [root@demo tmp]# su - aclan[aclan@demo ~]$ cd /tmp/acl_dir/谳 谱 [aclan@demo acl_dir]$ touch aaatouch: cannot touch ‘aaa’: Permission denied✡✝✆8. 設 定 目 錄 的 預 設 ACL 的 權 限De-Yu Wang CSIE CYUT 99


8.4. ACCESS CONTROL LISTS CHAPTER 8. LINUX 檔 案 權 限 與 管 理✞#1. 產 生 測 試 目 錄 及 檔 案 並 觀 察谲 [root@demo tmp]# cd acl_dir/[root@demo acl_dir]# touch file1谴 [root@demo acl_dir]# mkdir dir1[root@demo acl_dir]# ll谶 total 4drwxr-xr-x. 2 root root 4096 Jul 18 18:28 dir1谸 -rw-r--r--. 1 root root 0 Jul 18 18:28 file1# 權 限 後 面 都 沒 有 + , 代 表 這 個 acl 屬 性 並 沒 有 繼 承谱 谰#2. 讓 aclan 在 /tmp/acl_dir 底 下 一 直 具 有 rx 的 預 設 權 限谱 谲 [root@demo acl_dir]# setfacl -m d:u:aclan:rx /tmp/acl_dir[root@demo acl_dir]# getfacl /tmp/acl_dir谱 谴 getfacl: Removing leading ’/’ from absolute path names# file: tmp/acl_dir谱 谶 # owner: root# group: root谱 谸 user::rwxuser:aclan:r-x谲 谰 group::---mask::r-x谲 谲 other::---default:user::rwx谲 谴 default:user:aclan:r-xdefault:group::---谲 谶 default:mask::r-xdefault:other::---谲 谸[root@demo acl_dir]# touch file2谳 谰 [root@demo acl_dir]# mkdir dir2[root@demo acl_dir]# ll谳 谲 total 16drwxr-xr-x. 2 root root 4096 Jul 18 18:28 dir1谳 谴 drwxr-x---+ 2 root root 4096 Jul 18 18:48 dir2-rw-r--r--. 1 root root 0 Jul 18 18:28 file1谳 谶 -rw-r-----+ 1 root root 0 Jul 18 18:48 file2# 權 限 後 面 有 , 表 示 確 實 有 繼 承 。 +✡✝✆9. 將 一 檔 案 的 ACL 設 定 copy 到 另 一 檔 案谱谳谵谷✞[root@demo acl_dir]# getfacl file2# file: file2# owner: root# group: rootuser::rwuser:aclan:r-x#effective:r--group::---De-Yu Wang CSIE CYUT 100


8.4. ACCESS CONTROL LISTS CHAPTER 8. LINUX 檔 案 權 限 與 管 理谹mask::r--other::---谱 谱 [root@demo acl_dir]# getfacl file2 | setfacl --set-file=- file1[root@demo acl_dir]# getfacl file1谱 谳 # file: file1# owner: root谱 谵 # group: rootuser::rw-谱 谷 user:aclan:r-x #effective:r--group::---谱 谹 mask::r--other::---✡✝✆10. 例 題 : 假 設 /depts 與 根 目 錄 / 為 同 一 個 partition。 如 何 針 對 這 個 目 錄下 的 資 料 進 行 ACL 設 定 ?(a) 如 何 讓 /depts 目 錄 具 有 可 以 使 用 ACL 功 能 ?(b) 請 在 /depts 底 下 新 增 一 個 名 為 tech 的 目 錄 , 這 個 目 錄 的 使 用 者 、 群組 為 :root, hr;(c) 使 用 ACL, 讓 web 這 個 群 組 在 /depts/tech 具 有 完 整 的 權 限 :(d) 使 用 ACL 讓 alex 具 有 讀 、 執 行 但 不 可 寫 入 , 且 alex 的 預 設 權 限 為read/write?(e) 請 問 alex, Joshua, manager 在 該 目 錄 下 的 rwx 為 何 ?11. 例 題 : 讓 檔 案 系 統 可 以 支 援 ACL 的 作 法 。大 前 提 : 請 建 立 一 個 新 的 partition, 且 此 partition 掛 載 到 /opt/ 這 個目 錄 , 使 用 預 設 掛 載 不 要 加 入 參 數 !(a) 建 立 使 用 者 : 新 增 群 組 名 為 acct, 且 新 增 四 個 使 用 者 , 分 別 是 :amy,arthur, ann, austin, 這 四 個 人 的 次 要 群 組 (seconday) 為 acct。 這 四個 使 用 者 不 需 要 密 碼 。(b) 建 立 共 用 目 錄 , 請 用 root 建 立 /acct 目 錄 , 此 目 錄 屬 於 amy 且 屬 於acct 群 組 , 且 權 限 請 設 定 為 755。(c) /opt 請 設 定 為 1777 權 限 ;(d) 請 切 換 身 份 成 為 amy, 利 用 ACL 的 控 制 , 讓 arthur 與 ann 對 /acct可 讀 可 寫 可 執 行 。(e) 請 分 別 切 換 身 份 為 為 其 他 三 人 , 測 試 看 看 能 否 寫 入 該 目 錄 。(f) 使 用 amy 身 份 到 /acct 建 立 兩 個 檔 案 , 檔 名 為 cayman, swiss, 讓arthur 可 寫 入 cayman, 讓 ann 可 寫 入 swiss。(g) 建 立 一 個 次 目 錄 ( banks ), 讓 所 有 在 banks 所 建 立 的 檔 案 都 能 讓amy, arthur, ann 三 人 寫 入 , 但 austin 則 否 ;De-Yu Wang CSIE CYUT 101


8.5. 檔 案 的 搜 尋 CHAPTER 8. LINUX 檔 案 權 限 與 管 理(h) 讓 amy 建 立 檔 案 /acct/banks/deposits, 並 觀 察 ACL。 請 用 amy 的身 份 將 deposits 移 動 到 /tmp, 並 查 閱 ACL, 再 將 檔 案 移 動 到 /opt,查 閱 ACL。(i) ACL 在 不 同 的 檔 案 系 統 間 移 動 , 可 能 會 遺 失 ACL 的 屬 性 。 請 使 用mount 檢 查 不 同 的 檔 案 系 統 是 否 具 有 ACL 的 支 援 。8.5 檔 案 的 搜 尋which 尋 找 執 行 檔 。whereis 尋 找 特 定 檔 案 。locate 尋 找 檔 案 ( 建 立 於 資 料 庫 )。updatesdb 建 立 檔 案 資 料 庫 。find 尋 找 檔 案 。1. which: 到 環 境 變 數 $PATH 指 定 的 路 徑 , 尋 找 可 執 行 檔 。谲✞[root@dywHome2 test]# which 執 行 檔 名 稱 [] 參 數 說 明 : 範 例 :谴 [root@dywHome2 test]# which ls/bin/ls谶 [root@dywHome2 test]# which passwd/usr/bin/passwd谸 [root@dywHome2 test]# which fdisk/sbin/fdisk✡✝✆2. whereis: 在 特 定 的 目 錄 , 如 /bin, /usr/bin, /etc, /usr/share/man... 等 , 尋 找 可 執 行 檔 、 原 始 碼 檔 、manpage 檔 案 。✞谱 [root@dywHome2 test]# whereis [-bmsu] filename 參 數 說 明 :谳 -b 只 找 : binary 的 檔 案-m 只 找 在 說 明 檔 : manual 路 徑 下 的 檔 案谵 -s 只 找 : source 來 源 檔 案-u 沒 有 說 明 檔 的 檔 案 : 範 例 :谷谹谱 谱谱 谳[root@dywHome2 test]# whereis updatedbupdatedb: /usr/bin/updatedb /etc/updatedb.conf /usr/share/man/man1/updatedb.1.bz2[root@dywHome2 test]# whereis -b updatedbupdatedb: /usr/bin/updatedb /etc/updatedb.conf[root@dywHome2 test]# whereis -m updatedbDe-Yu Wang CSIE CYUT 102


8.5. 檔 案 的 搜 尋 CHAPTER 8. LINUX 檔 案 權 限 與 管 理updatedb: /usr/share/man/man1/updatedb.1.bz2谱 谵 [root@dywHome2 test]# man whereis[root@dywHome2 test]# whereis -s updatedb谱 谷 updatedb:✡✝✆3. locate: 到 檔 案 資 料 庫 尋 找 檔 案 , 資 料 庫 可 使 用 updatedb 更 新 。✞谱 [root@dywHome2 test]# locate filename 參 數 說 明 : 範 例 :谳[root@dywHome2 test]# locate updatedb谵 locate: fatal error: Could not find user database ’/var/lib/slocate/slocate.db’:No such file or directory谷 [root@dywHome2 test]# updatedb/usr/bin/slocate: option requires an argument -- l谹 [root@dywHome2 test]# locate updatedb/usr/share/man/man1/updatedb.1.bz2谱 谱 /usr/share/vim/ftplugin/updatedb.vim/usr/share/vim/syntax/updatedb.vim谱 谳 /usr/bin/updatedb/etc/updatedb.conf✡✝✆4. updatedb 建 立 資 料 車 slocate.db 之 設 定 。谲谴谶谸谱 谰✞[root@dywHome2 test]# cat /etc/updatedb.conf## Mandriva <strong>Linux</strong> configuration.# Originally written by Chmouel Boudjnah # Modified 20010109 by Francis Galiegue # Fixes by mlord@pobox.com, 20010328# Which directories to exclude. /home and /root are excluded forprivacy, but# YMMVPRUNEPATHS="/proc /tmp /var/tmp /usr/tmp /net /afs /mnt /afs /media /sfs/var/spool/cups /var/spool/squid"谱 谲 # Which filesystems do we exclude from search?PRUNEFS="nfs smbfs ncpfs proc devpts supermount vfat iso9660 udfusbdevfs谱 谴 devfs auto afs sfs"✡✝✆De-Yu Wang CSIE CYUT 103


8.5. 檔 案 的 搜 尋 CHAPTER 8. LINUX 檔 案 權 限 與 管 理5. find: 功 能 強 大 的 檔 案 搜 尋 指 令 。✞[root@linux ~]# find [PATH] [option] [action] 參 數 :谲1. 與 時 間 有 關 的 參 數 :谴 -atime n : 在 n 天 之 前 的 『 一 天 之 內 』 被 access 過 的 檔 案 ;-ctime n : 在 n 天 之 前 的 『 一 天 之 內 』 被 change 過 狀 態 的 檔 案 ;谶 -mtime n : 在 n 天 之 前 的 『 一 天 之 內 』 被 modification 過 的 檔 案 ;-newer file : 比 檔 案 file 還 新 的 檔 案 。谸 2. 與 使 用 者 或 群 組 名 稱 有 關 的 參 數 :-uid n : 使 用 者 的 帳 號 , IDUID=n 的 檔 案谱 谰 -gid n : 群 組 名 稱 的 , IDGID=n 的 檔 案-user name : 使 用 者 帳 號 名 稱 為 name 的 檔 案谱 谲 -group : 群 組 名 稱 為 name name 的 檔 案-nouser : 檔 案 的 擁 有 者 不 存 在 的 檔 案谱 谴 -nogroup : 檔 案 的 擁 有 群 組 不 存 在 的 檔 案3. 與 檔 案 權 限 及 名 稱 有 關 的 參 數 :谱 谶 -name : 檔 案 名 稱 為 filename filename 的 檔 案 ;-size [+-]: 比 SIZE SIZE 還 要 大 (+) 或 小 (-) 的 檔 案 。SIZE 的 規 格 有 :谱 谸c:,byte k:1024。 例 如 :bytes-size +50。k-type TYPE : 檔 案 的 類 型 為 TYPE 的 檔 案 , 類 型 主 要 有 : 一 般 正 規 檔案 (f), 裝 置 檔 案谲 谰(b, c), 目 錄 (d), 連 結 檔 (l), socket (s), 及FIFO (p) 等 屬 性 。谲 谲 -perm mode : 檔 案 屬 性 『 剛 好 等 於 』 mode 的 檔 案-perm -mode : 檔 案 屬 性 『 必 須 包 含 所 有 mode 的 屬 性 』 的 檔 案 , 權 限 數值 大 於 等 於 。 mode谲 谴 -perm +mode : 檔 案 屬 性 『 包 含 任 一 mode 的 屬 性 』 的 檔 案 , 例 如 :-perm +755(-rwxr-xr-x), 包 含 屬 性 為 -rw-------檔 案 。谲 谶 4. 額 外 可 進 行 的 動 作 :-exec command :-exec 後 再 接 指 令 command 來 處 理 搜 尋 的 結 果 。谲 谸 -print : 將 結 果 列 印 到 螢 幕 上 ( 預 設 動 作 ) 範 例 : 範 例 一 : 列 出的谳 谰谳 谲谳 谴谳 谶谳 谸谴 谰谴 谲24 小 時 內 更 動 過 內 容 (mtime) 的 檔 案[root@linux ~]# find / -mtime 0# find / -mtime 3 , 今 天 之 前 的 3*24 ~ 4*24 小 時 之 間# -atime 與 -ctime 的 用 法 相 同 。 範 例 二 : 尋 找/etc 下 檔 案 日 期 比 /etc/passwd 新 的 檔 案[root@linux ~]# find /etc -newer /etc/passwd 範 例 三 : 搜 尋/home 下 屬 於 dmtsai 的 檔 案[root@linux ~]# find /home -user dmtsai 範 例 四 : 搜 尋 系 統 中 不 屬 於 任 何人 的 檔 案[root@linux ~]# find / -nouser 範 例 五 : 找 出 檔 名 為De-Yu Wang CSIE CYUT 104


8.5. 檔 案 的 搜 尋 CHAPTER 8. LINUX 檔 案 權 限 與 管 理谴 谴谴 谶passwd 這 個 檔 案[root@linux ~]# find / -name passwd 範 例 六 : 搜 尋 檔 案 屬 性 為f 一 般 檔 案 () 的 檔 案谴 谸 [root@linux ~]# find /home -type f# 例 如 socket 與 FIFO 檔 案 , 可 以 用 find /var -type p 或 -type s 來找 範 例 七 : 搜 尋 檔 案 當 中 含 有谵 谰SGID/SUID/SBIT 的 屬 性谵 谲 [root@linux ~]# find / -perm +7000# 7000 是 ---s--s--t , 只 要 含 有 s 或 t 的 就 列 出 ,谵 谴 # 使 用 -7000 表 示 要 含 有 ---s--s--t 的 所 有 三 個 權 限 , 範 例 八 : 將 上 個 範例 找 到 的 檔 案 使 用谵 谶 ls -l 列 出[root@linux ~]# find / -perm +7000 -exec ls -l {} \;谵 谸 # {} 代 表 『 由 find 找 到 的 內 容 』# 就 是 將 前 面 找 到 的 那 些 檔 案 以 ls -l 列 出 長 的 資 料 ! 至 於谶 谰 # \; 則 表 示 -exec 的 指 令 結 束 , 一 定 要 存 在 。 範 例 九 : 找 出 系 統 中 , 大 於谶 谲1MB 的 檔 案[root@linux ~]# find / -size +1000k✡✝✆練 習 題1. 那 個 指 令 只 到 環 境 變 數 $PATH 指 定 的 路 徑 , 尋 找 檔 案 ? 故 只 能 尋 找 可 執 行檔 。Sol. which2. 那 個 指 令 在 特 定 的 目 錄 , 如 /bin, /usr/bin, /etc, /usr/share/man ...等 , 尋 找 可 執 行 檔 、 原 始 碼 檔 、manpage 檔 案 ?Sol. whereis3. 如 何 利 用 指 令 whereis, 只 找 出 指 令 ls 的 可 執 行 檔 之 路 徑 ?Sol. whereis -b ls4. 如 何 利 用 指 令 whereis, 只 找 出 指 令 ls 的 說 明 檔 之 路 徑 ?Sol. whereis -m ls5. 如 何 利 用 指 令 whereis, 只 找 出 指 令 ls 的 原 始 碼 檔 之 路 徑 ?Sol. whereis -s ls6. 如 何 利 用 指 令 whereis, 只 找 出 指 令 ls 的 可 執 行 檔 、 原 始 碼 檔 、 說 明 檔 之路 徑 ?Sol. whereis ls7. 那 個 指 令 只 到 檔 案 資 料 庫 slocate.db 尋 找 檔 案 ? 故 必 須 先 建 立 檔 案 資 料庫 。Sol. locateDe-Yu Wang CSIE CYUT 105


8.5. 檔 案 的 搜 尋 CHAPTER 8. LINUX 檔 案 權 限 與 管 理8. 檔 案 資 料 庫 slocate.db, 必 須 使 用 什 麼 指 令 建 立 及 更 新 ?Sol. updatedb9. updatedb 建 立 檔 案 資 料 庫 slocate.db 之 設 定 存 在 那 個 檔 案 ?Sol. /etc/updatedb.conf10. 如 何 找 出 /etc 下 , 兩 天 前 的 24 小 時 內 , 變 動 過 內 容 的 檔 案 ?Sol. find /etc -mtime 211. 如 何 以 指 令 find 搜 尋 24 小 時 內 更 動 過 內 容 (mtime) 的 檔 案 ?Sol. find / -mtime 012. 如 何 以 指 令 find 搜 尋 三 天 之 前 的 24 小 時 內 更 動 過 內 容 (mtime) 的 檔案 ?Sol. find / -mtime 313. 如 何 以 指 令 find 搜 尋 二 天 之 前 的 24 小 時 內 更 動 過 狀 態 (ctime) 的 檔案 ?Sol. find / -ctime 214. 如 何 以 指 令 find 搜 尋 五 天 之 前 的 24 小 時 內 存 取 過 (atime) 的 檔 案 ?Sol. find / -atime 515. 如 何 以 指 令 find 尋 找 /etc 下 檔 案 日 期 比 /etc/passwd 新 的 檔 案 ?Sol. find /etc -newer /etc/passwd16. 如 何 找 出 /etc 下 , 比 /home/csie/testfile 新 的 檔 案 ?Sol. find /etc -newer /home/csie/testfile17. 如 何 以 指 令 find 搜 尋 /home 下 屬 於 csie 的 檔 案 ?Sol. find /home -user csie18. 如 何 以 指 令 find 搜 尋 系 統 中 不 屬 於 任 何 人 的 檔 案 ?Sol. find / -nouser19. 如 何 以 指 令 find 搜 尋 系 統 中 檔 名 為 foo 的 檔 案 ?Sol. find / -name foo20. 如 何 以 指 令 find 搜 尋 /home 下 檔 案 屬 性 為 f ( 一 般 檔 案 ) 的 檔 案 ?Sol. find /home -type f21. 如 何 找 出 /etc 下 , 所 有 含 有 SUID/SGID 的 檔 案 ?Sol. find /etc -perm +600022. 如 何 找 出 /etc 下 , 權 限 至 少 為 755 以 上 的 檔 案 ?Sol. find /etc -perm -075523. 如 何 找 出 /etc 下 , 檔 案 大 小 大 於 1MB 以 上 的 檔 案 ?Sol. find /etc -size +1024kDe-Yu Wang CSIE CYUT 106


8.5. 檔 案 的 搜 尋 CHAPTER 8. LINUX 檔 案 權 限 與 管 理24. 如 何 找 出 /etc 下 , 檔 案 大 小 小 於 50KB 的 檔 案 ?Sol. find /etc -size -50kDe-Yu Wang CSIE CYUT 107


8.5. 檔 案 的 搜 尋 CHAPTER 8. LINUX 檔 案 權 限 與 管 理De-Yu Wang CSIE CYUT 108


CHAPTER 9.檔 案 系 統 的 掛 載Chapter 9檔 案 系 統 的 掛 載9.1 認 識 硬 碟1. 硬 碟 構 造 :磁 頭 (Head) 硬 碟 讀 寫 。磁 軌 (Track) 磁 頭 固 定 , 硬 碟 轉 一 圈 。磁 柱 (Cylinder) 多 個 硬 碟 盤 同 半 徑 之 磁 軌 總 和 。磁 區 (sector) 硬 碟 最 小 儲 存 物 理 量 , 約 512bytes。硬 碟 的 儲 存 量 磁 柱 x 磁 碩 x 磁 區 x 512bytes。2. 硬 碟 分 割 相 關 名 詞 :(a) 主 要 開 機 磁 區 MBR (Master Boot Recorder): 記 錄 開 機 管 理 程 式 及 磁碟 分 割 表 。(b) 磁 碟 分 割 表 (partition table):Primary+Extended 只 能 有 四 個 分 割紀 錄 , 且 Extended 最 多 只 能 一 個 。 硬 碟 分 割 表 與 資 料 儲 存 區 示 意圖 :De-Yu Wang CSIE CYUT 109


9.1. 認 識 硬 碟 CHAPTER 9. 檔 案 系 統 的 掛 載❄MBRpartition table實 體 資 料 放 置 區✛Extended/dev/hda4✲❄MBRpartition tablePrimary/dev/hda1Primary/dev/hda2Primary/dev/hda3Logical/dev/hda5Logical/dev/hda6Logical/dev/hda7✛Extended/dev/hda2✲❄MBRpartition tablePrimary/dev/hda1Logical/dev/hda5Logical/dev/hda6Logical/dev/hda7Logical/dev/hda8Logical/dev/hda9(c) 分 割 槽 (partition): 從 n1 到 n2 磁 柱 , 故 磁 柱 為 分 割 之 最 小 單 位 。(d) 檔 案 系 統 : 每 個 分 割 槽 即 是 一 個 檔 案 系 統 (file system)。3. 以 指 令 df 查 看 硬 碟 分 割 及 掛 載 狀 況 :✞谱 [root@mdk-dyw dywang]# dfFilesystem Size Used Avail Use% Mounted on谳 /dev/hda1 5.8G 2.9G 2.6G 53% //dev/hda6 68G 33G 35G 49% /home 註 :谵 /dev/hda5 分 割 給 swap 未 顯 示 。✡✝✆4. 顯 示 硬 碟 /dev/hda 分 割 狀 況 :✞谱 [root@mdk-dyw dywang]# fdisk -l /dev/hdaDisk /dev/hda: 40.0 GB, 40020664320 bytes谳 255 heads, 63 sectors/track, 4865 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes谵Device Boot Start End Blocks Id <strong>System</strong>谷 /dev/hda1 * 1 764 6136798+ 83 <strong>Linux</strong>/dev/hda2 765 4865 32941282+ 5 Extended谹 /dev/hda5 765 904 1124518+ 82 <strong>Linux</strong>swapDe-Yu Wang CSIE CYUT 110


9.2. 檔 案 系 統 的 簡 單 操 作 CHAPTER 9. 檔 案 系 統 的 掛 載/dev/hda6 905 4865 31816701 83 <strong>Linux</strong>✡✝✆9.2 檔 案 系 統 的 簡 單 操 作df 查 看 檔 案 系 統 空 間 的 使 用 狀 況 。du 查 看 檔 案 或 目 錄 容 量 。ln 檔 案 的 連 結 。1. df: 查 看 檔 案 系 統 空 間 的 使 用 狀 況 。✞[root@linux ~]# df [-ahikHTm] 目 錄 或 檔 名 [] 參 數 :谲-a : 列 出 所 有 的 檔 案 系 統 , 包 括 系 統 特 有 的 /proc 等 檔 案 系 統 ;谴 -k : 以 KBytes 的 容 量 顯 示 各 檔 案 系 統 ;-m : 以 MBytes 的 容 量 顯 示 各 檔 案 系 統 ;谶 -h : 以 較 易 閱 讀 的 GBytes, MBytes, KBytes 等 格 式 自 行 顯 示 ;-H : 以 M=1000K 取 代 M=1024K 的 進 位 方 式 ;谸 -T : 連 同 該 partition 的 filesystem 名 稱 例 如 ( ext3) 也 列 出 ;-i : 不 用 硬 碟 容 量 , 而 以 inode 的 數 量 來 顯 示 範 例 : 範 例 一 : 將 系 統 內 所有 的谱 谰谱 谲 partition 列 出 來[root@dywOffice ~]# df谱 谴 Filesystem Size Used Avail Use% Mounted on/dev/hda1 2.0G 260M 1.6G 14% /谱 谶 /dev/hda9 25G 20G 4.5G 82% /home/dev/hda7 7.7G 3.2G 4.2G 44% /usr谱 谸 /dev/hda8 4.9G 506M 4.1G 11% /var/dev/hda6 981M 171M 761M 19% /home/ftp谲 谰 /dev/hda10 33G 20G 11G 65% /backup 範 例 二 : 將 容 量結 果 以 易 讀 的 容 量 格 式 顯 示 出 來谲 谲[root@dywOffice ~]# df -h谲 谴 Filesystem Size Used Avail Use% Mounted on/dev/hda1 2.0G 260M 1.6G 14% /谲 谶 /dev/hda9 25G 20G 4.5G 82% /home/dev/hda7 7.7G 3.2G 4.2G 44% /usr谲 谸 /dev/hda8 4.9G 506M 4.1G 11% /var/dev/hda6 981M 171M 761M 19% /home/ftp谳 谰 /dev/hda10 33G 20G 11G 65% /backup 範 例 三 : 將 系 統內 的 所 有 特 殊 檔 案 格 式 及 名 稱 都 列 出 來谳 谲[root@dywOffice ~]# df -aTDe-Yu Wang CSIE CYUT 111


9.2. 檔 案 系 統 的 簡 單 操 作 CHAPTER 9. 檔 案 系 統 的 掛 載谳 谴 Filesystem Type Size Used Avail Use% Mounted on/dev/hda1 ext3 2.0G 260M 1.6G 14% /谳 谶 none proc 0 0 0 - /proc/dev/hda9 ext3 25G 20G 4.5G 82% /home谳 谸 /dev/hda7 ext3 7.7G 3.2G 4.2G 44% /usr/dev/hda8 ext3 4.9G 506M 4.1G 11% /var谴 谰 none binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc/dev/hda6 ext3 981M 171M 761M 19% /home/ftp谴 谲 /dev/hda10 ext3 33G 20G 11G 65% /backup 範 例 四 : 將谴 谴 /etc 底 下 的 可 用 的 磁 碟 容 量 以 易 讀 的 容 量 格 式 顯 示[root@dywOffice ~]# df -h /etc谴 谶 Filesystem Size Used Avail Use% Mounted on/dev/hda1 2.0G 260M 1.6G 14% / 範 例 五 : 將 目 前 各 個谴 谸谵 谰partition 當 中 可 用 的 inode 數 量 列 出[root@dywOffice ~]# df -ihFilesystem Inodes IUsed IFree IUse% Mounted on谵 谲 /dev/hda1 250K 25K 226K 10% //dev/hda9 3.1M 136K 3.0M 5% /home谵 谴 /dev/hda7 1000K 170K 831K 17% /usr/dev/hda8 625K 2.2K 623K 1% /var谵 谶 /dev/hda6 125K 829 125K 1% /home/ftp/dev/hda10✡✝4.2M 242K 3.9M 6% /backup✆2. du: 查 看 檔 案 或 目 錄 容 量 。✞谱 [root@linux ~]# du [-ahskm] 檔 案 或 目 錄 名 稱 參 數 :谳 -a : 列 出 所 有 的 檔 案 與 目 錄 容 量 , 預 設 僅 統 計 工 作 目 錄 下 的 檔 案 。-h : 以 較 易 讀 的 容 量 格 式 (G/M) 顯 示 ;谵 -s : 列 出 總 量 , 而 不 列 出 各 別 的 目 錄 佔 用 容 量 ;-k : 以 KBytes 列 出 容 量 顯 示 ;谷 -m : 以 MBytes 列 出 容 量 顯 示 ; 範 例 : 範 例 一 : 列 出 目 前 目 錄 下 的 所 有 檔 案容 量谹谱 谱 [dywang@dywOffice dutest]$ lltotal 12谱 谳 drwxr-xr-x 2 dywang users 4096 Nov 30 13:15 dutest1/-rw-r--r-- 1 dywang users 6 Nov 30 13:16 test1谱 谵 -rw-r--r-- 1 dywang users 0 Nov 30 13:14 test1~-rw-r--r-- 1 dywang users 7 Nov 30 13:16 test2谱 谷 -rw-r--r-- 1 dywang users 0 Nov 30 13:14 test2~-rw-r--r-- 1 dywang users 0 Nov 30 13:15 test3谱 谹 [dywang@dywOffice dutest]$ duDe-Yu Wang CSIE CYUT 112


9.3. 磁 碟 掛 載 與 卸 載 CHAPTER 9. 檔 案 系 統 的 掛 載4.0K ./dutest1谲 谱 16K .[dywang@dywOffice dutest]$ du -a谲 谳 4.0K ./test1 檔 案 大 小


9.3. 磁 碟 掛 載 與 卸 載 CHAPTER 9. 檔 案 系 統 的 掛 載谵 Filesystem Size Used Avail Use% Mounted on/dev/hda1 2.0G 172M 1.7G 10% /谷 /dev/hda10 33G 19G 13G 61% /backup/dev/hda6 981M 22M 909M 3% /boot谹 /dev/hda9 25G 14G 11G 56% /home/dev/hda7 7.7G 2.1G 5.3G 29% /usr谱 谱 /dev/hda8✡✝4.9G 1.3G 3.4G 28% /var✆2. mount: 掛 載 檔 案 系 統 。✞谱 [root@linux ~]# mount -a[root@linux ~]# mount [-tonL] 裝 置 名 稱 代 號 掛 載 點 參 數 :谳-a : 依 照 /etc/fstab 的 內 容 將 所 有 相 關 的 磁 碟 都 掛 載谵 -n : 掛 載 而 不 記 錄 到 /etc/mtab-L : 後 接 掛 載 partition 的 表 頭 名 稱 ( Label )谷 -t : 指 定 掛 載 裝 置 的 檔 案 格 式-o : 後 面 可 接 額 外 參 數 :谹 ro, rw: 此 partition 為 唯 讀 (ro) 或 可 讀 寫 (rw)async, sync: 此 partition 為 同 步 寫 入 (sync) 或 非 同步 (async)谱 谱 auto, noauto: 允 許 此 partition 被 以 mount -a 自 動 掛 載 (auto)dev, nodev: 是 否 允 許 此 partition 上 , 可 建 立 裝 置 檔案 ? dev 為 可 允 許谱 谳 suid, nosuid: 是 否 允 許 此 partition 含 有 suid/sgid 的 檔 案 格式 ?exec, noexec: 是 否 允 許 此 partition 上 擁 有 可 執 行 binary 檔 案 ?谱 谵 user, nouser: 是 否 允 許 此 partition 讓 user 執 行 mount ? 一 般user 也 能 夠 對 此 partition 進 行 mount 。谱 谷 defaults: 預 設 值為 : rw, suid, dev, exec, auto, nouser, and asyncremount: 重 新 掛 載 , 這 在 系 統 出 錯 , 或 重 新 更 新 參 數 時 ,谱 谹 iocharset= 設 定 字 元 編 碼 , 如 big5,utf8 等 範 例 : 範 例 一 : 將谲 谱/dev/hdb5 掛 載 到 /mnt/hdb5谲 谳 [root@linux ~]# mkdir /mnt/hdb5[root@linux ~]# mount -t ext3 /dev/hdb5 /mnt/hdb5谲 谵 [root@linux ~]# dfFilesystem 1K-blocks Used Available Use% Mountedon 中 間 省谲 谷略........./dev/hdb5 700144 20664 643336 4% /mnt/hdb5範 例 二 : 掛 載 光碟谲 谹De-Yu Wang CSIE CYUT 114


9.4. 新 增 硬 碟 或 分 割 槽 CHAPTER 9. 檔 案 系 統 的 掛 載谳 谱谳 谳谳 谵谳 谷[root@linux ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom 範 例 三 : 掛 載Window fat 軟 碟[root@linux ~]# mount -t vfat /dev/fd0 /mnt/floppy 範 例 四 : 將/ 重 新 掛 載 , 並 加 入 參 數 為 rw[root@linux ~]# mount -o remount,rw / 範 例 五 : 將谳 谹 Label 名 為 logical 的 partition 掛 載 到 /mnt/hdb5[root@linux ~]# mount -t ext3 -L logical /mnt/hdb5 範 例 六 : 將 所 有 掛載 的谴 谱partition 列 出谴 谳 [root@linux ~]# mount/dev/hda1 on / type ext3 (rw)谴 谵 /dev/proc on /proc type proc (rw)/dev/shm on /dev/shm type tmpfs (rw)谴 谷 /dev/hda5 on /home type ext3 (rw)/dev/hdb5 on /mnt/hdb5 type ext3 (rw)✡✝✆3. 利 用 mount 將 某 個 目 錄 掛 載 到 另 一 個 目 錄 ( 也 可 使 用 ln 完 成 )✞[root@dywOffice ~]# mkdir /tmp/home谲 [root@dywOffice ~]# mount --bind /home /tmp/home[root@dywOffice ~]# ls -lid /home/ /tmp/home谴 2 drwxr-xr-x 11 root root 4096 Oct 26 12:24 /home//2 drwxr-xr-x 11 root root 4096 Oct 26 12:24 /tmp/home/谶 [root@dywOffice ~]# umount /tmp/home[root@dywOffice ~]# rmdir /tmp/home✡✝✆9.4 新 增 硬 碟 或 分 割 槽fdisk對 硬 碟 進 行 分 割 (partition);mkfs產 生 檔 案 系 統 (format);mke2fs產 生 ext2/ext3 檔 案 系 統 (format);e2label更 改 磁 碟 的 表 頭 資 料 ;fsck, badblocks 對 檔 案 系 統 進 行 檢 驗 ( 可 不 做 );mkdir在 <strong>Linux</strong> 系 統 上 建 立 掛 載 點 , 即 建 立 要 掛 載 的 目 錄 ;mount 進 行 掛 載 。1. fdisk: 對 硬 碟 進 行 分 割 。De-Yu Wang CSIE CYUT 115


9.4. 新 增 硬 碟 或 分 割 槽 CHAPTER 9. 檔 案 系 統 的 掛 載✞谱 [root@dywOffice ~]# fdisk [option] 裝 置 名 稱 []option谳 -l : 直 接 列 出 硬 碟 裝 置 的 partition table-c : 開 閉 相 容 模 式 DOS谵 -h : print help-u : 給 予 大 小 取 代 sectorscylinders 範 例 : 範 例 一 : 列 出 硬 碟 的谷谹谱 谱partition table[root@dywOffice ~]# fdisk -lDisk /dev/hda: 80.0 GB, 80032038912 bytes谱 谳 255 heads, 63 sectors/track, 9730 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes谱 谵Device Boot Start End Blocks Id <strong>System</strong>谱 谷 /dev/hda1 * 1 254 2040223+ 83 <strong>Linux</strong>/dev/hda2 255 9730 76115970 5 Extended谱 谹 /dev/hda5 255 457 1630566 82 <strong>Linux</strong>swap / Solaris/dev/hda6 458 584 1020096 83 <strong>Linux</strong>谲 谱 /dev/hda7 585 1603 8185086 83 <strong>Linux</strong>/dev/hda8 1604 2240 5116671 83 <strong>Linux</strong>谲 谳 /dev/hda9 2241 5427 25599546 83 <strong>Linux</strong>/dev/hda10 5428 9730 34563816 83 <strong>Linux</strong> 範 例二 : 分 割谲 谵hda 磁 碟谲 谷 [root@dywOffice ~]# fdisk /dev/hda


9.4. 新 增 硬 碟 或 分 割 槽 CHAPTER 9. 檔 案 系 統 的 掛 載谴 谹 t change a partition’s system id


9.4. 新 增 硬 碟 或 分 割 槽 CHAPTER 9. 檔 案 系 統 的 掛 載谳谵谷谹谱 谱-b 設 定 : block 的 大 小 , 目 前 支 援 1k, 2k, 4k 。bytes-c 檢 查 錯 誤 磁 碟 :-i 設 定 : inode 值-j 預 設 為 : ext2 檔 案 格 式 , 若 加 入 -j 選 項 時 格 式 化 為 。 ext3-L 設 定 磁 區 的 : label ( 表 頭 名 稱 ) 範 例 : 範 例 一 : 以mke2fs 預 設 的 條 件 ( ext2 ) 格 式 化 /dev/, 且 名 稱 為 hda5 。csie[root @test /root]# mke2fs -L "csie" /dev/hda5 範 例 二 : 以谱 谳 mke2fs 預 設 的 條 件 ( ext2 ) 格 式 化 /dev/, 且 過 程 中 檢 查 硬 碟 。hda5[root @test /root]# mke2fs -c /dev/hda5 範 例 三 : 以谱 谵mke2fs 將 /dev/hda5 格 式 化 為 ,且 ext3 block 為 2048 bytes, inode 為 256 。bytes谱 谷 [root @test /root]# mke2fs {j -b 2048 -i 256 /dev/hda5✡✝✆4. e2label: 更 改 磁 碟 的 表 頭 資 料 。谱✞[root @test /root ]# e2label [/dev/hd...] [label_name] 範 例 : 將 檔 案系 統谳/dev/hda1 表 頭 設 定 為 CsieHome[root @test /root]# e2label /dev/hda1 CsieHome✡✝✆5. fsck: 磁 碟 檢 驗 。✞[root@linux ~]# fsck [-AtCary] 裝 置 名 稱 參 數 :谲-t : 指 定 檢 查 filesystem 的 。 type谴 -A : 依 據 /etc/fstab 的 內 容 , 將 所 有 的 裝 置 都 掃 瞄 一 次-a : 自 動 修 復 檢 查 到 的 有 問 題 的 磁 區 , 不 用 一 直 按 y谶 -r : 要 讓 使 用 者 決 定 是 否 需 要 修 復 , 與 -a 剛 好 相 反-y : 與 -a 類 似 , 但 某 些 filesystem 僅 支 援 -y 這 個 參 數谸 -C : 在 檢 驗 過 程 中 , 使 用 長 條 圖 顯 示 進 度 範 例 : 範 例 一 : 顯 示 個 別 的谱 谰filesystem 的 檢 驗 程 式谱 谲 [root@dywOffice ~]# ll /sbin/fsck*-rwxr-xr-x 1 root root 18616 Aug 22 2006 /sbin/fsck*谱 谴 -rwxr-xr-x 1 root root 11320 Jun 2 04:48 /sbin/fsck.cramfs*-rwxr-xr-x 1 root root 147908 Aug 22 2006 /sbin/fsck.ext2*谱 谶 -rwxr-xr-x 1 root root 147908 Aug 22 2006 /sbin/fsck.ext3*De-Yu Wang CSIE CYUT 118


9.4. 新 增 硬 碟 或 分 割 槽 CHAPTER 9. 檔 案 系 統 的 掛 載谱 谸谲 谰谲 谲谲 谴-rwxr-xr-x 1 root root 23364 Jun 2 04:48 /sbin/fsck.minix* 範 例二 : 檢 驗 裝 置/dev/hdb5[root@linux ~]# fsck -C -t ext3 /dev/hdb5fsck 1.37 (21-Mar-2005)e2fsck 1.37 (21-Mar-2005)logical: clean, 11/181056 files, 21706/361446 blocks# 每 個 掛 載 點 都 會 有 一 個 預 設 目 錄 lost+。found谲 谶 # fsck 若 發 現 任 何 錯 誤 的 檔 案 , 就 會 將 該 檔 案 的 資 料 存 到 目 錄 lost+。found# 通 常 只 有 root 且 系 統 有 問 題 的 時 候 才 使 用 , 在 正 常 狀 況 下 使 用 , 可 能 會 造成 對 檔 案 的 危 害 。 fsck谲 谸 # 執 行 fsck 時 被 檢 查 的 partiton 必 須 在 卸 載 狀 態 。✡✝✆6. badblocks: 尋 找 磁 碟 壞 的 區 塊 。✞[root@linux ~]# badblocks -[sv] 裝 置 名 稱 參 數 :谲-s : 在 螢 幕 上 列 出 進 度谴 -v : 可 以 在 螢 幕 上 看 到 進 度 範 例 :谶[root@dywOffice ~]# badblocks -sv /dev/hda6谸 Checking blocks 0 to 1020096Checking for bad blocks (read-only test): done谱 谰 Pass completed, 0 bad blocks found.✡✝✆7. 例 題 : 增 加 一 個 以 10MiB 為 大 小 的 交 換 分 區 ( swap )。 此 分 區 於 系 統 啟 動 時應 一 併 自 動 掛 載 。谲谴谶谸谱 谰✞[root@kvm8 ~]# fdisk -uc /dev/vdaCommand (m for help): pDisk /dev/vda: 1503 MB, 1503238144 bytes16 heads, 63 sectors/track, 2912 cylinders, total 2936012 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005e0d8谱 谲 Device Boot Start End Blocks Id <strong>System</strong>/dev/vda1 * 2048 198655 98304 83 <strong>Linux</strong>谱 谴 /dev/vda2 198656 2820095 1310720 8e <strong>Linux</strong> LVMDe-Yu Wang CSIE CYUT 119


9.4. 新 增 硬 碟 或 分 割 槽 CHAPTER 9. 檔 案 系 統 的 掛 載谱 谶 Command (m for help): nCommand action谱 谸 e extendedp primary partition (1-4)谲 谰 ePartition number (1-4): 4谲 谲 First sector (2820096-2936011, default 2820096):Using default value 2820096谲 谴 Last sector, +sectors or +size{K,M,G} (2820096-2936011, default2936011):Using default value 2936011谲 谶Command (m for help): n谲 谸 Command actionl logical (5 or over)谳 谰 p primary partition (1-4)l谳 谲 First sector (2822144-2936011, default 2822144):Using default value 2822144谳 谴 Last sector, +sectors or +size{K,M,G} (2822144-2936011, default2936011): +20M谳 谶Command (m for help): p谳 谸 Disk /dev/vda: 1503 MB, 1503238144 bytes16 heads, 63 sectors/track, 2912 cylinders, total 2936012 sectors谴 谰 Units = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytes谴 谲 I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005e0d8谴 谴Device Boot Start End Blocks Id <strong>System</strong>谴 谶 /dev/vda1 * 2048 198655 98304 83 <strong>Linux</strong>/dev/vda2 198656 2820095 1310720 8e <strong>Linux</strong> LVM谴 谸 /dev/vda4 2820096 2936011 57958 5 Extended/dev/vda5 2822144 2863103 20480 83 <strong>Linux</strong>谵 谰Command (m for help): t谵 谲 Partition number (1-5): 5Hex code (type L to list codes): 82谵 谴 Changed system type of partition 5 to 82 (<strong>Linux</strong> swap / Solaris)谵 谶谵 谸谶 谰谶 谲Command (m for help): pDisk /dev/vda: 1503 MB, 1503238144 bytes16 heads, 63 sectors/track, 2912 cylinders, total 2936012 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005e0d8De-Yu Wang CSIE CYUT 120


9.4. 新 增 硬 碟 或 分 割 槽 CHAPTER 9. 檔 案 系 統 的 掛 載谶 谴Device Boot Start End Blocks Id <strong>System</strong>谶 谶 /dev/vda1 * 2048 198655 98304 83 <strong>Linux</strong>/dev/vda2 198656 2820095 1310720 8e <strong>Linux</strong> LVM谶 谸 /dev/vda4 2820096 2936011 57958 5 Extended/dev/vda5 2822144 2863103 20480 82 <strong>Linux</strong>swap / Solaris谷 谰Command (m for help): w谷 谲 The partition table has been altered!谷 谴Calling ioctl() to re-read partition table.谷 谶 WARNING: Re-reading the partition table failed with error 16:Device or resource busy.The kernel still uses the old table. The new table will be usedat谷 谸 the next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.谸 谰[root@kvm8 ~]# partprobe谸 谲 Warning: WARNING: the kernel failed to re-read the partitiontable on /dev/vda (Device or resource busy). As a result, itmay not reflect all of your changes until after reboot.[root@kvm8 ~]# reboot谸 谴 [root@kvm8 ~]# mkswap /dev/vda5Setting up swapspace version 1, size = 20476 KiB谸 谶 no label, UUID=0276d17b-c8b2-4df8-b2d1-ed185de40ee9[root@kvm8 ~]# vim /etc/fstab谸 谸 /dev/vda5 swap swap defaults 0 0[root@kvm8 ~]# swapon -a谹 谰 swapon: /dev/mapper/vg_kvmusb-swap: swapon failed: Device orresource busy谹 谲 [root@kvm8 ~]# swapon -sFilename Type Size Used Priority谹 谴 /dev/dm-0 partition 49144 0-1/dev/vda5 partition 20472 0✡✝-2✆De-Yu Wang CSIE CYUT 121


9.4. 新 增 硬 碟 或 分 割 槽 CHAPTER 9. 檔 案 系 統 的 掛 載De-Yu Wang CSIE CYUT 122


CHAPTER 10.邏 輯 捲 軸 管 理 員Chapter 10邏 輯 捲 軸 管 理 員10.1 產 生 邏 輯 捲 軸1. 何 謂 LVM?• LVM (Logical Volume Manager): 邏 輯 捲 軸 管 理 員 。• LVM 目 的 為 彈 性 進 行 filesystem 的 擴 充 或 縮 小 。2. PV, PE, VG, LV 的 意 義• Physical Volume, PV, 實 體 捲 軸 :partition 時 需 要 調 整 系 統 識 別 碼(system ID) 成 為 8e (LVM 的 識 別 碼 )。• Volume Group, VG, 捲 軸 群 組 : 將 許 多 PV 整 合 而 成 。• Physical Extend, PE, 實 體 延 伸 區 塊 :LVM 最 小 的 儲 存 區 塊 。• Logical Volume, LV, 邏 輯 捲 軸 : 從 VG 切 割 而 成 , 為 最 後 可 被 格 式 化使 用 之 格 式 ,LV 的 裝 置 檔 名 通 常 指 定 為 『 /dev/vgname/lvname 』 的樣 式 。PE PE PE PE PE PELVPE PE PE PE PE PEPE PE PE PE PE PEPE PE PE PE PE PEPE PE PE PE PE PEPE PE PE PE PE PEPV PV PVVG3. 建 立 LVM partitionsDe-Yu Wang CSIE CYUT 123


10.1. 產 生 邏 輯 捲 軸 CHAPTER 10. 邏 輯 捲 軸 管 理 員谱谳✞[root@instructor ~]# fdisk -c /dev/sdaCommand (m for help): p谵 Disk /dev/sda: 500.1 GB, 500107862016 bytes255 heads, 63 sectors/track, 60801 cylinders谷 Units = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes谹 I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x2bd2c32a谱 谱Device Boot Start End Blocks Id <strong>System</strong>谱 谳 /dev/sda1 * 1 17 131072 83 <strong>Linux</strong>Partition 1 does not end on cylinder boundary.谱 谵 /dev/sda2 17 4096 32768000 8e <strong>Linux</strong> LVM/dev/sda3 4096 6646 20480000 8e <strong>Linux</strong> LVM谱 谷 /dev/sda4 6646 60802 435006464 5 Extended/dev/sda5 6646 7952 10485760 83 <strong>Linux</strong>谱 谹 /dev/sda6 7952 10563 20979362 8e <strong>Linux</strong> LVM/dev/sda7 10564 11869 10490413+ 8e <strong>Linux</strong> LVM谲 谱Command (m for help): n谲 谳 First cylinder (11870-60802, default 11870):Using default value 11870谲 谵 Last cylinder, +cylinders or +size{K,M,G} (11870-60802, default60802): +1G谲 谷 Command (m for help): nFirst cylinder (12002-60802, default 12002):谲 谹 Using default value 12002Last cylinder, +cylinders or +size{K,M,G} (12002-60802, default60802): +1G谳 谱Command (m for help): p谳 谳Disk /dev/sda: 500.1 GB, 500107862016 bytes谳 谵 255 heads, 63 sectors/track, 60801 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes谳 谷 Sector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytes谳 谹 Disk identifier: 0x2bd2c32a谴 谱 Device Boot Start End Blocks Id <strong>System</strong>/dev/sda1 * 1 17 131072 83 <strong>Linux</strong>谴 谳 Partition 1 does not end on cylinder boundary./dev/sda2 17 4096 32768000 8e <strong>Linux</strong> LVM谴 谵 /dev/sda3 4096 6646 20480000 8e <strong>Linux</strong> LVM/dev/sda4 6646 60802 435006464 5 Extended谴 谷 /dev/sda5 6646 7952 10485760 83 <strong>Linux</strong>/dev/sda6 7952 10563 20979362 8e <strong>Linux</strong> LVM谴 谹 /dev/sda7 10564 11869 10490413+ 8e <strong>Linux</strong> LVMDe-Yu Wang CSIE CYUT 124


10.1. 產 生 邏 輯 捲 軸 CHAPTER 10. 邏 輯 捲 軸 管 理 員/dev/sda8 11870 12001 1060258+ 83 <strong>Linux</strong>谵 谱 /dev/sda9 12002 12133 1060258+ 83 <strong>Linux</strong>谵 谳 Command (m for help): tPartition number (1-10): 8谵 谵 Hex code (type L to list codes): 8eChanged system type of partition 8 to 8e (<strong>Linux</strong> LVM)谵 谷Command (m for help): t谵 谹 Partition number (1-10): 9Hex code (type L to list codes): 8e谶 谱 Changed system type of partition 9 to 8e (<strong>Linux</strong> LVM)谶 谳Command (m for help): p谶 谵 Disk /dev/sda: 500.1 GB, 500107862016 bytes255 heads, 63 sectors/track, 60801 cylinders谶 谷 Units = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes谶 谹 I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x2bd2c32a谷 谱Device Boot Start End Blocks Id <strong>System</strong>谷 谳 /dev/sda1 * 1 17 131072 83 <strong>Linux</strong>Partition 1 does not end on cylinder boundary.谷 谵 /dev/sda2 17 4096 32768000 8e <strong>Linux</strong> LVM/dev/sda3 4096 6646 20480000 8e <strong>Linux</strong> LVM谷 谷 /dev/sda4 6646 60802 435006464 5 Extended/dev/sda5 6646 7952 10485760 83 <strong>Linux</strong>谷 谹 /dev/sda6 7952 10563 20979362 8e <strong>Linux</strong> LVM/dev/sda7 10564 11869 10490413+ 8e <strong>Linux</strong> LVM谸 谱 /dev/sda8 11870 12001 1060258+ 8e <strong>Linux</strong> LVM/dev/sda9 12002 12133 1060258+ 8e <strong>Linux</strong> LVM谸 谳Command (m for help): w谸 谵 The partition table has been altered!谸 谷Calling ioctl() to re-read partition table.谸 谹 WARNING: Re-reading the partition table failed with error 16:Device or resource busy.The kernel still uses the old table. The new table will be usedat谹 谱 the next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.谹 谳 [root@instructor ~]# partprobeWarning: WARNING: the kernel failed to re-read the partitiontable on /dev/sda (Device or resource busy). As a result, itmay not reflect all of your changes until after reboot.谹 谵 device-mapper: remove ioctl failed: Device or resource busydevice-mapper: remove ioctl failed: Device or resource busyDe-Yu Wang CSIE CYUT 125


10.1. 產 生 邏 輯 捲 軸 CHAPTER 10. 邏 輯 捲 軸 管 理 員谹 谷谹 谹Warning: parted was unable to re-read the partition table on /dev/mapper/GLSguest-demo-real (Device or resource busy). Thismeans <strong>Linux</strong> won’t know anything about the modifications youmade.[root@instructor ~]# reboot[root@instructor ~]# fdisk -l /dev/sda谱 谰 谱 Disk /dev/sda: 500.1 GB, 500107862016 bytes255 heads, 63 sectors/track, 60801 cylinders谱 谰 谳 Units = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes谱 谰 谵 I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x2bd2c32a谱 谰 谷Device Boot Start End Blocks Id <strong>System</strong>谱 谰 谹 /dev/sda1 * 1 17 131072 83 <strong>Linux</strong>Partition 1 does not end on cylinder boundary.谱 谱 谱 /dev/sda2 17 4096 32768000 8e <strong>Linux</strong> LVM/dev/sda3 4096 6646 20480000 8e <strong>Linux</strong> LVM谱 谱 谳 /dev/sda4 6646 60802 435006464 5 Extended/dev/sda5 6646 7952 10485760 83 <strong>Linux</strong>谱 谱 谵 /dev/sda6 7952 10563 20979362 8e <strong>Linux</strong> LVM/dev/sda7 10564 11869 10490413+ 8e <strong>Linux</strong> LVM谱 谱 谷 /dev/sda8 11870 12001 1060258+ 8e <strong>Linux</strong> LVM/dev/sda9✡✝12002 12133 1060258+ 8e <strong>Linux</strong> LVM✆4. 產 生 PV✞[root@instructor ~]# pvscan谲 PV /dev/sda3 VG GLSguest lvm2 [19.50 GiB / 5.00 GiB free]PV /dev/sda2 VG GLSvg lvm2 [31.22 GiB / 0 free]谴 PV /dev/sda6 VG GLSvg lvm2 [20.00 GiB / 6.44 GiB free]PV /dev/sda7 VG GLSvg lvm2 [10.00 GiB / 10.00 GiB free]谶 Total: 4 [80.72 GiB] / in use: 4 [80.72 GiB] / in no VG: 0 [0][root@instructor ~]# pvcreate /dev/sda{8,9,10}谸 Physical volume "/dev/sda8" successfully created谱 谰Physical volume "/dev/sda9" successfully createdPhysical volume "/dev/sda10" successfully created[root@instructor ~]# pvscan谱 谲 PV /dev/sda3 VG GLSguest lvm2 [19.50 GiB / 5.00 GiBfree]PV /dev/sda2 VG GLSvg lvm2 [31.22 GiB / 0 free]谱 谴 PV /dev/sda6 VG GLSvg lvm2 [20.00 GiB / 6.44 GiBfree]PV /dev/sda7 VG GLSvg lvm2 [10.00 GiB / 10.00 GiBfree]谱 谶 PV /dev/sda8 lvm2 [1.01 GiB]De-Yu Wang CSIE CYUT 126


10.1. 產 生 邏 輯 捲 軸 CHAPTER 10. 邏 輯 捲 軸 管 理 員PV /dev/sda9lvm2 [1.01 GiB]谱 谸 PV /dev/sda10 lvm2 [2.01 GiB]Total: 7 [84.75 GiB] / in use: 4 [80.72 GiB] / in no VG: 3[4.03 GiB]谲 谰[root@instructor ~]# pvdisplay谲 谲 "/dev/sda8" is a new physical volume of "1.01 GiB"--- NEW Physical volume ---谲 谴 PV Name /dev/sda8VG Name谲 谶 PV Size 1.01 GiBAllocatableNO谲 谸 PE Size 0Total PE 0谳 谰 Free PE 0Allocated PE 0谳 谲 PV UUID oaj98p-1kMw-LdJh-57yS-zxEf-MX1m-31XoZr谳 谴 "/dev/sda9" is a new physical volume of "1.01 GiB"--- NEW Physical volume ---谳 谶 PV Name /dev/sda9VG Name谳 谸 PV Size 1.01 GiBAllocatableNO谴 谰 PE Size 0Total PE 0谴 谲 Free PE 0Allocated PE 0谴 谴 PV UUID iugncx-zGZr-CDt9-PIU3-jq5n-54ec-2KJjQR谴 谶 "/dev/sda10" is a new physical volume of "2.01 GiB"--- NEW Physical volume ---谴 谸 PV Name /dev/sda10VG Name谵 谰 PV Size 2.01 GiBAllocatableNO谵 谲 PE Size 0Total PE 0谵 谴 Free PE 0Allocated PE 0谵 谶✡✝PV UUID Ko6qem-n1mm-YMLd-pDMl-Ee0z-PClw-DcEI9b✆5. 產 生 VG✞[root@instructor ~]# vgcreate -s 32M dywvg /dev/sda{8,9}谲 Volume group "dywvg" successfully created[root@instructor ~]# vgscan谴 Reading all physical volumes. This may take a while...De-Yu Wang CSIE CYUT 127


10.1. 產 生 邏 輯 捲 軸 CHAPTER 10. 邏 輯 捲 軸 管 理 員Found volume group "dywvg" using metadata type lvm2谶 Found volume group "GLSguest" using metadata type lvm2Found volume group "GLSvg" using metadata type lvm2谸 [root@instructor ~]# pvscanPV /dev/sda8 VG dywvg lvm2 [1.00 GiB / 0 free]谱 谰 PV /dev/sda9 VG dywvg lvm2 [1.00 GiB / 736.00 MiBfree]PV /dev/sda3 VG GLSguest lvm2 [19.50 GiB / 5.00 GiBfree]谱 谲 PV /dev/sda2 VG GLSvg lvm2 [31.22 GiB / 0 free]PV /dev/sda6 VG GLSvg lvm2 [20.00 GiB / 6.44 GiBfree]谱 谴 PV /dev/sda7 VG GLSvg lvm2 [10.00 GiB / 10.00 GiBfree]PV /dev/sda10lvm2 [2.01 GiB]谱 谶 Total: 7 [84.73 GiB] / in use: 6 [82.72 GiB] / in no VG: 1[2.01 GiB][root@instructor ~]# vgdisplay dywvg谱 谸 --- Volume group ---VG Namedywvg谲 谰 <strong>System</strong> IDFormatlvm2谲 谲 Metadata Areas 2Metadata Sequence No 3谲 谴 VG Access read/writeVG Statusresizable谲 谶 MAX LV 0Cur LV 1谲 谸 Open LV 0Max PV 0谳 谰 Cur PV 2Act PV 2谳 谲 VG Size 2.00 GiBPE Size32.00 MiB谳 谴 Total PE 64Alloc PE / Size 50 / 1.56 GiB谳 谶 Free PE / Size 14 / 448.00 MiB✡✝VG UUIDNK9GXl-AVxX-g5Vj-Xx0n-HtRD-a9YW-F5mu0W✆6. 產 生 LV谱谳谵✞[root@instructor ~]# lvcreate -l 50 -n dywlv dywvgLogical volume "dywlv" created[root@instructor ~]# ll /dev/dywvg/dywlvlrwxrwxrwx. 1 root root 8 Jul 10 19:26 /dev/dywvg/dywlv -> ../dm-20[root@instructor ~]# lvdisplay /dev/dywvg/dywlv--- Logical volume ---De-Yu Wang CSIE CYUT 128


10.1. 產 生 邏 輯 捲 軸 CHAPTER 10. 邏 輯 捲 軸 管 理 員谷 LV Name /dev/dywvg/dywlvVG Namedywvg谹 LV UUID 0U1tft-9dii-XLEp-fNv4-kf1d-Vu5J-m2ZMYoLV Write Access read/write谱 谱 LV Status available# open 0谱 谳 LV Size 1.56 GiBCurrent LE 50谱 谵 Segments 2Allocationinherit谱 谷 Read ahead sectors auto- currently set to 256谱 谹✡✝Block device 253:20✆7. 建 立 檔 案 系 統✞谱 [root@instructor ~]# mkfs.ext3 /dev/dywvg/dywlvmke2fs 1.41.12 (17-May-2010)谳 Filesystem label=OS type: <strong>Linux</strong>谵 Block size=4096 (log=2)Fragment size=4096 (log=2)谷 Stride=0 blocks, Stripe width=0 blocks102544 inodes, 409600 blocks谹 20480 blocks (5.00%) reserved for the super userFirst data block=0谱 谱 Maximum filesystem blocks=41943040013 block groups谱 谳 32768 blocks per group, 32768 fragments per group7888 inodes per group谱 谵 Superblock backups stored on blocks:32768, 98304, 163840, 229376, 294912谱 谷Writing inode tables: done谱 谹 Creating journal (8192 blocks): doneWriting superblocks and filesystem accounting information: done谲 谱This filesystem will be automatically checked every 26 mounts or谲 谳 180 days, whichever comes first. Use tune2fs -c or -i tooverride.谲 谵 [root@instructor ~]# mkdir /mnt/dywlvm[root@instructor ~]# mount /dev/dywvg/dywlv /mnt/dywlvm谲 谷 [root@instructor ~]# df -h /mnt/dywlvmFilesystem 1K-blocks Used Available Use% Mountedon谲 谹 /dev/mapper/dywvg-dywlv 1.6G 35M 1.5G 3% /mnt/dywlvmDe-Yu Wang CSIE CYUT 129


10.2. 邏 輯 捲 軸 管 理 CHAPTER 10. 邏 輯 捲 軸 管 理 員✡✝✆10.2 邏 輯 捲 軸 管 理1. 縮 小 LV 及 掛 載 檔 案 系 統 大 小谱谳谵✞[root@instructor ~]# umount /dev/dywvg/dywlv[root@instructor ~]# resize2fs -f /dev/dywvg/dywlv 900Mresize2fs 1.41.12 (17-May-2010)Resizing the filesystem on /dev/dywvg/dywlv to 230400 (4k) blocks.The filesystem on /dev/dywvg/dywlv is now 230400 blocks long.谷 [root@instructor ~]# fsck /dev/mapper/dywvg-dywlvfsck from util-linux-ng 2.17.2谹 e2fsck 1.41.12 (17-May-2010)/dev/mapper/dywvg-dywlv: clean, 2956/79680 files, 22474/311296blocks谱 谱[root@instructor ~]# lvresize -L 900M /dev/dywvg/dywlv谱 谳 Rounding up size to full physical extent 928.00 MiBWARNING: Reducing active logical volume to 928.00 MiB谱 谵 THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce dywlv? [y/n]: y谱 谷 Reducing logical volume dywlv to 928.00 MiBLogical volume dywlv successfully resized谱 谹 [root@instructor ~]# mount /dev/dywvg/dywlv /mnt/dywlvm/[root@instructor ~]# df -h /mnt/dywlvm/谲 谱 Filesystem Size Used Avail Use% Mounted on/dev/mapper/dywvg-dywlv 885M 68M 776M 9% /mnt/dywlvm谲 谳 [root@instructor ~]# ll /mnt/dywlvm/total 16谲 谵 drwxr-xr-x. 125 root root 12288 Jul 11 08:17 etcdrwx------. 2 root root 4096 Jul 10 21:45 lost+found✡✝✆2. 放 大 LV 及 掛 載 檔 案 系 統 大 小谲谴谶✞[root@instructor ~]# lvresize -L 1200M /dev/dywvg/dywlvRounding up size to full physical extent 1.19 GiBExtending logical volume dywlv to 1.19 GiBLogical volume dywlv successfully resized[root@instructor ~]# resize2fs -f /dev/dywvg/dywlvresize2fs 1.41.12 (17-May-2010)De-Yu Wang CSIE CYUT 130


10.2. 邏 輯 捲 軸 管 理 CHAPTER 10. 邏 輯 捲 軸 管 理 員Filesystem at /dev/dywvg/dywlv is mounted on /mnt/dywlvm; on-lineresizing required谸 old desc_blocks = 1, new_desc_blocks = 1Performing an on-line resize of /dev/dywvg/dywlv to 311296 (4k)blocks.谱 谰 The filesystem on /dev/dywvg/dywlv is now 311296 blocks long.谱 谲 [root@instructor ~]# df -h /mnt/dywlvm/Filesystem Size Used Avail Use% Mounted on谱 谴 /dev/mapper/dywvg-dywlv 1.2G 69M 1.1G 6% /mnt/dywlvm[root@instructor ~]# ll /mnt/dywlvm/谱 谶 total 16drwxr-xr-x. 125 root root 12288 Jul 11 08:17 etc谱 谸 drwx------. 2 root root 4096 Jul 10 21:45 lost+found✡✝✆3. 以 lvresize 指 令 一 次 完 成 放 大 或 縮 小 。 特 別 注 意 !lv 放 大 縮 小 應 先 卸載 , 但 根 目 錄 無 法 卸 載 , 且 lvm 相 關 命 令 在 /sbin 目 錄 下 , 直 接 將 掛 載 根目 錄 / 的 分 割 區 , 做 放 大 縮 小 , 風 險 非 常 高 , 可 能 造 成 資 料 的 損 壞 。✞[root@kvm8 ~]# df -h谲 Filesystem Size Used Avail Use% Mounted on/dev/mapper/vg_kvmusb-root谴 1.1G 708M 321M 69% /tmpfs 499M 0 499M 0% /dev/shm谶 /dev/vda1 93M 26M 63M 29% /boot/dev/mapper/vg_kvmhome-vo谸 20M 4.6M 14M 25% /home[root@kvm8 ~]# lvresize -L 90M -r /dev/mapper/vg_kvmhome-vo谱 谰 fsck from util-linux-ng 2.17.2e2fsck 1.41.12 (17-May-2010)谱 谲 /dev/mapper/vg_kvmhome-vo is mounted.谱 谴 WARNING!!! The filesystem is mounted. If you continue you ***WILL***cause ***SEVERE*** filesystem damage.谱 谶Do you really want to continue (y/n)? yes谱 谸/dev/mapper/vg_kvmhome-vo: recovering journal谲 谰 /dev/mapper/vg_kvmhome-vo: clean, 11/6144 files, 5404/20480blocksExtending logical volume vo to 90.00 MiB谲 谲 Logical volume vo successfully resizedresize2fs 1.41.12 (17-May-2010)谲 谴 Filesystem at /dev/dm-2 is mounted on /home; on-line resizingrequiredold desc_blocks = 1, new_desc_blocks = 1谲 谶 Performing an on-line resize of /dev/dm-2 to 92160 (1k) blocks.De-Yu Wang CSIE CYUT 131


10.2. 邏 輯 捲 軸 管 理 CHAPTER 10. 邏 輯 捲 軸 管 理 員The filesystem on /dev/dm-2 is now 92160 blocks long.谲 谸[root@kvm8 ~]# df -h谳 谰 Filesystem Size Used Avail Use% Mounted on/dev/mapper/vg_kvmusb-root谳 谲 1.1G 708M 321M 69% /tmpfs 499M 0 499M 0% /dev/shm谳 谴 /dev/vda1 93M 26M 63M 29% /boot/dev/mapper/vg_kvmhome-vo谳 谶 87M 5.6M 78M 7% /home[root@kvm8 ~]# umount /dev/mapper/vg_kvmhome-vo谳 谸 [root@kvm8 ~]# df -hFilesystem Size Used Avail Use% Mounted on谴 谰 /dev/mapper/vg_kvmusb-root1.1G 708M 321M 69% /谴 谲 tmpfs 499M 0 499M 0% /dev/shm/dev/vda1 93M 26M 63M 29% /boot谴 谴 [root@kvm8 ~]# lvresize -L 20M -r /dev/mapper/vg_kvmhome-vofsck from util-linux-ng 2.17.2谴 谶 e2fsck 1.41.12 (17-May-2010)/dev/mapper/vg_kvmhome-vo: clean, 11/24576 files, 8758/92160blocks谴 谸 resize2fs 1.41.12 (17-May-2010)Resizing the filesystem on /dev/dm-2 to 20480 (1k) blocks.谵 谰 The filesystem on /dev/dm-2 is now 20480 blocks long.谵 谲 Reducing logical volume vo to 20.00 MiBLogical volume vo successfully resized谵 谴 [root@kvm8 ~]# mount -a[root@kvm8 ~]# df -h谵 谶 Filesystem Size Used Avail Use% Mounted on/dev/mapper/vg_kvmusb-root谵 谸 1.1G 708M 321M 69% /tmpfs 499M 0 499M 0% /dev/shm谶 谰 /dev/vda1 93M 26M 63M 29% /boot/dev/mapper/vg_kvmhome-vo谶 谲✡✝20M 4.6M 14M 25% /home✆4. 新 增 LVM partitions 到 VG谲谴谶谸✞[root@instructor ~]# fdisk -c /dev/sdaCommand (m for help): pDisk /dev/sda: 500.1 GB, 500107862016 bytes255 heads, 63 sectors/track, 60801 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesDe-Yu Wang CSIE CYUT 132


10.2. 邏 輯 捲 軸 管 理 CHAPTER 10. 邏 輯 捲 軸 管 理 員谱 谰I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x2bd2c32a谱 谲 Device Boot Start End Blocks Id <strong>System</strong>/dev/sda1 * 1 17 131072 83 <strong>Linux</strong>谱 谴 Partition 1 does not end on cylinder boundary./dev/sda2 17 4096 32768000 8e <strong>Linux</strong> LVM谱 谶 /dev/sda3 4096 6646 20480000 8e <strong>Linux</strong> LVM/dev/sda4 6646 60802 435006464 5 Extended谱 谸 /dev/sda5 6646 7952 10485760 83 <strong>Linux</strong>/dev/sda6 7952 10563 20979362 8e <strong>Linux</strong> LVM谲 谰 /dev/sda7 10564 11869 10490413+ 8e <strong>Linux</strong> LVM/dev/sda8 11870 12001 1060258+ 8e <strong>Linux</strong> LVM谲 谲 /dev/sda9 12002 12133 1060258+ 8e <strong>Linux</strong> LVM谲 谴 Command (m for help): nFirst cylinder (12134-60802, default 12134):谲 谶 Using default value 12134Last cylinder, +cylinders or +size{K,M,G} (12134-60802, default60802): +2G谲 谸Command (m for help): p谳 谰Disk /dev/sda: 500.1 GB, 500107862016 bytes谳 谲 255 heads, 63 sectors/track, 60801 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes谳 谴 Sector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytes谳 谶 Disk identifier: 0x2bd2c32a谳 谸 Device Boot Start End Blocks Id <strong>System</strong>/dev/sda1 * 1 17 131072 83 <strong>Linux</strong>谴 谰 Partition 1 does not end on cylinder boundary./dev/sda2 17 4096 32768000 8e <strong>Linux</strong> LVM谴 谲 /dev/sda3 4096 6646 20480000 8e <strong>Linux</strong> LVM/dev/sda4 6646 60802 435006464 5 Extended谴 谴 /dev/sda5 6646 7952 10485760 83 <strong>Linux</strong>/dev/sda6 7952 10563 20979362 8e <strong>Linux</strong> LVM谴 谶 /dev/sda7 10564 11869 10490413+ 8e <strong>Linux</strong> LVM/dev/sda8 11870 12001 1060258+ 8e <strong>Linux</strong> LVM谴 谸 /dev/sda9 12002 12133 1060258+ 8e <strong>Linux</strong> LVM/dev/sda10 12134 12395 2104483+ 83 <strong>Linux</strong>谵 谰Command (m for help): t谵 谲 Partition number (1-10): 10Hex code (type L to list codes): 8e谵 谴 Changed system type of partition 10 to 8e (<strong>Linux</strong> LVM)谵 谶谵 谸Command (m for help): pDisk /dev/sda: 500.1 GB, 500107862016 bytesDe-Yu Wang CSIE CYUT 133


10.2. 邏 輯 捲 軸 管 理 CHAPTER 10. 邏 輯 捲 軸 管 理 員255 heads, 63 sectors/track, 60801 cylinders谶 谰 Units = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes谶 谲 I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x2bd2c32a谶 谴Device Boot Start End Blocks Id <strong>System</strong>谶 谶 /dev/sda1 * 1 17 131072 83 <strong>Linux</strong>Partition 1 does not end on cylinder boundary.谶 谸 /dev/sda2 17 4096 32768000 8e <strong>Linux</strong> LVM/dev/sda3 4096 6646 20480000 8e <strong>Linux</strong> LVM谷 谰 /dev/sda4 6646 60802 435006464 5 Extended/dev/sda5 6646 7952 10485760 83 <strong>Linux</strong>谷 谲 /dev/sda6 7952 10563 20979362 8e <strong>Linux</strong> LVM/dev/sda7 10564 11869 10490413+ 8e <strong>Linux</strong> LVM谷 谴 /dev/sda8 11870 12001 1060258+ 8e <strong>Linux</strong> LVM/dev/sda9 12002 12133 1060258+ 8e <strong>Linux</strong> LVM谷 谶 /dev/sda10 12134 12395 2104483+ 8e <strong>Linux</strong> LVM谷 谸谸 谰谸 谲谸 谴谸 谶谸 谸谹 谰谹 谲谹 谴谹 谶谹 谸谱 谰 谰Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16:Device or resource busy.The kernel still uses the old table. The new table will be usedatthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.[root@instructor ~]# partprobeWarning: WARNING: the kernel failed to re-read the partitiontable on /dev/sda (Device or resource busy). As a result, itmay not reflect all of your changes until after reboot.device-mapper: remove ioctl failed: Device or resource busydevice-mapper: remove ioctl failed: Device or resource busyWarning: parted was unable to re-read the partition table on /dev/mapper/GLSguest-demo-real (Device or resource busy). Thismeans <strong>Linux</strong> won’t know anything about the modifications youmade.[root@instructor ~]# reboot[root@instructor ~]# fdisk -l /dev/sdaDisk /dev/sda: 500.1 GB, 500107862016 bytes255 heads, 63 sectors/track, 60801 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x2bd2c32a谱 谰 谲 Device Boot Start End Blocks Id <strong>System</strong>De-Yu Wang CSIE CYUT 134


10.2. 邏 輯 捲 軸 管 理 CHAPTER 10. 邏 輯 捲 軸 管 理 員/dev/sda1 * 1 17 131072 83 <strong>Linux</strong>谱 谰 谴 Partition 1 does not end on cylinder boundary./dev/sda2 17 4096 32768000 8e <strong>Linux</strong> LVM谱 谰 谶 /dev/sda3 4096 6646 20480000 8e <strong>Linux</strong> LVM/dev/sda4 6646 60802 435006464 5 Extended谱 谰 谸 /dev/sda5 6646 7952 10485760 83 <strong>Linux</strong>/dev/sda6 7952 10563 20979362 8e <strong>Linux</strong> LVM谱 谱 谰 /dev/sda7 10564 11869 10490413+ 8e <strong>Linux</strong> LVM/dev/sda8 11870 12001 1060258+ 8e <strong>Linux</strong> LVM谱 谱 谲 /dev/sda9 12002 12133 1060258+ 8e <strong>Linux</strong> LVM/dev/sda10 12134 12395 2104483+ 8e <strong>Linux</strong> LVM谱 谱 谴[root@instructor ~]# pvscan谱 谱 谶 PV /dev/sda8 VG dywvg lvm2 [1.00 GiB / 0 free]PV /dev/sda9 VG dywvg lvm2 [1.00 GiB / 832.00 MiB free]谱 谱 谸 PV /dev/sda3 VG GLSguest lvm2 [19.50 GiB / 5.00 GiB free]PV /dev/sda2 VG GLSvg lvm2 [31.22 GiB / 0 free]谱 谲 谰 PV /dev/sda6 VG GLSvg lvm2 [20.00 GiB / 6.44 GiB free]PV /dev/sda7 VG GLSvg lvm2 [10.00 GiB / 10.00 GiB free]谱 谲 谲 Total: 6 [82.72 GiB] / in use: 6 [82.72 GiB] / in no VG: 0 [0]谱 谲 谴[root@instructor ~]# pvcreate /dev/sda10Physical volume "/dev/sda10" successfully created[root@instructor ~]# pvscan谱 谲 谶 PV /dev/sda8 VG dywvg lvm2 [1.00 GiB / 0 free]PV /dev/sda9 VG dywvg lvm2 [1.00 GiB / 832.00 MiBfree]谱 谲 谸 PV /dev/sda3 VG GLSguest lvm2 [19.50 GiB / 5.00 GiBfree]PV /dev/sda2 VG GLSvg lvm2 [31.22 GiB / 0 free]谱 谳 谰 PV /dev/sda6 VG GLSvg lvm2 [20.00 GiB / 6.44 GiBfree]PV /dev/sda7 VG GLSvg lvm2 [10.00 GiB / 10.00 GiBfree]谱 谳 谲 PV /dev/sda10 lvm2 [2.01 GiB]Total: 7 [84.73 GiB] / in use: 6 [82.72 GiB] / in no VG: 1[2.01 GiB]谱 谳 谴谱 谳 谶[root@instructor ~]# vgextend dywvg /dev/sda10Volume group "dywvg" successfully extended[root@instructor ~]# pvscanPV /dev/sda8 VG dywvg lvm2 [1.00 GiB / 0 free]谱 谳 谸 PV /dev/sda9 VG dywvg lvm2 [1.00 GiB / 832.00 MiB free]PV /dev/sda10 VG dywvg lvm2 [2.00 GiB / 2.00 GiB free]谱 谴 谰 PV /dev/sda3 VG GLSguest lvm2 [19.50 GiB / 5.00 GiB free]PV /dev/sda2 VG GLSvg lvm2 [31.22 GiB / 0 free][root@instructor ~]# vgdisplay谱 谴 谲 --- Volume group ---VG Namedywvg谱 谴 谴 <strong>System</strong> IDFormatlvm2谱 谴 谶 Metadata Areas 3De-Yu Wang CSIE CYUT 135


10.2. 邏 輯 捲 軸 管 理 CHAPTER 10. 邏 輯 捲 軸 管 理 員Metadata Sequence No 19谱 谴 谸 VG Access read/writeVG Statusresizable谱 谵 谰 MAX LV 0Cur LV 1谱 谵 谲 Open LV 1Max PV 0谱 谵 谴 Cur PV 3Act PV 3谱 谵 谶 VG Size 4.00 GiBPE Size32.00 MiB谱 谵 谸 Total PE 128Alloc PE / Size 38 / 1.19 GiB谱 谶 谰 Free PE / Size 90 / 2.81 GiBVG UUIDUztTCr-6SxE-x3eL-SR4P-fSEp-yswl-awaCJg谱 谶 谲PV /dev/sda6 VG GLSvg lvm2 [20.00 GiB / 6.44 GiB free]谱 谶 谴 PV /dev/sda7 VG GLSvg lvm2 [10.00 GiB / 10.00 GiB free]Total: 7 [84.72 GiB] / in use: 7 [84.72 GiB] / in no VG: 0 [0✡✝]✆5. 從 VG 移 除 PV partition✞谱 [root@instructor ~]# pvmove /dev/sda8 /dev/sda10/dev/sda8: Moved: 6.2%谳 /dev/sda8: Moved: 65.6%/dev/sda8: Moved: 100.0%谵 [root@instructor ~]# vgreduce dywvg /dev/sda8Removed "/dev/sda8" from volume group "dywvg"谷 [root@instructor ~]# pvscanPV /dev/sda9 VG dywvg lvm2 [1.00 GiB / 832.00 MiBfree]谹 PV /dev/sda10 VG dywvg lvm2 [2.00 GiB / 1.00 GiBfree]PV /dev/sda3 VG GLSguest lvm2 [19.50 GiB / 5.00 GiBfree]谱 谱 PV /dev/sda2 VG GLSvg lvm2 [31.22 GiB / 0 free]PV /dev/sda6 VG GLSvg lvm2 [20.00 GiB / 6.44 GiBfree]谱 谳 PV /dev/sda7 VG GLSvg lvm2 [10.00 GiB / 10.00 GiBfree]PV /dev/sda8lvm2 [1.01 GiB]谱 谵 Total: 7 [84.73 GiB] / in use: 6 [83.72 GiB] / in no VG: 1[1.01 GiB][root@instructor ~]# pvremove /dev/sda8谱 谷 Labels on physical volume "/dev/sda8" successfully wiped[root@instructor ~]# pvscan谱 谹 PV /dev/sda9 VG dywvg lvm2 [1.00 GiB / 832.00 MiB free]De-Yu Wang CSIE CYUT 136


10.3. 管 理 原 已 存 在 的 VG CHAPTER 10. 邏 輯 捲 軸 管 理 員PV /dev/sda10 VG dywvg lvm2 [2.00 GiB / 1.00 GiB free]谲 谱 PV /dev/sda3 VG GLSguest lvm2 [19.50 GiB / 5.00 GiB free]PV /dev/sda2 VG GLSvg lvm2 [31.22 GiB / 0 free]谲 谳 PV /dev/sda6 VG GLSvg lvm2 [20.00 GiB / 6.44 GiB free]PV /dev/sda7 VG GLSvg lvm2 [10.00 GiB / 10.00 GiB free]谲 谵 Total: 6 [83.72 GiB] / in use: 6 [83.72 GiB] / in no VG: 0 [0][root@instructor ~]# ll /mnt/dywlvm/谲 谷 total 16drwxr-xr-x. 125 root root 12288 Jul 11 08:17 etc谲 谹 drwx------.✡✝2 root root 4096 Jul 10 21:45 lost+found✆10.3 管 理 原 已 存 在 的 VG1. 新 增 PV partition谱谳谵谷谹✞[root@kvm8 ~]# fdisk -uc /dev/vdaCommand (m for help): pDisk /dev/vda: 1717 MB, 1717987328 bytes16 heads, 63 sectors/track, 3328 cylinders, total 3355444 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005f7da谱 谱 Device Boot Start End Blocks Id <strong>System</strong>/dev/vda1 * 2048 198655 98304 83 <strong>Linux</strong>谱 谳 /dev/vda2 198656 2656255 1228800 8e <strong>Linux</strong> LVM/dev/vda3 2656256 2922495 133120 8e <strong>Linux</strong> LVM谱 谵Command (m for help): n谱 谷 Command actione extended谱 谹 p primary partition (1-4)e谲 谱 Selected partition 4First sector (2922496-3355443, default 2922496):谲 谳 Using default value 2922496Last sector, +sectors or +size{K,M,G} (2922496-3355443, default3355443):谲 谵 Using default value 3355443谲 谷谲 谹Command (m for help): pDisk /dev/vda: 1717 MB, 1717987328 bytes16 heads, 63 sectors/track, 3328 cylinders, total 3355444 sectorsDe-Yu Wang CSIE CYUT 137


10.3. 管 理 原 已 存 在 的 VG CHAPTER 10. 邏 輯 捲 軸 管 理 員谳 谱 Units = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytes谳 谳 I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005f7da谳 谵Device Boot Start End Blocks Id <strong>System</strong>谳 谷 /dev/vda1 * 2048 198655 98304 83 <strong>Linux</strong>/dev/vda2 198656 2656255 1228800 8e <strong>Linux</strong> LVM谳 谹 /dev/vda3 2656256 2922495 133120 8e <strong>Linux</strong> LVM/dev/vda4 2922496 3355443 216474 5 Extended谴 谱Command (m for help): n谴 谳 First sector (2924544-3355443, default 2924544):Using default value 2924544谴 谵 Last sector, +sectors or +size{K,M,G} (2924544-3355443, default3355443): +20M谴 谷Command (m for help): p谴 谹 Disk /dev/vda: 1717 MB, 1717987328 bytes16 heads, 63 sectors/track, 3328 cylinders, total 3355444 sectors谵 谱 Units = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytes谵 谳 I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005f7da谵 谵Device Boot Start End Blocks Id <strong>System</strong>谵 谷 /dev/vda1 * 2048 198655 98304 83 <strong>Linux</strong>/dev/vda2 198656 2656255 1228800 8e <strong>Linux</strong> LVM谵 谹 /dev/vda3 2656256 2922495 133120 8e <strong>Linux</strong> LVM/dev/vda4 2922496 3355443 216474 5 Extended谶 谱 /dev/vda5 2924544 2965503 20480 83 <strong>Linux</strong>谶 谳谶 谵谶 谷谶 谹谷 谱谷 谳谷 谵Command (m for help): tPartition number (1-5): 5Hex code (type L to list codes): 8eChanged system type of partition 5 to 8e (<strong>Linux</strong> LVM)Command (m for help): pDisk /dev/vda: 1717 MB, 1717987328 bytes16 heads, 63 sectors/track, 3328 cylinders, total 3355444 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005f7da谷 谷 Device Boot Start End Blocks Id <strong>System</strong>/dev/vda1 * 2048 198655 98304 83 <strong>Linux</strong>谷 谹 /dev/vda2 198656 2656255 1228800 8e <strong>Linux</strong> LVM/dev/vda3 2656256 2922495 133120 8e <strong>Linux</strong> LVMDe-Yu Wang CSIE CYUT 138


10.3. 管 理 原 已 存 在 的 VG CHAPTER 10. 邏 輯 捲 軸 管 理 員谸 谱 /dev/vda4 2922496 3355443 216474 5 Extended/dev/vda5 2924544 2965503 20480 8e <strong>Linux</strong> LVM谸 谳Command (m for help): w谸 谵 The partition table has been altered!谸 谷Calling ioctl() to re-read partition table.谸 谹 WARNING: Re-reading the partition table failed with error 16:Device or resource busy.The kernel still uses the old table. The new table will be usedat谹 谱 the next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.✡✝✆2. 重 新 開 機✞[root@kvm8 ~]# reboot✡✝✆3. 查 看 VG vg_kvmusb✞谱 [root@kvm8 ~]# vgdisplay vg_kvmusb--- Volume group ---谳 VG Name vg_kvmusb<strong>System</strong> ID谵 Format lvm2Metadata Areas 1谷 Metadata Sequence No 5VG Accessread/write谹 VG Status resizableMAX LV 0谱 谱 Cur LV 2Open LV 2谱 谳 Max PV 0Cur PV 1谱 谵 Act PV 1VG Size1.17 GiB谱 谷 PE Size 4.00 MiBTotal PE 299谱 谹 Alloc PE / Size 287 / 1.12 GiBFree PE / Size 12 / 48.00 MiB


10.3. 管 理 原 已 存 在 的 VG CHAPTER 10. 邏 輯 捲 軸 管 理 員4. 將 分 割 好 的 /dev/vda5 產 生 pv✞谱 [root@kvm8 ~]# pvcreate /dev/vda5Physical volume "/dev/vda5" successfully created✡✝✆5. 將 分 割 好 的 /dev/vda5 併 入 VG vg_kvmusb✞[root@kvm8 ~]# vgextend vg_kvmusb /dev/vda5谲 Volume group "vg_kvmusb" successfully extended✡✝✆6. 再 觀 察 VG vg_kvmusb✞[root@kvm8 ~]# vgdisplay vg_kvmusb谲 --- Volume group ---VG Namevg_kvmusb谴 <strong>System</strong> IDFormatlvm2谶 Metadata Areas 2Metadata Sequence No 6谸 VG Access read/writeVG Statusresizable谱 谰 MAX LV 0Cur LV 2谱 谲 Open LV 2Max PV 0谱 谴 Cur PV 2Act PV 2谱 谶 VG Size 1.18 GiBPE Size4.00 MiB谱 谸 Total PE 303Alloc PE / Size 287 / 1.12 GiB谲 谰 Free PE / Size 16 / 64.00 MiB


10.4. 開 機 自 動 掛 載 CHAPTER 10. 邏 輯 捲 軸 管 理 員10.4 開 機 自 動 掛 載1. 系 統 掛 載 限 制 :(a) 根 目 錄 / 一 定 要 掛 載 且 最 先 掛 載 。(b) 其 它 掛 載 點 (mount points) 必 須 為 自 已 建 立 的 目 錄 。(c) 所 有 mount points 在 同 一 時 間 之 內 , 只 能 掛 載 一 次 。(d) 所 有 partitions 在 同 一 時 間 之 內 , 只 能 掛 載 一 次 。(e) 若 要 卸 載 , 必 須 先 將 工 作 目 錄 移 到 mount point ( 及 其 子 目 錄 ) 之 外 。2. 查 看 開 機 掛 載 設 定 檔 /etc/fstab✞[root@mdk-dyw dywang]# cat /etc/fstab谲 # This file is edited by fstab-sync# - see ’man fstab-sync’ for details谴 # device MountPoint filesystem parameters dump fsck/dev/hda1 / ext3 defaults 1 1谶 /dev/hda6 /home ext3 defaults 1 2/dev/hda5 swap swap defaults 0 0谸 /dev/hdc /mnt/cdrom iso9660 user,iochar 0 0none /mnt/floppy supermount iocharse 0 0谱 谰 none✡✝/proc proc defaults 0 0✆3. /etc/fstab 各 欄 位 說 明 :(a) device: 磁 區 或 標 頭 。(b) MountPoint: 掛 載 的 目 錄 。(c) filesystem: 該 磁 區 的 檔 案 格 式 。(d) parameters: 檔 案 格 式 參 數 區 。(e) dump: 是 否 可 以 被 dump 指 令 備 份 (0: 不 要 做 備 份 ;1: 要 做 備份 ;2: 要 做 備 份 , 重 要 度 比 1 小 )。(f) fsck: 是 否 於 開 機 時 以 fsck 檢 驗 磁 區 (0: 不 檢 驗 ;1: 先 檢 驗 ;2:後 檢 驗 )。4. 格 式 參 數De-Yu Wang CSIE CYUT 141


10.4. 開 機 自 動 掛 載 CHAPTER 10. 邏 輯 捲 軸 管 理 員參 數內 容 意 義async/sync 非 同 步 / 同 步 是 否 允 許 硬 碟 與 記 憶 體 中 的 資 料 以 同 步 寫 入的 動 作 。auto/noauto 自 動 / 非 自 動 在 開 機 的 時 候 是 否 自 動 掛 載 該 磁 區 。rw/ro 可 讀 寫 / 唯 讀 以 可 讀 寫 或 者 是 唯 獨 的 型 態 掛 載 。exec/noexec 可 執 行 / 不 可執 行限 制 在 此 檔 案 系 統 內 是 否 可 以 進 行 『 執 行 』的 工 作 。user/nouser 允 許 / 不 許 是 否 允 許 使 用 者 使 用 mount 指 令 來 掛 載 。suid/nosuid 具 有 suid / 該 檔 案 系 統 是 否 允 許 SUID 的 存 在 。沒 有 suidusrquota 啟 動 使 用 者 硬 碟 配 額 模 式 支 援 。grpquota 啟 動 群 組 硬 碟 配 額 模 式 支 援 。defaults 同 時 具 有 rw, suid, exec, auto,nouser, async 等 功 能 。iocharset= 設 定 big5, utf8 等 字 元 編 碼 。5. 以 指 令 mount -a 將 /etc/fstab 所 列 的 檔 案 系 統 全 部 掛 載 。6. 實 際 檔 案 系 統 的 掛 載 是 記 錄 到 /etc/mtab 與 /proc/mounts 這 兩 個 檔 案 。7. 開 機 自 動 掛 載 LV✞[root@instructor ~]# vim /etc/fstab谲 [root@instructor ~]# umount /mnt/dywlvm/[root@instructor ~]# cat /etc/fstab谴 # /etc/fstab# Created by anaconda on Wed Jun 29 08:53:46 2011谶 ## Accessible filesystems, by reference, are maintained under ’/dev/disk’谸 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) formore info#谱 谰 /dev/mapper/GLSvg-GLSroot / ext4defaults 1 1UUID=bd88d05b-6000-4c12-bd94-798c108d44c8 /boot ext4defaults 1 2谱 谲 /dev/mapper/GLSvg-GLShome /home ext4defaults 1 2/dev/mapper/GLSvg-GLStmp /tmp ext4 defaults1 2谱 谴 /dev/mapper/GLSvg-GLSvar /var ext4 defaults1 2/dev/mapper/GLSvg-GLSpub /var/ftp/pub ext4 defaults1 2谱 谶 /dev/mapper/dywvg-dywlv /mnt/dywlvm ext3 defaults1 2/dev/mapper/GLSvg-GLSswap swap swap defaults0 0De-Yu Wang CSIE CYUT 142


10.4. 開 機 自 動 掛 載 CHAPTER 10. 邏 輯 捲 軸 管 理 員谱 谸 tmpfs /dev/shm tmpfs defaults0 0devpts /dev/pts devpts gid=5,mode=620 0 0谲 谰 sysfs /sys sysfs defaults0 0proc /proc proc defaults0 0谲 谲 [root@instructor ~]# mount -a[root@instructor ~]# df /mnt/dywlvm/谲 谴 Filesystem 1K-blocks Used Available Use%Mounted on/dev/mapper/dywvg-dywlv 1225136 69848 1104432 6% /mnt/dywlvm谲 谶 [root@instructor ~]# ll /mnt/dywlvm/total 16谲 谸 drwxr-xr-x. 125 root root 12288 Jul 11 08:17 etcdrwx------.✡✝2 root root 4096 Jul 10 21:45 lost+found✆8. 例 題 : 建 立 一 個 新 的 ext3 檔 案 系 統 , 大 小 300 Mbytes, 並 設 定 開 機 時 自 動 掛 載 於 目 錄/abc。 徦 設 partition 為 /dev/sda6。(a) 以 fdisk /dev/sda 先 建 立 一 個 partition, 並 於 其 命 令 列 輸 入 t (change apartition’s system id), 將 該 partition 的 ID 改 為 83 (<strong>Linux</strong> 硬 碟 檔 案 格 式代 號 )。(b) 以 mkfs -t etx3 /dev/sda6 將 剛 剛 建 置 的 partition 格 式 化 為 ext3 的 檔 案 格式 。(c) 以 mkdir /abc 產 生 目 錄 /abc。(d) 以 vim /etc/fstab 編 輯 檔 案 /etc/fstab, 加 入 一 行/dev/sda6 /abc ext3 defaults 1 2(e) 以 mount -a 從 新 掛 載 /etc/fstab 中 的 所 有 檔 案 系 統 。De-Yu Wang CSIE CYUT 143


10.4. 開 機 自 動 掛 載 CHAPTER 10. 邏 輯 捲 軸 管 理 員De-Yu Wang CSIE CYUT 144


CHAPTER 11.NFS 檔 案 系 統Chapter 11NFS 檔 案 系 統11.1 NFS Server 端 設 定1. 安 裝 套 件✞谱 nfs-utils-1.2.2-7.el6.x86_64rpcbind-0.2.0-8.el6.x86_64✡✝✆2. 編 輯 設 定 檔 /etc/exports✞[root@deyu ~]# vim /etc/exports谲 # 分 享 目 錄 分 享 給 主 機 參 數 ()/home/guests 192.168.122.0/255.255.255.0(rw,sync)谴# 參 數谶 * :rwread-, 可 讀 寫 的 權 限 ;write* :roread-, 唯 讀 的 權 限 ;only谸 * : 資 料 同 步 寫 入 到 記 憶 體 與 硬 碟 當 中 ;sync* : 資 料 會 先 暫 存 於 記 憶 體 當 中 , 而 非 直 接 寫 入 硬 碟 。async谱 谰 * :no_root_squash 登 入NFS 主 機 使 用 分 享 目 錄 的 使 用 者 如 果 是 , 對 於 分 享 的 目 錄 具有 root root 的 權 限 。 極 不 安 全 , 不 建 議 使 用 。谱 谲* :root_squash 登 入谱 谴 NFS 主 機 使 用 分 享 目 錄 的 使 用 者 如 果 是 , 權 限 將 被 壓 縮 成 匿 名 使 用者 , root 通 常 他 的UID 與 GID 都 會 變 成 nobody(nfsnobody) 那 個 系 統 帳 號 的 身 份 ;谱 谶 * :all_squash 不 論 登 入NFS 的 使 用 者 身 份 為 何 , 都 會 被 壓 縮 成 為 匿 名 使 用 者 , 通 常是 nobody(nfsnobody) 。谱 谸 * :anonuidanon 意 指 anonymous 匿 名 者 (), 自 訂 匿 名 使 用 者 的 。UIDDe-Yu Wang CSIE CYUT 145


11.1. NFS SERVER 端 設 定 CHAPTER 11. NFS 檔 案 系 統谲 谰✡✝* : 自 訂 匿 名 使 用 者 的 是 變 成 anongid 。GID✆3. 啟 動 rpcbind 服 務✞[root@deyu ~]# /etc/init.d/rpcbind start谲 Starting rpcbind: [ OK✡✝]✆4. 啟 動 nfs 服 務✞[root@deyu ~]# /etc/init.d/nfs start谲 Starting NFS services: [ OK]Starting NFS quotas: [ OK]谴 Starting NFS daemon: [ OK]Starting NFS mountd: [ OK✡✝]✆5. 設 定 開 機 即 啟 動 rpcbind 及 nfs 服 務✞谱 [root@deyu ~]# chkconfig rpcbind on[root@deyu ~]# chkconfig --list rpcbind谳 rpcbind 0:off 1:off 2:on 3:on 4:on 5:on6:off[root@deyu ~]# chkconfig nfs on谵 [root@deyu ~]# chkconfig --list nfsnfs 0:off 1:off 2:on 3:on 4:on 5:on✡✝6:off✆6. 查 看 有 沒 有 可 以 掛 載 的 檔 案 系 統✞[root@deyu ~]# showmount [-ae] [hostname|IP] 參 數 :谲-a : 顯 示 目 前 主 機 與 用 戶 端 的 NFS 連 線 分 享 的 狀 態 ;谴 -e : 顯 示 某 部 主 機 的 /etc/exports 所 分 享 的 目 錄 資 料 。De-Yu Wang CSIE CYUT 146


11.2. NFS CLIENT 端 設 定 CHAPTER 11. NFS 檔 案 系 統谶 [root@deyu ~]# showmount -e deyu.wangExport list for deyu.wang:谸 /home/guests 192.168.122.0/255.255.255.0✡✝✆7. 重 新 設 定 /etc/exports 後 , 利 用 exportfs 處 理 nfs 的 掛 載 , 可 不 需 重新 啟 動 nfs。谲✞[root@deyu ~]# exportfs [-aruv] 參 數 :-a : 全 部 掛 載 或 卸 載 () /etc/exports 檔 案 內 的 設 定谴 -r : 重 新 掛 載 /etc/exports 的 設 定 , 亦 同 步 更 新 /etc/exports 及/var/lib/nfs/xtab 的 內 容 。谶 -u : 卸 載 某 一 目 錄-v : 在 export 時 將 分 享 的 目 錄 顯 示 到 螢 幕 上 。谸[root@deyu ~]# vim /etc/exports谱 谰 /home/guests 192.168.111.0/255.255.255.0(rw,sync)谱 谲[root@deyu ~]# exportfs -arvexporting 192.168.111.0/255.255.255.0:/home/guests✡✝✆11.2 NFS Client 端 設 定1. 確 認 本 地 端 已 經 啟 動 了 rpcbind 服 務 ;✞谱 [root@kvm4 ~]# /etc/init.d/rpcbind restartStopping rpcbind: [ OK]谳 Starting rpcbind: [ OK✡✝]✆2. 安 裝 套 件 nfs-utils✞谱 nfs-utils-1.2.2-7.el6.x86_64✡✝✆De-Yu Wang CSIE CYUT 147


11.2. NFS CLIENT 端 設 定 CHAPTER 11. NFS 檔 案 系 統3. 掃 瞄 NFS 伺 服 器 分 享 的 目 錄 , 並 瞭 解 是 否 可 以 使 用 (showmount);✞谱 [root@kvm4 ~]# showmount -e deyu.wangExport list for deyu.wang:谳 /home/guests 192.168.1.0/255.255.255.0✡✝✆4. 建 立 掛 載 目 錄✞谱 [root@kvm4 ~]# mkdir /home/guests[root@kvm4 ~]# ll /home/guests/谳 total 0✡✝✆5. 利 用 mount 將 遠 端 主 機 直 接 掛 載 到 相 關 目 錄 。✞谱 [root@kvm4 ~]# mount deyu.wang:/home/guests /home/guests[root@kvm4 ~]# ls /home/guests/谳 ldapuser1 ldapuser2✡✝✆6. 查 看 掛 載 情 形 ;✞谱 [root@kvm4 ~]# df -hFilesystem Size Used Avail Use% Mounted on谳 /dev/mapper/vg_kvmusb-root945M 629M 269M 71% /谵 tmpfs 499M 0 499M 0% /dev/shm/dev/vda1 93M 31M 59M 35% /boot谷 /dev/mapper/vg_kvmusb-home93M 5.6M 83M 7% /home谹 deyu.wang:/home/guests✡✝1.9G 277M 1.6G 16% /home/guests✆7. 將 掛 載 的 NFS 目 錄 卸 載✞[root@kvm4 ~]# umount /home/guests/谲 [root@kvm4 ~]# ls /home/g*✡✝✆De-Yu Wang CSIE CYUT 148


11.3. 自 動 掛 載 AUTOFS 的 使 用 CHAPTER 11. NFS 檔 案 系 統8. NFS 特 殊 的 掛 載 參 數參 數 預 設 內 容 意 義fg/bg fg 當 執 行 掛 載 時 , 該 掛 載 的 行 為 會 在 前 景 (fg) 還是 在 背 景 (bg) 執 行 。soft/hard hard 當 兩 者 之 間 有 任 何 一 部 主 機 離 線 ,hard RPC 會 持續 的 呼 叫 , 直 到 對 方 恢 復 連 線 為 止 ;soft RPC 會在 time out 後 『 重 複 』 呼 叫 , 而 非 『 持 續 』 呼叫 。intr 沒 中 斷 使 用 hard 方 式 掛 載 若 加 上 intr, 則 當 RPC 持續 呼 叫 中 , 該 次 呼 叫 可 以 被 中 斷 。rsize/wrize1024 讀 出 (rsize) 與 寫 入 (wsize) 的 區 塊 大 小 (blocksize)。9. 開 機 即 掛 載 NFS✞[root@kvm4 ~]# vim /etc/fstab谲 deyu.wang:/home/guests /home/guests nfs nosuid,noexec,nodev,rw,bg,soft 0 0✡✝✆11.3 自 動 掛 載 autofs 的 使 用1. 為 何 需 要 自 動 掛 載 autofs?(a) 讓 用 戶 端 在 有 使 用 到 NFS 檔 案 系 統 時 才 掛 載 ;(b) 不 需 要 事 先 建 立 掛 載 點 ;(c) 當 NFS 檔 案 系 統 使 用 完 畢 後 , 讓 NFS 自 動 卸 載 , 以 避 免 可 能 的 RPC錯 誤 。2. 安 裝 套 件✞[root@kvm4 ~]# rpm -qa | grep autofs谲 autofs-5.0.5-23.el6.x86_64✡✝✆3. 建 立 主 要 設 定 檔 /etc/auto.master✞[root@kvm4 ~]# vim /etc/auto.master谲 /home/guests /etc/auto.guests# 預 設 目 錄 資 料 對 應 檔 。De-Yu Wang CSIE CYUT 149


11.3. 自 動 掛 載 AUTOFS 的 使 用 CHAPTER 11. NFS 檔 案 系 統谴# 預 設 目 錄 : 用 戶 端 要 使 用 /home/guests/, 會 到 資 料 對 應 檔 中 找 次 目錄 ldapuser1 ldapuser1 的 對 應 。# 資 料 對 應 檔 的 檔 名 是 可 以 自 行 設 定 的 , 此 例 中 使 用 /etc/auto.。guests✡✝✆4. 建 立 資 料 對 應 檔 內 的 掛 載 資 訊谱✞資 料 對 應 檔 格 式 : 本 地 端 目 錄谳谵谷[] 掛 載 參 數 [-] 伺 服 器 所 提 供 的 目 錄 [] 參 數 : 本 地 端 目 錄[] : 指 的 是 在 /etc/auto.master 內 指 定 的 目 錄 之 次 目 錄 掛 載 參 數[-] : 就 是 rw,bg,soft 等 參 數 , 可 有 可 無 ; 伺 服 器 所 提 供 的 目 錄[] : 例 如 163.17.27.219:/home 等谹 [root@kvm4 etc]# cp auto.misc auto.guests[root@kvm4 etc]# vim auto.guests谱 谱 * -fstype=nfs deyu.wang:/home/guests/&## 本 地 端 目 錄 "*" 表 示 /home/guests 下 的 任 何 次 目 錄谱 谳 ## 伺 服 器 提 供 的 目 錄 deyu.wang:/home/guests/& 中 "&" 表 示 對 應 到 "*"## 當 使 用 到 目 錄 /home/guests/, 則 ldapuser1 "*" 及 "&" 即為 ldapuser1✡✝✆5. 啟 動 autofs✞谱 [root@kvm4 etc]# /etc/init.d/autofs startStarting automount: [ OK]✡✝✆6. 設 定 開 機 即 啟 動 autofs✞[root@kvm4 ~]# chkconfig --level 345 autofs on谲 Starting autofs: [ OK ]谴[root@kvm4 ~]# chkconfig --list autofsautofs 0:off 1:off 2:off 3:on 4:on 5:on6:off✡✝✆7. 確 認 目 前 並 沒 有 掛 載 任 何 來 自 deyu.wang NFS 伺 服 器 的 目 錄De-Yu Wang CSIE CYUT 150


11.3. 自 動 掛 載 AUTOFS 的 使 用 CHAPTER 11. NFS 檔 案 系 統✞谱 [root@kvm4 etc]# df -hFilesystem Size Used Avail Use% Mounted on谳/dev/mapper/GLSguest-lv_root5.3G 2.2G 2.9G 43% /谵 tmpfs 246M 260K 246M 1% /dev/shm/dev/vda1✡✝97M 26M 67M 28% /boot✆8. 進 入 /home/guests/ldapuser1, 檔 案 系 統 自 動 掛 載 。✞[root@kvm4 etc]# su - ldapuser1谲 [ldapuser1@kvm4 ~]$ pwd/home/guests/ldapuser1谴 [ldapuser1@kvm4 ~]$ df -hFilesystem Size Used Avail Use% Mounted on谶 /dev/mapper/GLSguest-lv_root5.3G 2.2G 2.9G 43% /谸 tmpfs 246M 260K 246M 1% /dev/shm/dev/vda1 97M 26M 67M 28% /boot谱 谰 df: ‘/root/.gvfs’: Permission denieddeyu.wang:/home/guests/ldapuser1谱 谲 26G 36M 25G 1% /home/guests/ldapuser1# 已 掛 載 , 目 錄 /home/guests/ldapuser1 會 自 動 產 生 。✡✝✆De-Yu Wang CSIE CYUT 151


11.3. 自 動 掛 載 AUTOFS 的 使 用 CHAPTER 11. NFS 檔 案 系 統De-Yu Wang CSIE CYUT 152


CHAPTER 12.OPENLDAP 網 路 用 戶 帳 號Chapter 12OPENLDAP 網 路 用 戶 帳 號12.1 LDAP 簡 介1. LDAP (Lightweight Directory Access Protocol): 輕 量 級 目 錄 存 取 協 定 ,運 作 於 TCP/IP 四 層 上 ,LDAP 跟 運 作 於 OSI 七 層 的 重 量 級 協 定 X.500 相比 之 下 叫 輕 量 級 。2. LDAP 目 錄 結 構 組 成• DN,Distinguished Name: 識 別 名 稱 ,LDAP 中 一 筆 記 錄 的 位 置• RDN,Relative Distinguished Name: 相 對 識 別 名 稱 ,CN 及 CN 的值 。 例 如 :cn=deyu 獨 一 無 二 的 屬 性 。• CN,Common Name/uid: 顯 示 名 稱 , 一 筆 LDAP 記 錄 的 名 字 /ID• OU,Organizational Unit: 組 織 , 一 筆 LDAP 記 錄 所 屬 組 織• DC,Domain Componet: 網 域 元 件 , 一 筆 LDAP 記 錄 所 屬 區 域3. LDAP DN 例 子 : 在 deyu.wang 網 域 內 people 組 織 中 使 用 者 dywtest。✞谱 dn: cn=dywtest,ou=people,dc=deyu,dc=wang✡✝✆12.2 LDAP Server 建 置1. 安 裝 套 件谱谳✞[root@deyu ~]# yum install openldap openldap-servers openldapclients[root@deyu ~]# rpm -qa | grep openldapopenldap-2.4.19-15.el6.x86_64De-Yu Wang CSIE CYUT 153


12.2. LDAP SERVER 建 置 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號openldap-clients-2.4.19-15.el6.x86_64谵 openldap-servers-2.4.19-15.el6.x86_64✡✝✆2. 編 輯 主 要 設 定 檔 slapd.conf(a) 安 裝 好 openldap-server 並 沒 有 sldap.conf, 只 有slapd.conf.bak, 故 先 複 製 。✞谱 [root@deyu ~]# cd /etc/openldap[root@deyu openldap]# cp slapd.conf.bak slapd.conf.dywang谳 [root@deyu openldap]# vim slapd.conf.dywang✡✝✆(b) 取 消 以 下 三 行 註 解 , 並 修 改 認 證 憑 證 名 稱 與 產 生 的 憑 證 相 同 。✞谱 TLSCACertificateFile /etc/pki/tls/certs/cacert.pemTLSCertificateFile /etc/pki/tls/certs/slapd.pem谳 TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem✡✝✆(c) 修 改 dc cn 認 證 憑 證 名 稱 與 產 生 的 憑 證 相 同 。✞谱 database bdbsuffix "dc=deyu,dc=wang"谳 checkpoint 1024 15rootdn✡✝"cn=Manager,dc=deyu,dc=wang"✆(d) 設 定 用 戶 可 修 改 自 己 的 密 碼 , 特 別 注 意 : database monitor 必 須 放 在access 設 定 之 後 , 否 則 無 效谲谴谶谸谱 谰✞# enable monitoringaccess to attrs=userPasswordby self writeby anonymous authby dn.base="cn=Manager,dc=deyu,dc=wang" writeby * noneaccess to *by self writeby dn.base="cn=Manager,dc=deyu,dc=wang" writeby * readDe-Yu Wang CSIE CYUT 154


12.2. LDAP SERVER 建 置 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號database monitor✡✝✆3. 將 ldap.conf.dywang 設 定 檔 轉 換 格 式 到 指 定 目 錄✞谱 [root@deyu openldap]# mv slapd.d slapd.d.orig[root@deyu openldap]# mkdir slapd.d谳 [root@deyu openldap]# chown ldap.ldap slapd.d[root@deyu openldap]# slaptest -f slapd.conf.dywang -F slapd.d谵 [root@deyu oepnldap]# chown ldap.ldap -R /etc/openldap/slapd.d[root@deyu openldap]# restorecon -R /etc/openldap/slapd.d✡✝✆4. 檔 案 DB_CONFIG 設 定 index 的 快 取 數 量 , 可 調 整 效 能 的 表 現 , 若 不 設 定 ,直 接 產 生 一 個 空 檔 案 即 可 。✞[root@deyu ~]# touch /var/lib/ldap/DB_CONFIG谲 [root@deyu ~]# find /usr -name DB_CONFIG*/usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example谴 [root@deyu ~]# cp /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example\/var/lib/ldap/DB_CONFIG✡✝✆5. LDIF 語 法 :✞谱 #The LDAP Data Interchange Format (LDIF) 是 LDAP 的 明 文 格 式 檔 。1. 井 號 (#) 為 註 解谳 2. 冒 號 (:) 左 邊 為 屬 性 , 右 邊 為 屬 性 值 記 得 空 一 格 ()3. dn 即 為 該 項 目 (entry)谵 4. 跨 列 時 不 使 用 一 般 的 倒 斜 線 \ 來 接 續 下 一 行 , 只 需 在 下 一 列 開 頭 加 一 空格 即 可 。✡✝✆6. 利 用 migrationtools 工 具 產 生 ldif 格 式 檔谱谳谵✞[root@deyu ~]# yum install migrationtools[root@deyu ~]# vi /usr/share/migrationtools/migrate_common.ph# Default DNS domain$DEFAULT_MAIL_DOMAIN = "deyu.wang";De-Yu Wang CSIE CYUT 155


12.2. LDAP SERVER 建 置 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號谷# Default base$DEFAULT_BASE = "dc=deyu,dc=wang";谹 [root@deyu ~]# mkdir /root/ldif[root@deyu ~]# cd /root/ldif谱 谱 [root@deyu ldif]# vi passwdldapuser1:x:1001:1001::/home/guests/ldapuser1:/bin/bash谱 谳 ldapuser2:x:1002:1002::/home/guests/ldapuser2:/bin/bash# 格 式 與 /etc/passwd 相 同谱 谵 [root@deyu ldif]# vi groupldapuser1:x:1001:谱 谷 ldapuser2:x:1002:# 格 式 與 /etc/group 相 同谱 谹 [root@deyu ~]# cd /usr/share/migrationtools/[root@deyu migrationtools]# ./migrate_base.pl > /root/ldif/migratebase.ldif谲 谱 [root@deyu migrationtools]# ./migrate_passwd.pl /root/ldif/passwd> /root/ldif/migratepasswd.ldif[root@deyu migrationtools]# ./migrate_group.pl /root/ldif/group >/root/ldif/migrategroup.ldif✡✝✆7. 產 生 加 密 密 碼✞[root@deyu ~]# slappasswd谲 New password:Re-enter new password:谴 {SSHA}HAvRpYe5TR88asauGqYtoCFzT7qHYqjP[root@deyu ~]# vi /root/ldif/migratepasswd谶 dn: uid=ldapuser1,ou=People,dc=deyu,dc=wanguid: ldapuser1谸 cn: ldapuser1objectClass: account谱 谰 objectClass: posixAccountobjectClass: top谱 谲 userPassword: {SSHA}HAvRpYe5TR88asauGqYtoCFzT7qHYqjP 密 碼


12.2. LDAP SERVER 建 置 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號dc: deyu谴 objectClass: topobjectClass: domain 省 略谶 --------谸 [root@deyu ~]# cat /root/ldif/migrategroup.ldifdn: cn=ldapuser1,ou=Group,dc=deyu,dc=wang谱 谰 objectClass: posixGroupobjectClass: top谱 谲 cn: ldapuser1userPassword: {crypt}x谱 谴 gidNumber: 1001✡✝✆9. 將 bdn.ldif 及 user.ldif 匯 入 LDAP 資 料 庫✞[root@deyu ~]# /etc/init.d/slapd stop谲 Stopping slapd: [ OK][root@deyu ~]# slapadd -l /root/ldif/migratebase.ldif谴bdb_db_open: DB_CONFIG for suffix "dc=deyu,dc=wang" has changed.Performing database recovery to activate new settings.谶 _#################### 100.00% eta none elapsed nonefast!Closing DB...谸谱 谰[root@deyu ~]# slapadd -l /root/ldif/migratepasswd.ldif_#################### 100.00% eta none elapsed nonefast!Closing DB...[root@deyu ~]# slapadd -l /root/ldif/migrategroup.ldif谱 谲 _#################### 100.00% eta none elapsed nonefast!Closing DB...✡✝✆10. 啟 動 slapd 服 務✞谱 [root@deyu ~]# chown ldap /var/lib/ldap/*[root@deyu ~]# /etc/init.d/slapd start谳 Starting slapd: [ OK✡✝]✆11. 查 詢De-Yu Wang CSIE CYUT 157


12.3. CA 憑 證 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號✞谱 [root@deyu ~]# ldapsearch -x -b "dc=deyu,dc=wang" 省 略--------谳 # ldapuser1, Group, deyu.wangdn: cn=ldapuser1,ou=Group,dc=deyu,dc=wang谵 objectClass: posixGroupobjectClass: top谷 cn: ldapuser1userPassword:: e2NyeXB0fXg=谹 gidNumber: 1001 省 略--------✡✝✆12.3 CA 憑 證1. 憑 證 授 權 單 位 (Certification Authority,CA) 為 具 公 信 力 第 三 者 (TrustedThirdParty), 提 供 認 證 及 憑 證 簽 發 管 理 等 服 務 。2. 產 生 CA 憑 證✞[root@deyu ~]# cd /etc/pki/CA谲 [root@deyu CA]# mkdir {certs,crl,newcerts}[root@deyu CA]# touch index.txt谴 [root@deyu CA]# echo 01 > serial[root@deyu CA]# openssl req -new -x509 -nodes -out cacert.pem \谶 -keyout private/cakey.pem \-subj ’/C=TW/ST=Taiwan/L=CYUT/O=CSIE/CN=deyu.wang CertificateAuthority’✡✝✆3. 複 製 憑 證 至 指 定 的 地 方✞谱 [root@deyu CA]# cp cacert.pem /etc/pki/tls/certs[root@deyu CA]# chmod 644 /etc/pki/tls/certs/cacert.pem谳 [root@deyu CA]# cp cacert.pem /var/ftp/pub[root@deyu CA]# chmod 644 /var/ftp/pub/cacert.pem✡✝✆4. 產 生 CA 簽 署 給 slapd 使 用 的 憑 證谲✞[root@deyu ~]# umask 077[root@deyu ~]# cd /etc/pki/tls/certsDe-Yu Wang CSIE CYUT 158


12.4. LDAP CLIENT 端 設 定 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號[root@deyu certs]# rm -f slapd.pem谴 [root@deyu certs]# openssl req -new -nodes -out slapd.csr \-keyout slapd.key -subj ’/C=TW/ST=Taiwan/L=CYUT/O=CSIE/CN=deyu.wang’谶 [root@deyu certs]# openssl ca -batch -in slapd.csr -out slapd.crt[root@deyu certs]# ( cat slapd.key; echo; cat slapd.crt ) > slapd.pem谸 [root@deyu certs]# chown ldap slapd.pem[root@deyu certs]# rm -f slapd.key slapd.crt slapd.csr✡✝✆12.4 LDAP Client 端 設 定1. 安 裝 套 件✞谱 [root@kvm4 ~]# yum install {openldap,openldap-clients,nss-pamldapd}✡✝✆2. LDAP server 條 件✞谱 1. ldap server: deyu.wang2. base dn: dc=deyu,dc=wang谳 3. 認 證 證 書 : ftp://deyu.wang/pub/cacert.pem4. 帳 號 : ldapuser1谵 5. 密 碼 : 123✡✝✆3. 直 接 進 行 設 定 並 啟 動 認 證(a) 修 改 設 定 檔谱谳谵谷谹✞[root@kvm4 ~]# vi /etc/nslcd.confuri ldap://deyu.wang/base dc=deyu,dc=wangssl start_tlstls_cacertdir /etc/openldap/cacerts[root@kvm4 ~]# vi /etc/openldap/ldap.confURI ldap://deyu.wang/BASE dc=deyu,dc=wangTLS_CACERTDIR /etc/openldap/cacertsDe-Yu Wang CSIE CYUT 159


12.4. LDAP CLIENT 端 設 定 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號谱 谱谱 谳谱 谵谱 谷[root@kvm4 ~]# vi /etc/pam_ldap.confbase dc=deyu,dc=wanguri ldap://deyu.wang/ssl start_tlstls_cacertdir /etc/openldap/cacertspam_password md5谱 谹 [root@kvm4 ~]# vi /etc/nsswitch.confpasswd: files ldap谲 谱 shadow: files ldapgroup:✡✝files ldap✆(b) 下 載 認 證 證 書✞[root@kvm4 ~]# cd /etc/openldap/cacerts/谲 [root@kvm4 cacerts]# wget ftp://deyu.wang/pub/cacert.pem--2011-12-20 22:10:29-- ftp://deyu.wang/pub/cacert.pem谴=> \cacert."pemResolving deyu.wang... 192.168.122.1谶 Connecting to deyu.wang|192.168.122.1|:21... connected.Logging in as anonymous ... Logged in!谸 ==> SYST ... done. ==> PWD ... done.==> TYPE I ... done. ==> CWD (1) /pub ... done.谱 谰 ==> SIZE cacert.pem ... 1318==> PASV ... done. ==> RETR cacert.pem ... done.谱 谲 Length: 1318 (1.3K) (unauthoritative)谱 谴 100%[======================================>] 1,318--.-K/s in 0s谱 谶 2011-12-20 22:10:29 (144 MB/s) - \cacert."pem saved [1318]✡✝✆(c) 建 立 證 書 的 hash 連 結✞[root@kvm4 cacerts]# ll谲 total 4-rw-r--r--. 1 root root 1318 Dec 20 22:10 cacert.pem谴 [root@kvm4 cacerts]# cacertdir_rehash .[root@kvm4 cacerts]# ll谶 total 4lrwxrwxrwx. 1 root root 10 Dec 20 22:14 77bc2243.0 ->cacert.pem谸 -rw-r--r--. 1 root root 1318 Dec 20 22:10 cacert.pem✡✝✆De-Yu Wang CSIE CYUT 160


12.4. LDAP CLIENT 端 設 定 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號(d) 啟 動 nslcd✞[root@kvm4 ~]# /etc/init.d/nslcd start谲 Starting nslcd: [OK ]✡✝✆(e) 測 試 ldap user: 用 滑 鼠 點 Send key 的 Ctrl+Alt+F2 進 入 第 二 終 端機 , 以 ldapuser1 登 入 測 試 密 碼 是 否 正 確 。✞[root@kvm4 ~]# getent passwd ldapuser1谲 ldapuser1:{SSHA}HAvRpYe5TR88asauGqYtoCFzT7qHYqjP:1001:1001:ldapuser1:/home/guests/ldapuser1:/bin/bash✡✝✆4. 以 authconfig 命 令 幫 忙 設 定 LDAP 認 證✞[root@kvmr4 ~]# authconfig --help | grep ldap谲 --enableldap enable LDAP for user information bydefault--disableldap disable LDAP for user information bydefault谴 --enableldapauth enable LDAP for authentication by default--disableldapauth disable LDAP for authentication bydefault谶 --ldapserver=--ldapbasedn= default LDAP base DN谸 --enableldaptls, --enableldapstarttls--disableldaptls, --disableldapstarttls谱 谰 --ldaploadcacert=谱 谲 [root@kvm4 ~]# authconfig --enableldap --enableldapauth \--ldapserver=deyu.wang --ldapbasedn="dc=deyu,dc=wang" --enableldaptls --enableldapstarttls \谱 谴 --ldaploadcacert=ftp://deyu.wang/pub/cacert.pem --updateStarting nslcd: [ OK]✡✝✆5. 檢 查 要 登 入 的 帳 號 是 否 存 在 ?谱✞[root@kvm4 cacerts]# getent passwd ldapuser1De-Yu Wang CSIE CYUT 161


12.5. LDAP 帳 號 管 理 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號ldapuser1:{SSHA}HAvRpYe5TR88asauGqYtoCFzT7qHYqjP:1001:1001:ldapuser1:/home/guests/ldapuser1:/bin/bash✡✝✆6. 登 入 測 試✞[root@kvm4 cacerts]# su - ldapuser1谲 su: warning: cannot change directory to /home/guests/ldapuser1:No such file or directory-bash-4.1$✡✝✆7. 若 已 掛 載 NFS 後 , 登 入 LDAP 帳 號 已 有 家 目 錄✞谱 [root@kvm4 ~]# getent passwd ldapuser1ldapuser1:{SSHA}HAvRpYe5TR88asauGqYtoCFzT7qHYqjP:1001:1001:ldapuser1:/home/guests/ldapuser1:/bin/bash谳 [root@kvm4 ~]# su - ldapuser1[ldapuser1@kvm4 ~]$ pwd谵 /home/guests/ldapuser1✡✝✆8. LDAP client 圖 形 界 面 設 定 工 具✞谱 [root@kvm4 cacerts]# system-config-authentication1. Under, "User account database" select LDAP谳 2. For "base DN", enter ’dc=deyu,dc=wang’3. For "LDAP Server", enter ’ldap://deyu.wang’谵 4. Click "Download certificate" and useftp://deyu.wang/pub/cacert.pem谷 5. Leave TLS *UNCHECKED*6. Under "Authentication Method", select LDAP谹 7. Select Apply and complete firstboot setup✡✝✆12.5 LDAP 帳 號 管 理1. 產 生 帳 號 ldif 檔De-Yu Wang CSIE CYUT 162


12.6. 安 全 機 制 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號✞谱 [root@ildap ~]# vim ldapuser1.ldifdn: uid=ldapuser1,ou=People,dc=deyu,dc=wang谳 sn: ldapuser1uid: ldapuser1谵 mail:ldapuser1@csie.cyut.edu.two: 資 工 系谷 cn: ldapuser1objectClass: inetOrgPerson谹 objectClass: posixAccountobjectClass: top谱 谱 userPassword: {SSHA}HAvRpYe5TR88asauGqYtoCFzT7qHYqjPloginShell: /bin/bash谱 谳 uidNumber: 1001gidNumber: 1001谱 谵 homeDirectory: /home/guests/ldapuser1✡✝✆2. 加 入 帳 號✞谱 [root@ildap ~]# ldapadd -x -D "cn=Manager,dc=deyu,dc=wang" -wsecretpassword -f ldapuser1.ldif✡✝✆3. 改 變 帳 號 密 碼✞谱 [root@ildap ~]# ldappasswd -s newpassword -D "cn=Manager, dc=deyu,dc=wang" -W -x "uid=ldpauser1,ou=People,dc=deyu,dc=wang"✡✝✆4. 刪 除 帳 號✞谱 [root@ildap ~]# ldapdelete -D "cn=Manager, dc=deyu,dc=wang" -W "uid=ldapuser1,ou=People,dc=deyu,dc=wang"✡✝✆12.6 安 全 機 制1. 查 詢 ldap portDe-Yu Wang CSIE CYUT 163


12.6. 安 全 機 制 CHAPTER 12. OPENLDAP 網 路 用 戶 帳 號✞谱 [root@ldap ~]# grep ’^ldap ’ /etc/servicesldap389/tcp谳 ldap 389/udp✡✝✆2. 防 火 牆 設 定 : 只 開 放 給 192.168.122.0/24 網 域 使 用 。✞谱 [root@ldap ~]# vim /etc/sysconfig/iptables######################################################谳 -A INPUT -s 192.168.122.0/24 -m state --state NEW -m tcp -p tcp--dport 389 -j ACCEPT######################################################✡✝✆3. 防 火 牆 重 新 啟 動✞[root@ldap ~]# /etc/init.d/iptables restart✡✝✆4. 開 機 啟 動 防 火 牆✞谱 [root@ldap ~]# chkconfig iptables on✡✝✆De-Yu Wang CSIE CYUT 164


CHAPTER 13.SELINUXChapter 13SE<strong>Linux</strong>13.1 設 計 原 由1. 自 主 式 存 取 控 制 (Discretionary Access Control, DAC)(a) 傳 統 的 檔 案 權 限 與 帳 號 關 係 : 依 據 程 序 的 擁 有 者 與 檔 案 資 源 的 rwx 權 限來 決 定 有 無 存 取 的 能 力 。(b) 若 該 程 序 屬 root 權 限 , 則 其 可 在 系 統 上 進 任 何 資 源 存 取 。(c) 若 某 個 目 錄 權 限 為 777, 則 任 何 帳 號 的 程 序 都 可 任 意 存 取 及 寫 入 。2. 系 統 出 現 問 題(a) 內 部 員 工 的 資 源 誤 用 遠 高 於 外 部 攻 擊 。(b) 員 工 資 源 誤 用 : 系 統 管 理 員 為 了 自 己 方 便 , 將 防 火 牆 完 全 關 閉 或 某 個 檔案 目 錄 的 權 限 設 定 為 777。(c) 為 控 管 員 工 資 源 誤 用 問 題 , 美 國 國 家 安 全 局 (NSA) 開 發 安 全增 強 式 <strong>Linux</strong>(SE<strong>Linux</strong>, Security-Enhanced <strong>Linux</strong>) 模 組 , 並 整 合到 <strong>Linux</strong> 核 心 。(d) SE<strong>Linux</strong> 是 一 種 強 制 存 取 控 制 (mandatory access control, MAC) 的 實現 。3. 強 制 存 取 控 制(a) 針 對 特 定 的 程 序 與 特 定 的 檔 案 資 源 進 行 權 限 的 控 管 。(b) WWW server 啟 動 的 程 序 為 httpd,selinux 預 設 僅 能 在 /var/www 目 錄 下 存取 檔 案 。13.2 啟 動 、 關 閉 與 觀 察1. SE<strong>Linux</strong> 開 機 啟 動 模 式De-Yu Wang CSIE CYUT 165


13.3. SELINUX CONTEXTS CHAPTER 13. SELINUX✞谱 [root@deyu ~]# cat /etc/sysconfig/selinux# This file controls the state of SE<strong>Linux</strong> on the system.谳 # SELINUX= can take one of these three values:# enforcing - SE<strong>Linux</strong> security policy is enforced.谵 # permissive - SE<strong>Linux</strong> prints warnings instead of enforcing.# disabled - No SE<strong>Linux</strong> policy is loaded.谷 SELINUX=enforcing# SELINUXTYPE= can take one of these two values:谹 # targeted - Targeted processes are protected,# mls - Multi Level Security protection.谱 谱 SELINUXTYPE=targeted✡✝✆2. 關 察 目 前 SE<strong>Linux</strong> 狀 態✞谱 [root@deyu ~]# sestatusSE<strong>Linux</strong> status:enabled谳 SE<strong>Linux</strong>fs mount: /selinuxCurrent mode:enforcing谵 Mode from config file: enforcingPolicy version: 24谷 Policy from config file:✡✝targeted✆3. 改 變 SE<strong>Linux</strong> 模 式✞谱 [root@deyu ~]# getenforceEnforcing谳 [root@deyu ~]# setenforce 0[root@deyu ~]# getenforce谵 Permissive[root@deyu ~]# setenforce 1谷 [root@deyu ~]# getenforceEnforcing✡✝✆13.3 SE<strong>Linux</strong> Contexts1. Display Contexts✞[root@deyu ~]# ps axZ | grep sshdDe-Yu Wang CSIE CYUT 166


13.3. SELINUX CONTEXTS CHAPTER 13. SELINUX谲 system_u:system_r:sshd_t:s0-s0:c0.c1023 2054 ? Ss 0:00 /usr/sbin/sshd#user:role:type:range谴 #for a process, the type is also called the domain of the process谶[root@deyu ~]# ls -Z anaconda-ks.cfg-rw-------. root root system_u:object_r:admin_home_t:s0 anacondaks.cfg✡✝✆2. File’s context depends on where it was created✞谱 [root@deyu ~]# cal > ~/index.html[root@deyu ~]# cal > /var/www/html/index.html谳 [root@deyu ~]# ls -Z ~/index.html /var/www/html/index.html-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /root/index.html谵 -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html[root@deyu ~]# ls -Zd ~ /var/www/html谷 dr-xr-x---. root root system_u:object_r:admin_home_t:s0 /rootdrwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html✡✝✆3. 測 試 httpd 檔 案✞[root@deyu ~]# /etc/init.d/httpd restart谲 Stopping httpd: [ OK]Starting httpd: [ OK]谴 [root@deyu ~]# curl http://127.0.0.1/index.html谶December 2011Su Mo Tu We Th Fr Sa1 2 3谸 4 5 6 7 8 9 1011 12 13 14 15 16 17谱 谰 18 19 20 21 22 23 2425 26 27 28 29 30 31谱 谲[root@deyu ~]# mv index.html /var/www/html/index.html谱 谴mv: overwrite ‘/var/www/html/index.html’? y谱 谶[root@deyu ~]# curl http://127.0.0.1/index.htmlDe-Yu Wang CSIE CYUT 167


13.3. SELINUX CONTEXTS CHAPTER 13. SELINUX谱 谸 403 Forbidden谲 谰 Forbidden谲 谲 You don’t have permission to access /index.htmlon this server.谲 谴 Apache/2.2.15 (CentOS) Server at 127.0.0.1 Port 80谲 谶 ✡✝✆4. Change index.html SE<strong>Linux</strong> security context✞[root@deyu ~]# ls -Z /var/www/html/index.html谲 -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /var/www/html/index.html[root@deyu ~]# chcon -t httpd_sys_content_t /var/www/html/index.html谴 [root@deyu ~]# ls -Z /var/www/html/index.html-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html谶 [root@deyu ~]# curl http://127.0.0.1/index.htmlDecember 2011谸 Su Mo Tu We Th Fr Sa1 2 3谱 谰 4 5 6 7 8 9 1011 12 13 14 15 16 17谱 谲 18 19 20 21 22 23 2425 26 27 28 29 30 31✡✝✆5. Restore the context of index.html谱谳谵谷谹✞[root@deyu ~]# cal > ~/index.html[root@deyu ~]# mv index.html /var/www/html/index.htmlmv: overwrite ‘/var/www/html/index.html’? y[root@deyu ~]# restorecon -Rv /var/www/html/index.htmlrestorecon reset /var/www/html/index.html context unconfined_u:object_r:admin_home_t:s0->system_u:object_r:httpd_sys_content_t:s0[root@deyu ~]# curl http://127.0.0.1/index.htmlDecember 2011Su Mo Tu We Th Fr Sa1 2 3De-Yu Wang CSIE CYUT 168


13.4. MANAGE SELINUX BOOLEANS CHAPTER 13. SELINUX谱 谱 4 5 6 7 8 9 1011 12 13 14 15 16 17谱 谳 18 19 20 21 22 23 2425 26 27 28 29 30 31✡✝✆13.4 Manage SE<strong>Linux</strong> Booleans1. get SE<strong>Linux</strong> booleans谲谴谶谸谱 谰谱 谲谱 谴谱 谶谱 谸谲 谰✞[root@deyu ~]# getsebool -aabrt_anon_write --> offallow_console_login --> onallow_corosync_rw_tmpfs --> off.......xserver_object_manager --> off[root@deyu ~]# getsebool -a | grep ftpallow_ftpd_anon_write --> offallow_ftpd_full_access --> offallow_ftpd_use_cifs --> offallow_ftpd_use_nfs --> offftp_home_dir --> offftpd_connect_db --> offhttpd_enable_ftp_server --> offsftpd_anon_write --> offsftpd_enable_homedirs --> offsftpd_full_access --> offsftpd_write_ssh_home --> offtftp_anon_write --> off谲 谲[root@deyu ~]# getsebool ftp_home_dirftp_home_dir --> off✡✝✆2. set SE<strong>Linux</strong> booleans✞谱 [root@deyu ~]# mkdir /var/ftp/pub/sel[root@deyu ~]# touch /var/ftp/pub/sel/a.txt谳# 開 啟 另 一 終 端 機 , 登 入 進 行 測 試 kvm4谵 [root@deyu ~]# ssh root@kvm4.deyu.wangroot@kvm4.deyu.wang’s password:谷 Last login: Fri Dec 30 12:14:06 2011[root@kvm4 ~]# wget ftp://deyu.wang/pub/sel/a.txtDe-Yu Wang CSIE CYUT 169


13.4. MANAGE SELINUX BOOLEANS CHAPTER 13. SELINUX谹 --2011-12-30 17:27:25-- ftp://deyu.wang/pub/sel/a.txt=> \a."txt谱 谱 Resolving deyu.wang... 192.168.122.1Connecting to deyu.wang|192.168.122.1|:21... failed: No route tohost.谱 谳[root@deyu ~]# setsebool ftp_home_dir 1谱 谵 [root@deyu ~]# getsebool ftp_home_dirftp_home_dir --> on谱 谷# 再 以 進 行 測 試 , 若 還 有 問 題 請 檢 查 kvm4iptables谱 谹 [root@kvm4 ~]# wget ftp://deyu.wang/pub/sel/a.txt--2011-12-30 17:32:51-- ftp://deyu.wang/pub/sel/a.txt谲 谱=> \a."txtResolving deyu.wang... 192.168.122.1谲 谳 Connecting to deyu.wang|192.168.122.1|:21... connected.Logging in as anonymous ... Logged in!谲 谵 ==> SYST ... done. ==> PWD ... done.==> TYPE I ... done. ==> CWD (1) /pub/sel ... done.谲 谷 ==> SIZE a.txt ... done.==> PASV ... done. ==> RETR a.txt ... done.谲 谹[ ] 0 --.-K/sin 0s谳 谱2011-12-30 17:32:51 (0.00 B/s) - \a."txt saved [0]谳 谳 [root@kvm4 ~]# ll a.txt-rw-r--r--. 1 root root 0 Dec 30 17:32 a.txt✡✝✆3. set SE<strong>Linux</strong> booleans as boot-time default✞[root@deyu ~]# setsebool -P ftp_home_dir 1谲 [root@deyu ~]# getsebool ftp_home_dirftp_home_dir --> on谴 [root@deyu ~]# setsebool -P ftp_home_dir 0ftp_home_dir --> off✡✝✆4. get more detailed information✞谱 [root@deyu ~]# semanage boolean -l | grep ftp_home_dirftp_home_dir -> off Allow ftp to read andwrite files in the user home directories✡✝✆De-Yu Wang CSIE CYUT 170


CHAPTER 14.RPM 套 件 下 載 安 裝Chapter 14RPM 套 件 下 載 安 裝14.1 RPM 與 SRPM 套 件1. 何 謂 RPM?(a) RPM 全 名 是 『 RedHat Package Manager 』 簡 稱 為 RPM。(b) 由 Red Hat 公 司 發 展 出 來 , 由 於 RPM 使 用 方 便 , 所 以 成 了 目 前 最 熱 門的 套 件 管 理 程 式 。(c) RPM 是 以 資 料 庫 記 錄 的 方 式 來 將 所 需 要 的 套 件 安 裝 到 <strong>Linux</strong> 主 機 的 一套 管 理 程 式 。(d) RPM 將 要 安 裝 的 套 件 先 編 譯 過 , 並 且 打 包 好 , 安 裝 時 RPM 會 先 依 照 套件 裡 的 紀 錄 資 料 查 詢 相 依 屬 性 套 件 是 否 滿 足 , 若 滿 足 則 予 以 安 裝 , 若 不滿 足 則 不 予 安 裝 。2. RPM 套 件 的 屬 性 相 依(a) RPM 打 包 套 件 檔 案 時 , 會 同 時 加 入 套 件 的 訊 息 。 例 如 :i. 版 本 、ii. 打 包 套 件 者 、iii. 相 依 屬 性 的 套 件 、iv. 套 件 的 功 能 說 明 、v. 套 件 的 所 有 檔 案 與 目 錄 紀 錄 。(b) 在 <strong>Linux</strong> 系 統 上 亦 建 立 一 個 RPM 套 件 資 料 庫 。(c) 當 要 安 裝 某 個 以 RPM 型 態 提 供 的 套 件 時 , 如 果 資 料 庫 顯 示 其 相 依 套 件不 存 在 , 則 會 顯 示 錯 誤 訊 息 。(d) 屬 性 相 依 的 克 服 方 式i. 手 動 下 載 並 安 裝 好 所 有 相 依 套 件 。ii. 利 用 urpmi 安 裝 rpm 套 件 : 自 行 尋 找 未 安 裝 的 相 依 套 件 加 以 安裝 。De-Yu Wang CSIE CYUT 171


14.1. RPM 與 SRPM 套 件 CHAPTER 14. RPM 套 件 下 載 安 裝3. RPM 的 格 式 :✞name-version-release.architecture.rpm✡✝


14.2. RPM 套 件 管 理 程 式 CHAPTER 14. RPM 套 件 下 載 安 裝14.2 RPM 套 件 管 理 程 式1. rpm 指 令(a) 基 本 功 能 : 套 件 安 裝 、 升 級 、 更 新 、 移 除 、 查 詢 及 數 位 簽 章 驗 證 及 檢查 。✞INSTALLING, UPGRADING, AND REMOVING PACKAGES:谲 rpm {-i|--install} [install-options] PACKAGE_FILE ...rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...谴 rpm {-F|--freshen} [install-options] PACKAGE_FILE ...rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]谶 [--notriggers] [--repackage] [--test] PACKAGE_NAME ...QUERYING AND VERIFYING PACKAGES:谸rpm {-q|--query} [select-options] [query-options]rpm {-V|--verify} [select-options] [verify-options]谱 谰 rpm --import PUBKEY ...rpm {-K|--checksig} [--nosignature] [--nodigest]谱 谲 PACKAGE_FILE ...✡✝✆(b) 一 般 選 項 : 適 用 於 所 有 模 式✞-?, --help : 列 出 輔 助 訊 息谲 --version : 列 出 rpm 版 本--quiet : 僅 列 出 錯 誤 訊 息谴 -v : 察 看 更 細 部 的 安 裝 資 訊-vv : 列 出 大 量 除 錯 訊 息谶 --pipe CMD : 將 rpm 的 輸 出 以 管 線 處 理 送 到 命 令 CMD✡✝✆2. RPM 套 件 安 裝(a) 安 裝 選 項 以 -i 開 頭✞rpm {-i|--install} [install-options] PACKAGE_FILE ...谲 install-:options-h : 以 安 裝 資 訊 列 顯 示 安 裝 進 度谴 --: 不 要 去 檢 查 nodeps rpm 套 件 的 相 依 性 。--: 不 要 檢 查 nomd5 rpm 套 件 的 MD5 資 訊 。谶 --: 不 想 讓 該 套 件 自 行 啟 用 或 者 自 行 執 行 某 些 系 統 指 令 。noscripts--: 直 接 覆 蓋 已 存 在 的 檔 案 。replacefiles谸 --: 重 新 安 裝 某 個 已 經 安 裝 過 的 套 件 。replacepkgs--:force--replacefiles 與 --replacepkgs 。De-Yu Wang CSIE CYUT 173


14.2. RPM 套 件 管 理 程 式 CHAPTER 14. RPM 套 件 下 載 安 裝谱 谰 --: 測 試 套 件 是 否 可 以 被 安 裝 到 使 用 者 的 test <strong>Linux</strong> 環 境 當 中 。--prefix : 安 裝 到 新 目 錄 NEWPATH NEWPATH✡✝✆(b) 安 裝 rp-pppoe-3.1-5.i386.rpm✞谱 [root@linux ~]# rpm -ivh rp-pppoe-3.1-5.i386.rpmPreparing... #######################################[100%]谳 1:rp-pppoe #######################################✡✝[100%]✆(c) 一 次 安 裝 兩 個 以 上 的 套 件 :✞谱 [root@linux ~]# rpm -ivh a.i386.rpm b.i386.rpm *.rpm# 後 面 直 接 接 上 許 多 的 套 件 檔 案 。✡✝✆(d) 直 接 由 網 路 http://ftp.isu.edu.tw 安 裝 套 件 logrotate:✞[root@dywHome2 ~]# rpm -ivh http://ftp.isu.edu.tw/pub/<strong>Linux</strong>/Mandriva\谲 >/official/2007.0/i586/media/main/release/logrotate-3.7.3-4mdk.i586.rpm✡✝✆(e) 測 試 FlashPlayer 是 否 可 以 被 安 裝 在 目 前 作 業 環 境 :✞[root@dywHome2 ~]# rpm -ivh FlashPlayer-9.0.21.78-1.mdv2007.0.mde.i586.rpm --test谲 Preparing... ########################################### [100%]✡✝✆3. RPM 套 件 升 級 與 更 新(a) 升 級 選 項 以 -U 開 頭 , 更 新 選 項 以 -F 開 頭 :De-Yu Wang CSIE CYUT 174


14.2. RPM 套 件 管 理 程 式 CHAPTER 14. RPM 套 件 下 載 安 裝✞rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...谲 rpm {-F|--freshen} [install-options] PACKAGE_FILE ...install-:options 與 安 裝 相 同✡✝✆(b) 升 級 更 新 與 安 裝 之 差 異 :i. 升 級 後 所 有 舊 版 套 件 皆 被 移 除 ;ii. 若 舊 版 未 安 裝 , 則 無 法 更 新 , 即 套 件 不 會 被 安 裝 。(c) 目 前 系 統 未 安 裝 套 件 baghira 情 況 下 , 以 選 項 -U 安 裝 :✞[root@dywOffice rpm]# rpm -Uvh baghira-0.7-2.2006mcnl.i586.rpm谲 Preparing... ########################################### [100%]1:baghira ########################################### [100%]✡✝✆(d) 目 前 系 統 未 安 裝 套 件 baghira 情 況 下 , 以 選 項 -F 安 裝 舊 版 :✞谱 [root@dywOffice rpm]# rpm -Fvh baghira-0.7-2.2006mcnl.i586.rpm[root@dywOffice rpm]# rpm -Fvh baghira-0.7-0arn.20060mdk.i586.rpm✡✝✆(e) 目 前 系 統 已 安 裝 套 件 baghira 情 況 下 , 以 選 項 -F 升 級 :✞[root@dywOffice rpm]# rpm -Fvh baghira-0.7-7arn.cvs20051211.20060mdk.i586.rpm谲 Preparing... ########################################### [100%]1:baghira ########################################### [100%]✡✝✆4. RPM 套 件 移 除(a) 移 除 選 項 :De-Yu Wang CSIE CYUT 175


14.2. RPM 套 件 管 理 程 式 CHAPTER 14. RPM 套 件 下 載 安 裝谱✞rpm {-e|--erase} [--allmatches] [--nodeps] [--test]PACKAGE_NAME ...谳 --: 不 要 去 檢 查 nodeps rpm 套 件 的 相 依 性 。--: 只 是 測 試 , 不 是 真 的 移 除 套 件 。 常 與 一 般 選 項 test -vv 一 起 使 用 來除 錯✡✝✆(b) 測 試 是 否 可 移 除 mplayer:✞[root@dywHome2 rpm]# rpm -e mplayer --test谲 error: Failed dependencies:mplayer is needed by (installed) kplayer-0.5.3-5mdv2007.0.i586✡✝✆(c) 測 試 不 要 檢 查 rpm 套 件 的 相 依 性 下 , 是 否 可 移 除 mplayer:✞谱 [root@dywHome2 rpm]# rpm -e mplayer --test --nodeps✡✝✆(d) 移 除 套 件 baghira:✞谱 [root@dywHome2 rpm]# rpm -e baghira✡✝✆5. RPM 查 詢 : 選 項 以 -q 開 頭 。(a) 查 詢 已 安 裝 套 件 資 訊 的 選 項 :谱谳✞[root@linux ~]# rpm -qa[root@linux ~]# rpm -q[licdR] 已 安 裝 的 套 件 名 稱[root@linux ~]# rpm -qf 存 在 於 系 統 上 面 的 某 個 檔 案谵 -q : 僅 查 詢 , 後 面 接 的 套 件 名 稱 是 否 有 安 裝 ;-qa : 列 出 所 有 已 經 安 裝 在 本 機 <strong>Linux</strong> 系 統 上 面 的 套 件 名 稱 ;谷 -qi : 列 出 該 套 件 的 詳 細 資 訊 (information), 包 含 開 發 商 、 版 本 與 說明 等 ;-ql : 列 出 該 套 件 所 有 的 檔 案 與 目 錄 所 在 完 整 檔 名 (list);谹 -qc : 列 出 該 套 件 的 所 有 設 定 檔 僅 找 出 在 ( /etc/ 底 下 的 檔 名 )-qd : 列 出 該 套 件 的 所 有 說 明 檔 僅 找 出 與 ( man 有 關 的 檔 案 )谱 谱 -qR : 列 出 與 該 套 件 有 關 的 相 依 套 件 所 含 的 檔 案 (Required )De-Yu Wang CSIE CYUT 176


14.2. RPM 套 件 管 理 程 式 CHAPTER 14. RPM 套 件 下 載 安 裝-qf : 由 後 面 接 的 檔 案 名 稱 , 找 出 該 檔 案 屬 於 哪 一 個 已 安 裝 的 套 件 ;✡✝✆(b) 查 詢 未 安 裝 套 件 資 訊 的 選 項 :✞[root@linux ~]# rpm -qp[licdR] 未 安 裝 的 某 個 檔 案 名 稱谲 -qp[icdlR: 後 面 接 的 所 有 參 數 以 上 面 的 說 明 一 致 。]✡✝✆(c) 找 出 是 否 有 安 裝 套 件 logrotate?✞[root@linux ~]# rpm -q logrotate # 不 必 加 上 版 本 。谲 logrotate-3.7.1-10[root@linux ~]# rpm -q logrotating谴 package logrotating is not installed✡✝✆(d) 列 出 套 件 logrotate 的 所 有 目 錄 與 檔 案 :✞[root@linux ~]# rpm -ql logrotate谲 /etc/cron.daily/logrotate/etc/logrotate.conf 以 下 省 略谴 ............✡✝✆(e) 列 出 套 件 logrotate 的 相 關 說 明 資 料 :✞[root@linux ~]# rpm -qi logrotate谲 Name : logrotate Relocations: (not relocatable)Version : 3.7.1 Vendor: Red Hat, Inc.谴 Release : 10 Build Date: Fri Apr 1 03:54:422005Install Date: Sat Jun 25 08:28:26 2005 Build Host: tweety.build.redhat.com谶 Group : 系 統 環 境 基礎 / Source RPM: logrotate-3.7.1-10.src.rpmSize : 47825 License: GPL谸 Signature : DSA/SHA1, Sat May 21 01:34:11 2005, Key IDb44269d04f2a6fd2Packager : Red Hat, Inc. 谱 谰 Summary : 循 環 、 壓 縮 、 移 除 以 及 郵 寄 系 統 紀 錄 檔 案 。Description :De-Yu Wang CSIE CYUT 177


14.2. RPM 套 件 管 理 程 式 CHAPTER 14. RPM 套 件 下 載 安 裝谱 谲谱 谴谱 谶The logrotate utility is designed to simplify theadministration oflog files on a system which generates a lot of log files.Logrotateallows for the automatic rotation, compression, removal, andmailing oflog files. Logrotate can be set to handle a log file daily,weekly,monthly, or when the log file gets to a certain size.Normally,logrotate runs as a daily cron job.✡✝✆(f) 查 詢 mplayer 的 設 定 檔✞谱 [root@dywHome2 ~]# rpm -qc mplayer/etc/mplayer/codecs.conf谳 /etc/mplayer/input.conf/etc/mplayer/menu.conf谵 /etc/mplayer/mplayer.conf✡✝✆(g) 查 詢 mplayer 的 說 明 檔✞谱 [root@dywHome2 ~]# rpm -qd mplayer/usr/share/doc/mplayer-1.0/AUTHORS谳 /usr/share/doc/mplayer-1.0/ChangeLog/usr/share/doc/mplayer-1.0/Copyright谵 /usr/share/doc/mplayer-1.0/HTML/cs/advaudio.html/usr/share/doc/mplayer-1.0/HTML/cs/aspect.html谷 /usr/share/doc/mplayer-1.0/HTML/cs/audio-codecs.html/usr/share/doc/mplayer-1.0/HTML/cs/audio-formats.html 以 下 省 略谹 --------✡✝✆(h) 查 詢 logrotate 相 依 套 件✞谱 [root@linux ~]# rpm -qR logrotate/bin/sh谳 config(logrotate) = 3.7.1-10libc.so.6 以 下 省 略谵 --------✡✝✆De-Yu Wang CSIE CYUT 178


14.2. RPM 套 件 管 理 程 式 CHAPTER 14. RPM 套 件 下 載 安 裝(i) 查 詢 /bin/sh 是 由 那 個 套 件 提 供 ?✞谱 [root@linux ~]# rpm -qf /bin/shbash-3.0-31谳 # 參 數 後 面 接 的 是 『 檔 案 』, 不 是 接 套 件 。✡✝✆(j) 查 詢 套 件 kplayer ( 未 安 裝 ) 之 相 依 套 件 ?✞谱 [root@dywHome2 rpm]# rpm -qpR kplayer-0.5.3-5mdv2007.0.i586.rpmmplayer谳 kdelibs-common/bin/sh谵 /bin/shrpmlib(PayloadFilesHavePrefix) --replacepkgs✡✝✆(m) 如 果 誤 刪 /etc/crontab, 如 何 查 詢 它 屬 於 那 個 套 件 , 以 重 新 安 裝 ?De-Yu Wang CSIE CYUT 179


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝✞谱 # 雖 然 檔 案 /etc/crontab 已 不 存 在 , 但 /var/lib/rpm 資 料 庫 中 有 記錄 :[root@dywHome2 ~]# rpm -qf /etc/crontab谳 crontabs-1.10-6mdk✡✝✆(n) 查 詢 系 統 中 含 player 字 串 的 套 件 ?✞谱 [root@dywHome2 rpm]# rpm -qa | grep playermplayer-1.0-1.pre8.13.2mdv2007.0谳 kplayer-0.5.3-5mdv2007.0✡✝✆(o) 如 何 知 道 系 統 中 以 c 開 頭 的 套 件 有 幾 個 ?✞谱 [root@dywHome2 rpm]# rpm -qa | grep ^c | wc -l15✡✝✆14.3 YUM 線 上 升 級 機 制14.3.1 yum 容 器 設 定1. 撰 寫 yum 的 套 件 容 器 (repository) 設 定 檔 .repo, 以 建 立 yum 安 裝 來 源 。✞[root@demo ~]# cat /etc/yum.repos.d/rhel.repo谲 [rhel]name=Red Hat Enterprise <strong>Linux</strong> 6.0 - x86_64谴 baseurl=ftp://ftp.isu.edu.tw/<strong>Linux</strong>/CentOS/6.0/os/x86_64/enabled=1谶 gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta谸# [base: 容 器 的 名 稱 , 中 刮 號 一 定 要 存 在 , 名 稱 可 以 自 訂 但 不 可 重 覆 。]谱 谰 # : 說 明 這 個 容 器 的 意 義 。name# mirrorlist: 列 出 這 個 容 器 可 以 使 用 的 映 射 站 台 , 如 果 不 想 使 用 , 可 以 註 解到 這 行 ;=谱 谲 # baseurl: 指 定 固 定 容 器 的 實 際 網 址 。=# enable: 啟 動 容 器 。 如 果 不 想 啟 動 可 以 使 用 =1 enable。=0谱 谴 # gpgcheck: 指 定 是 否 需 要 查 閱 =1 RPM 檔 案 內 的 數 位 簽 章 。# gpgkey: 數 位 簽 章 的 公 鑰 檔 所 在 位 置 。=✡✝✆De-Yu Wang CSIE CYUT 180


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝2. 列 出 yum 使 用 的 所 有 容 器✞谱 [root@demo ~]# yum repolist allrepo id repo namestatus谳 rhel Red Hat Enterprise <strong>Linux</strong> 6.0enabled: 6,019rhel-beta Red Hat Enterprise <strong>Linux</strong> 6.0 Betaenabled: 1,042谵 repolist: 7,061✡✝✆3. 容 器 資 料 刪 除谱谳谵✞[root@demo ~]# yum clean [packages|headers|all] 選 項 與 參 數 :: 將 已下 載 的 軟 體 檔 案 刪 除packagesheaders : 將 下 載 的 軟 體 檔 頭 刪 除all : 將 所 有 容 器 資 料 都 刪 除谷 # 刪 除 已 下 載 過 的 所 有 容 器 的 相 關 資 料 含 軟 體 本 身 與 清 單 ()[root@demo ~]# yum clean all✡✝✆14.3.2 yum 查 詢 功 能1. 查 詢 選 項 :✞[root@demo ~]# yum [options] [command] [package ...]谲 [option: 主 要 的 搜 尋 選 項 有 :] 查 詢 工 作 項 目[] 相 關 參 數 : 這 方 面 的 參 數 有 :[]谴 search : 搜 尋 某 個 套 件 名 稱 或 是 描 述 (description) 的 重 要 關 鍵 字 ;list : 列 出 目 前 yum 所 管 理 的 所 有 的 套 件 名 稱 與 版 本 , 有 點 類似 rpm -;qa谶 info : 列 出 套 件 的 相 關 訊 息 , 類 似 rpm -qai 的 執 行 結 果 ;✡✝provides or : 搜 尋 包 含 某 檔 案 的 套 件 , 類 似 whatprovides rpm -qf 的 功能 。✆2. 查 詢 名 稱 或 是 描 述 中 包 含 關 鍵 字 cjk 的 套 件De-Yu Wang CSIE CYUT 181


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝✞谱 [root@demo ~]# yum search cjk================================= Matched: cjk=================================谳 cjkuni-fonts-common.noarch : Common package of CJK Unifontscjkuni-fonts-ghostscript.noarch : Chinese Unicode TrueType fontghostscript谵: filescjkuni-ukai-fonts.noarch : Chinese Unicode TrueType font in Kaiface谷 cjkuni-uming-fonts.noarch : Chinese Unicode TrueType font in Mingfacebitmap-fangsongti-fonts.noarch : Selected CJK bitmap fonts forAnaconda谹 m17n-db-common-cjk.noarch : Common m17n-db files for CJK inputwqy-zenhei-fonts.noarch : WenQuanYi Zen Hei CJK Font谱 谱 wqy-zenhei-fonts-common.noarch : Common files for WenQuanYi ZenHei CJK Fontbitmap-lucida-typewriter-fonts.noarch : Selected CJK bitmap fontsfor Anaconda谱 谳 dvipdfmx.x86_64 : A DVI to PDF translatorpoppler-data.noarch : Encoding files✡✝✆3. 查 看 套 件 cjkuni-ukai-fonts 的 相 關 訊 息✞[root@demo ~]# yum info cjkuni-ukai-fonts谲 Loaded plugins: refresh-packagekit, rhnpluginThis system is not registered with RHN.谴 RHN support will be disabled.Available Packages谶 Name : cjkuni-ukai-fontsArch : noarch谸 Version : 0.2.20080216.1Release : 34.el6谱 谰 Size : 9.4 MRepo : base 在 安 裝 來 源


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝✡✝✆4. 列 出 所 有 evince 開 頭 的 套 件✞[root@demo ~]# yum list evince*谲 Installed Packagesevince.x86_64 2.28.2-14.el6 @anaconda-RedHatEnterprise<strong>Linux</strong>-201009221801.x86_64/6.0谴 evince-dvi.x86_64 2.28.2-14.el6 @anaconda-RedHatEnterprise<strong>Linux</strong>-201009221801.x86_64/6.0evince-libs.x86_64 2.28.2-14.el6 @anaconda-RedHatEnterprise<strong>Linux</strong>-201009221801.x86_64/6.0谶 Available Packagesevince.x86_64 2.28.2-14.el6_0.1 rhel-beta谸 evince-devel.i686 2.28.2-14.el6_0.1 rhel-betaevince-devel.x86_64 2.28.2-14.el6_0.1 rhel-beta谱 谰 evince-dvi.x86_64 2.28.2-14.el6_0.1 rhel-betaevince-libs.i686 2.28.2-14.el6_0.1 rhel-beta谱 谲 evince-libs.x86_64✡✝2.28.2-14.el6_0.1 rhel-beta✆5. 列 出 可 升 級 的 evince 開 頭 的 套 件✞[root@demo ~]# yum list updates evince*谲 Updated Packagesevince.x86_642.28.2-14.el6_0.1rhel-beta谴 evince-dvi.x86_64 2.28.2-14.el6_0.1rhel-betaevince-libs.x86_642.28.2-14.el6_0.1rhel-beta✡✝✆6. 列 出 包 含 檔 案 bin/evince 的 所 有 套 件 , 例 如 /usr/bin/evince谱谳✞[root@demo ~]# yum provides *bin/evincerhel/filelists_dbMB 03:46rhel-beta/filelists_db02:08evince-2.28.2-14.el6.x86_64 : Document viewer| 5.6| 2.6 MBDe-Yu Wang CSIE CYUT 183


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝谵 Repo : rhelMatched from:谷 Filename : /usr/bin/evince谹 evince-2.28.2-14.el6_0.1.x86_64 : Document viewerRepo : rhel-beta谱 谱 Matched from:Filename : /usr/bin/evince谱 谳evince-2.28.2-14.el6.x86_64 : Document viewer谱 谵 Repo : installedMatched from:谱 谷 Filename : /usr/bin/evince✡✝✆14.3.3 yum 安 裝 、 升 級 與 移 除1. 安 裝 / 升 級 選 項✞谱 [root@www ~]# yum command [packages]command:谳 install 安 裝 :reinstall 重 新 安 裝 :谵 update 升 級 , 若 要 整 個 系 統 都 升 級 , 後 不 接 套 件 :✡✝remove 移 除 :✆2. 安 裝谲谴谶谸✞[root@demo ~]# yum install cjkuni-ukai-fontsSetting up Install ProcessResolving Dependencies--> Running transaction check---> Package cjkuni-ukai-fonts.noarch 0:0.2.20080216.1-34.el6 setto be updated--> Finished Dependency ResolutionDependencies Resolved谱 谰 ==================================================================================Package Arch VersionRepository Size谱 谲 ==================================================================================Installing:De-Yu Wang CSIE CYUT 184


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝谱 谴 cjkuni-ukai-fonts noarch 0.2.20080216.1-34.el6rhel9.4 M谱 谶Transaction Summary==================================================================================谱 谸 Install 1 Package(s)Upgrade 0 Package(s)谲 谰Total download size: 9.4 M谲 谲 Installed size: 17 MIs this ok [y/N]: y谲 谴 Downloading Packages:cjkuni-ukai-fonts-0.2.20080216.1-34.el6.noarch.rpm| 9.4 MB 00:41谲 谶 Running rpm_check_debugRunning Transaction Test谲 谸 Transaction Test SucceededRunning Transaction谳 谰 Installing : cjkuni-ukai-fonts-0.2.20080216.1-34.el6.noarch1/1谳 谲谳 谴Installed:cjkuni-ukai-fonts.noarch 0:0.2.20080216.1-34.el6Complete!✡✝✆3. 移 除 功 能 :yum [remove] 軟 體谱谳谵谷✞[root@demo ~]# yum remove cjkuni-ukai-fontsResolving Dependencies--> Running transaction check---> Package cjkuni-ukai-fonts.noarch 0:0.2.20080216.1-34.el6 setto be erased--> Finished Dependency ResolutionDependencies Resolved谹 ==================================================================================Package Arch VersionRepositorySize谱 谱 ==================================================================================Removing:谱 谳 cjkuni-ukai-fonts noarch 0.2.20080216.1-34.el6 @base/6Server 17 MDe-Yu Wang CSIE CYUT 185


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝谱 谵Transaction Summary==================================================================================谱 谷 Remove 1 Package(s)Reinstall 0 Package(s)谱 谹 Downgrade 0 Package(s)谲 谱谲 谳谲 谵谲 谷谲 谹谳 谱谳 谳Is this ok [y/N]: yDownloading Packages:Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning TransactionWarning: RPMDB altered outside of yum.kernel-firmware-2.6.32-71.29.1.el6.noarch is a duplicate withkernel-firmware-2.6.32-71.el6.noarchrhn-check-1.0.0-38.el6.noarch has missing requires of yum-rhnplugin>= (’0’, ’0.5.3’, ’30’)Erasing : cjkuni-ukai-fonts-0.2.20080216.1-34.el6.noarch1/1Removed:cjkuni-ukai-fonts.noarch 0:0.2.20080216.1-34.el6谳 谵Complete!✡✝✆14.3.4 yum 群 組 套 件 處 理1. 套 件 群 組 安 裝 / 移 除✞谱 [root@www ~]# yum command [package group]command:谳 groupinfo : Display details about a package groupgroupinstall: Install the packages in a group on your system谵 grouplist : List available package groups✡✝groupremove : Remove the packages in a group from your system✆2. 查 看 所 有 套 件 群 組谲✞[root@demo ~]# yum grouplistLoading mirror speeds from cached hostfilerhel/group_gz207 kB 00:00|De-Yu Wang CSIE CYUT 186


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝谴 Installed Groups:Arabic Support谶 Armenian SupportBhutanese Support谸 Chinese SupportConsole internet tools 省 略谱 谰 ----Available Groups:谱 谲 Additional DevelopmentAfrikaans Support谱 谴 Albanian SupportAmazigh Support谱 谶 Assamese SupportAzerbaijani Support谱 谸 Backup ClientBackup Server谲 谰 Base 省 略----谲 谲 Done✡✝✆3. 查 看 套 件 群 組 的 訊 息✞[root@demo ~]# yum groupinfo "backup client"谲 Group: Backup ClientDescription: Client tools for connecting to a backup server anddoing backups.谴 Mandatory Packages:amanda-client谶 Optional Packages:bacula-client✡✝✆4. 安 裝 套 件 群 組谱谳谵谷✞[root@demo ~]# yum groupinstall "backup client"Setting up Group ProcessResolving Dependencies--> Running transaction check---> Package amanda-client.x86_64 0:2.6.1p2-7.el6 set to beupdated--> Processing Dependency: amanda = 2.6.1p2-7.el6 for package:amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: perl(Amanda::Debug) for package:amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: perl(Amanda::Config) for package:amanda-client-2.6.1p2-7.el6.x86_64De-Yu Wang CSIE CYUT 187


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝谹谱 谱谱 谳谱 谵谱 谷谱 谹谲 谱谲 谳谲 谵--> Processing Dependency: perl(Amanda::Constants) for package:amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: perl(Amanda::Util) for package: amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: perl(Amanda::Paths) for package:amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: libamandad-2.6.1p2.so()(64bit) forpackage: amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: librestore-2.6.1p2.so()(64bit) forpackage: amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: libamclient-2.6.1p2.so()(64bit) forpackage: amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: libamserver-2.6.1p2.so()(64bit) forpackage: amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: libamanda-2.6.1p2.so()(64bit) forpackage: amanda-client-2.6.1p2-7.el6.x86_64--> Processing Dependency: libamdevice-2.6.1p2.so()(64bit) forpackage: amanda-client-2.6.1p2-7.el6.x86_64--> Running transaction check---> Package amanda.x86_64 0:2.6.1p2-7.el6 set to be updated--> Processing Dependency: xinetd for package: amanda-2.6.1p2-7.el6.x86_64--> Running transaction check---> Package xinetd.x86_64 2:2.3.14-29.el6 set to be updated--> Finished Dependency ResolutionDependencies Resolved谲 谷 ==================================================================================Package Arch VersionRepository Size谲 谹 ==================================================================================Installing:谳 谱 amanda-client x86_64 2.6.1p2-7.el6rhel203 kInstalling for dependencies:谳 谳 amanda x86_64 2.6.1p2-7.el6rhel546 kxinetd x86_64 2:2.3.14-29.el6rhel120 k谳 谵Transaction Summary谳 谷 ==================================================================================Install 3 Package(s)谳 谹 Upgrade 0 Package(s)谴 谱Total download size: 869 kInstalled size: 2.6 MDe-Yu Wang CSIE CYUT 188


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝谴 谳谴 谵谴 谷谴 谹Is this ok [y/N]: yDownloading Packages:(1/3): amanda-2.6.1p2-7.el6.x86_64.rpm| 546 kB 00:02(2/3): amanda-client-2.6.1p2-7.el6.x86_64.rpm| 203 kB 00:00(3/3): xinetd-2.3.14-29.el6.x86_64.rpm| 120 kB 00:00----------------------------------------------------------------------------------Total153 kB/s | 869 kB 00:05Running rpm_check_debug谵 谱 Running Transaction TestTransaction Test Succeeded谵 谳 Running TransactionInstalling : 2:xinetd-2.3.14-29.el6.x86_641/3谵 谵 Installing : amanda-2.6.1p2-7.el6.x86_642/3Installing : amanda-client-2.6.1p2-7.el6.x86_643/3谵 谷Installed:谵 谹 amanda-client.x86_64 0:2.6.1p2-7.el6谶 谱谶 谳Dependency Installed:amanda.x86_64 0:2.6.1p2-7.el62:2.3.14-29.el6Complete!✡✝xinetd.x86_64✆5. 移 除 套 件 群 組谲谴谶谸谱 谰✞[root@demo ~]# yum groupremove "backup client"Setting up Group ProcessLoading mirror speeds from cached hostfileResolving Dependencies--> Running transaction check---> Package amanda-client.x86_64 0:2.6.1p2-7.el6 set to beerased--> Finished Dependency ResolutionDependencies Resolved==================================================================================De-Yu Wang CSIE CYUT 189


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝==================================================================================谱 谲 Package Arch VersionRepository Size谱 谴 Removing:amanda-client x86_64 2.6.1p2-7.el6@rhel604 k谱 谶Transaction Summary谱 谸 ==================================================================================Remove 1 Package(s)谲 谰 Reinstall 0 Package(s)Downgrade 0 Package(s)谲 谲Is this ok [y/N]: y谲 谴 Downloading Packages:Running rpm_check_debug谲 谶 Running Transaction TestTransaction Test Succeeded谲 谸 Running TransactionErasing : amanda-client-2.6.1p2-7.el6.x86_641/1谳 谰Removed:谳 谲 amanda-client.x86_64 0:2.6.1p2-7.el6谳 谴Complete!✡✝✆14.3.5 清 除 無 用 套 件1. 尋 找 不 使 用 的 孤 兒 套 件✞[root@www ~]# package-cleanup --problems or --leaves or --orphansor --oldkernels谲 --problems : 列 出 套 件 相 依 問 題--orphans : 列 出 孤 兒 套 件 , 亦 即 不 屬 於 任 何 容 器 。谴 --dupes : 掃 瞄 重 覆 套 件--leaves : 列 出 樹 葉 節 點 (leaf nodes) 套 件 , 刪 除 前 要 先 確 定 此 套 件 是否 真 的 不 需 要 。谶 --oldkernels: 移 除 舊 核 心 及 核 心 發 展 套 件✡✝✆2. 確 定 尋 找 工 具 套 件 已 安 裝De-Yu Wang CSIE CYUT 190


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝✞[root@demo ~]# whereis package-cleanup谲 package-cleanup: /usr/bin/package-cleanup /usr/share/man/man1/package-cleanup.1.gz[root@demo ~]# rpm -qf /usr/bin/package-cleanup谴 yum-utils-1.1.26-11.el6.noarch✡✝✆3. 列 出 套 件 相 依 問 題✞[root@demo ~]# package-cleanup --problems谲 Package rhn-check-1.0.0-38.el6.noarch requires yum-rhn-plugin >=(’0’, ’0.5.3’, ’30’)✡✝✆4. 列 出 孤 兒 套 件✞[root@demo yum.repos.d]# package-cleanup --orphans谲 kernel-2.6.32-71.29.1.el6.x86_64kernel-firmware-2.6.32-71.29.1.el6.noarch谴 pexpect-2.3-6.el6.noarchyum-3.2.27-14.el6.centos.noarch✡✝✆5. 列 出 樹 葉 節 點 (leaf nodes) 套 件✞谱 [root@demo ~]# package-cleanup --leavesliberation-mono-fonts-1.05.1.20090721-4.el6.noarch谳 liberation-serif-fonts-1.05.1.20090721-4.el6.noarchlibertas-usb8388-firmware-5.110.22.p23-3.1.el6.noarch✡✝✆De-Yu Wang CSIE CYUT 191


14.3. YUM 線 上 升 級 機 制 CHAPTER 14. RPM 套 件 下 載 安 裝De-Yu Wang CSIE CYUT 192


CHAPTER 15.系 統 紀 錄Chapter 15系 統 紀 錄15.1 rsyslogd1. 查 看 rsyslog 服 務 是 否 啟 動 ?✞[root@deyu ~]# ps aux | grep rsyslog谲 root 1736 0.0 0.0 248588 1448 ? Sl 19:51 0:00/sbin/rsyslogd -c 4[root@deyu ~]# chkconfig --list rsyslog谴 rsyslog 0:off 1:off 2:on 3:on 4:on 5:on6:off✡✝✆2. rsyslog 服 務 的 設 定 檔✞[root@deyu ~]# cat /etc/rsyslog.conf谲 #### RULES ####谴 # Log all kernel messages to the console.# Logging much else clutters up the screen.谶 #kern.* /dev/console谸 # Log anything (except mail) of level info or higher.# Don’t log private authentication messages!谱 谰 *.info;mail.none;authpriv.none;cron.none /var/log/messages谱 谲谱 谴# The authpriv file has restricted access.authpriv.*secure# Log all the mail messages in one place./var/log/De-Yu Wang CSIE CYUT 193


15.2. LOGROTATE CHAPTER 15. 系 統 紀 錄谱 谶 mail.* -/var/log/maillog## 表 示 先 儲 存 在 "-", 等 資 料 量 夠 大 才 一 次 性 寫 入 磁 碟 。buffer谱 谸 # Log cron stuffcron.*/var/log/cron谲 谰# Everybody gets emergency messages谲 谲 *.emerg *## 產 生 最 嚴 重 錯 誤 等 級 時 , 將 訊 息 廣 播 給 所 有 登 入 的 帳 號 。谲 谴 # Save news errors of level crit and higher in a special file.uucp,news.crit/var/log/spooler谲 谶# Save boot messages also to boot.log谲 谸 local7.* /var/log/✡✝boot.log✆3. rsyslog.conf 使 用 手 冊✞[root@deyu ~]# man 5 rsyslog.conf✡✝✆15.2 logrotate1. logrotate 每 日 執 行 一 次✞谱 [root@deyu ~]# find /etc/cron* -name logrotat*/etc/cron.daily/logrotate谳 [root@deyu ~]# cat /etc/cron.daily/logrotate#!/bin/sh谵/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1谷 EXITVALUE=$?if [ $EXITVALUE != 0 ]; then谹 /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"fi谱 谱 exit 0✡✝✆2. logrotate 服 務 的 設 定 檔De-Yu Wang CSIE CYUT 194


15.2. LOGROTATE CHAPTER 15. 系 統 紀 錄✞谱 [root@deyu ~]# cat /etc/logrotate.conf# see "man logrotate" for details谳 # rotate log files weeklyweekly谵 # keep 4 weeks worth of backlogsrotate 4谷 # create new (empty) log files after rotating old onescreate谹 # use date as a suffix of the rotated filedateext谱 谱 # uncomment this if you want your log files compressed#compress谱 谳 # RPM packages drop log rotation information into this directoryinclude /etc/logrotate.d谱 谵 # no packages own wtmp and btmp -- we’ll rotate them here/var/log/wtmp {谱 谷 monthlycreate 0664 root utmp谱 谹 minsize 1Mrotate 1谲 谱 }/var/log/btmp {谲 谳 missingokmonthly谲 谵 create 0600 root utmprotate 1谲 谷 }# system-specific logs may be also be configured here.✡✝✆3. logrotate 使 用 手 冊✞[root@deyu ~]# man logrotate✡✝✆4. 測 試 logrotate谱谳谵谷谹✞[root@deyu ~]# logrotate -v /etc/logrotate.confreading config file /etc/logrotate.confincluding /etc/logrotate.dreading config file cupsreading config info for /var/log/cups/*_logreading config file httpdreading config info for /var/log/httpd/*log........Handling 13 logsDe-Yu Wang CSIE CYUT 195


15.2. LOGROTATE CHAPTER 15. 系 統 紀 錄谱 谱 rotating pattern: /var/log/httpd/*log weekly (4 rotations)empty log files are not rotated, old logs are removed谱 谳 considering log /var/log/httpd/access_loglog does not need rotating谱 谵 considering log /var/log/httpd/error_loglog does not need rotating谱 谷 not running postrotate script, since no logs were rotated......谱 谹 considering log /var/log/messageslog does not need rotating谲 谱 ......rotating pattern: /var/log/wtmp monthly (1 rotations)谲 谳 empty log files are rotated, only log files >= 1048576 bytes arerotated, old logs are removedconsidering log /var/log/wtmp谲 谵 log does not need rotating✡✝✆De-Yu Wang CSIE CYUT 196


CHAPTER 16.MANAGING PROCESSESChapter 16Managing Processes16.1 Monitoring Processes1. 程 序 (process): 在 系 統 中 觸 發 任 何 一 個 事 件 時 , 都 會 將 其 定 義 為 一 個 程 序 並給 一 個 ID, 即 PID(Process ID)。2. 某 一 程 式 佔 用 太 多 的 系 統 資 源 , 造 成 系 統 變 得 很 慢 時 , 能 否 找 出 最 耗 系 統 的程 序 , 刪 除 該 程 序 讓 系 統 恢 復 正 常 ?3. ps 觀 查 程 序✞谱 [root@deyu ~]# psPID TTYTIME CMD谳 2960 pts/1 00:00:00 su3019 pts/1 00:00:00 bash谵 6522 pts/1 00:00:00 ps谷 [root@deyu ~]# ps --help********* simple selection ********* ***谹 ....a all w/ tty, including other users ...谱 谱 x processes w/o controlling ttys ...-l,l long u user-oriented ...谱 谳 ........谱 谵 [root@deyu ~]# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIMECOMMAND谱 谷 root 1 0.0 0.0 21336 1436 ? Ss 06:41 0:00/sbin/initroot 2 0.0 0.0 0 0 ? S 06:41 0:00[kthreadd]谱 谹 root 3 0.0 0.0 0 0 ? S 06:41 0:00[migration/0].......De-Yu Wang CSIE CYUT 197


16.2. TERMINATING PROCESSES CHAPTER 16. MANAGING PROCESSES✡✝✆4. top 觀 察 程 序✞[root@deyu ~]# top谲top - 15:56:47 up 9:15, 9 users, load average: 0.00, 0.00,0.00谴 Tasks: 210 total, 2 running, 208 sleeping, 0 stopped, 0zombieCpu(s): 2.0%us, 1.3%sy, 0.0%ni, 96.6%id, 0.0%wa, 0.0%hi,0.0%si, 0.0%st谶 Mem: 3021464k total, 1239316k used, 1782148k free, 101984kbuffersSwap: 253936k total, 0k used, 253936k free, 458520kcached谸PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND谱 谰 2664 dywang 20 0 309m 18m 12m S 3.2 0.6 0:16.62gnome-terminal2419 root 20 0 175m 33m 12m S 2.9 1.1 3:30.19 Xorg谱 谲 3191 dywang 20 0 938m 196m 38m S 0.5 6.6 9:58.24firefox谱 谴 ## h key provides more information## M key orders processes by memory use谱 谶 ## P key orders processes by CPU use## q key quit top✡✝✆16.2 Terminating Processes1. kill 直 接 送 一 個 訊 號 (signal) 給 該 PID,kill -l 查 閱 訊 號 代 號 。✞谱 [root@deyu ~]# kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP谳 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM谵 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP......✡✝✆De-Yu Wang CSIE CYUT 198


16.2. TERMINATING PROCESSES CHAPTER 16. MANAGING PROCESSES代 號 名 稱 內 容1 SIGHUP 代 表 『 讓 該 PID 重 新 讀 取 自 己 的 設 定 檔 』, 類似 重 新 啟 動 。9 SIGKILL 代 表 強 制 中 斷 一 個 程 序 的 進 行 。15 SIGTERM 以 正 常 的 結 束 程 序 來 終 止 該 程 序 , 預 設 值 。2. kill: 程 序 的 刪 除 。✞[root@deyu ~]# top &谲 [1] 11925[root@deyu ~]# ps aux | grep [^a-z]top谴 root 11925 0.0 0.0 12704 732 pts/1 T 16:26 0:00toproot 11938 0.0 0.0 103156 892 pts/1 S+ 16:26 0:00grep --color [^a-z]top谶[1]+ Stopped top谸 [root@deyu ~]# kill -15 11925[root@deyu ~]# ps aux | grep [^a-z]top谱 谰 root 11925 0.0 0.0 12704 732 pts/1 T 16:26 0:00toproot 11962 0.0 0.0 103152 908 pts/1 S+ 16:28 0:00grep --color [^a-z]top谱 谲[root@deyu ~]# kill -9 11925谱 谴 [1]+ Killed top[root@deyu ~]# ps aux | grep [^a-z]top谱 谶 root 11993 0.0 0.0 103152 904 pts/1 S+ 16:31 0:00✡✝grep --color [^a-z]top✆3. killall: 以 指 令 名 稱 刪 除 程 序 。✞[root@deyu ~]# top &谲 [1] 12038[root@deyu ~]# ps aux | grep [^a-z]top谴 root 12038 0.0 0.0 12704 732 pts/1 T 16:34 0:00toproot 12040 0.0 0.0 103152 904 pts/1 S+ 16:34 0:00grep --color [^a-z]top谶[1]+ Stopped top谸[root@deyu ~]# killall top[root@deyu ~]# ps aux | grep [^a-z]top谱 谰 root 12038 0.0 0.0 12704 732 pts/1 T 16:34 0:00topDe-Yu Wang CSIE CYUT 199


16.3. 程 序 的 執 行 序 CHAPTER 16. MANAGING PROCESSES谱 谲root 12043 0.0 0.0 103152 844 pts/1 R+ 16:34 0:00grep --color [^a-z]top[root@deyu ~]# killall --signal 15 top谱 谴 [root@deyu ~]# ps aux | grep [^a-z]toproot 12038 0.0 0.0 12704 732 pts/1 T 16:34 0:00top谱 谶 root 12058 0.0 0.0 103152 908 pts/1 S+ 16:35 0:00grep --color [^a-z]top谱 谸 [root@deyu ~]# killall --signal 9 top[1]+ Killed top谲 谰 [root@deyu ~]# ps aux | grep [^a-z]toproot 12172 0.0 0.0 103152 904 pts/1 S+ 16:39 0:00grep --color [^a-z]top✡✝✆16.3 程 序 的 執 行 序1. nice 值(a) 一 般 使 用 者 的 nice 值 為 0 ~ 19;(b) root 可 用 的 nice 值 為 -20 ~ 19;2. 觀 察 priority 與 CPU 使 用 關 係✞谱 ##terminal 1-1[root@deyu ~]# cat /dev/zero > /dev/null &谳 [1] 12977[root@deyu ~]# cat /dev/zero > /dev/null &谵 [2] 12978[root@deyu ~]# cat /dev/zero > /dev/null &谷 [3] 12979[root@deyu ~]# cat /dev/zero > /dev/null &谹 [4] 12980谱 谱 ##terminal 2-1[root@deyu ~]# top谱 谳top - 17:33:03 up 10:51, 9 users, load average: 2.42, 0.68,0.23谱 谵 Tasks: 214 total, 5 running, 209 sleeping, 0 stopped, 0zombieCpu(s): 3.2%us, 96.8%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi,0.0%si, 0.0%st谱 谷 Mem: 3021464k total, 1293324k used, 1728140k free, 105432kbuffersDe-Yu Wang CSIE CYUT 200


16.3. 程 序 的 執 行 序 CHAPTER 16. MANAGING PROCESSESSwap: 253936k total, 0k used, 253936k free, 470852kcached谱 谹PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND谲 谱 12977 root 20 0 98.5m 552 444 R 49.6 0.0 0:42.67 cat12979 root 20 0 98.5m 552 444 R 49.6 0.0 0:25.05 cat谲 谳 12978 root 20 0 98.5m 552 444 R 49.4 0.0 0:26.92 cat12980 root 20 0 98.5m 552 444 R 49.4 0.0 0:24.55 cat谲 谵 ....谲 谷 ##terminal 1-2[root@deyu ~]# renice -n 10 12977谲 谹 12977: old priority 0, new priority 10谳 谱 ##terminal 2-2....谳 谳 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND12979 root 20 0 98.5m 552 444 R 66.4 0.0 1:47.96 cat谳 谵 12978 root 20 0 98.5m 552 444 R 64.7 0.0 1:48.84 cat12980 root 20 0 98.5m 552 444 R 61.4 0.0 1:45.55 cat谳 谷 12977 root 30 10 98.5m 552 444 R 7.0 0.0 1:34.61 cat谳 谹 ##terminal 1-3[root@deyu ~]# renice -5 12978谴 谱 12978: old priority 0, new priority -5谴 谳 ##terminal 2-3....谴 谵 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND12978 root 15 -5 98.5m 552 444 R 99.8 0.0 5:59.59 cat谴 谷 12979 root 20 0 98.5m 552 444 R 47.0 0.0 5:46.56 cat12980 root 20 0 98.5m 552 444 R 46.9 0.0 5:42.90 cat谴 谹 12977 root 30 10 98.5m 552 444 R 5.4 0.0 2:00.67 cat谵 谱 ##terminal 1-4[root@deyu ~]# nice -n 5 cat /dev/zero > /dev/null &谵 谳 [5] 13130谵 谵 ##terminal 2-4....谵 谷 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND12978 root 15 -5 98.5m 552 444 R 99.7 0.0 8:29.42 cat谵 谹 12980 root 20 0 98.5m 552 444 R 40.2 0.0 6:51.01 cat12979 root 20 0 98.5m 552 444 R 40.1 0.0 6:54.59 cat谶 谱 13130 root 25 5 98.5m 552 444 R 13.1 0.0 0:03.88 cat12977 root 30 10 98.5m 552 444 R 4.2 0.0 2:08.24 cat谶 谳De-Yu Wang CSIE CYUT 201


16.3. 程 序 的 執 行 序 CHAPTER 16. MANAGING PROCESSESr key 12980 4 #renice pid 12980 with nice value 4谶 谵 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND12978 root 15 -5 98.5m 552 444 R 99.7 0.0 9:44.45 cat谶 谷 12979 root 20 0 98.5m 552 444 R 41.0 0.0 7:25.43 cat12980 root 24 4 98.5m 552 444 R 40.9 0.0 7:21.84 cat谶 谹 13130 root 25 5 98.5m 552 444 R 13.3 0.0 0:13.93 cat12977 root 30 10 98.5m 552 444 R 4.4 0.0 2:11.54 cat谷 谱k key 12978 15 # kill pid 12978 with signal 15谷 谳 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND12979 root 20 0 98.5m 552 444 R 98.7 0.0 8:13.12 cat谷 谵 12980 root 24 4 98.5m 552 444 R 47.3 0.0 7:42.19 cat13130 root 25 5 98.5m 552 444 R 35.7 0.0 0:29.89 cat谷 谷 12977 root✡✝30 10 98.5m 552 444 R 11.8 0.0 2:16.78 cat✆De-Yu Wang CSIE CYUT 202


CHAPTER 17.MAINATAING THE KERNELChapter 17Mainataing the Kernel17.1 Architectures and Kernel1. What kernel am I running?✞谱 [root@kvm4 ~]# uname -r2.6.32-71.el6.x86_64✡✝✆2. What architecture am I running on?✞[root@kvm4 ~]# uname -a谲 <strong>Linux</strong> kvm4.deyu.wang 2.6.32-71.el6.x86_64 #1 SMP Fri May 2003:51:51 BST 2011 x86_64 x86_64 x86_64 GNU/<strong>Linux</strong>[root@kvm4 ~]# arch谴 x86_64✡✝✆3. Kernel messages✞[root@kvm4 ~]# grep kernel /var/log/messages谲 Jan✡✝1 08:06:01 kvm4 kernel: imklog 4.6.2, log source = /proc/kmsg started.✆17.2 Kernel Modules1. Kernel imageDe-Yu Wang CSIE CYUT 203


17.2. KERNEL MODULES CHAPTER 17. MAINATAING THE KERNEL✞[root@kvm4 ~]# ls /boot谲 config-2.6.32-71.el6.x86_64 lost+foundefisymvers-2.6.32-71.el6.x86_64.gz谴 grub <strong>System</strong>.map-2.6.32-71.el6.x86_64initramfs-2.6.32-71.el6.x86_64.img✡✝vmlinuz-2.6.32-71.el6.x86_64✆2. Dynamically loaded modules✞谱 [root@kvm4 ~]# find /lib/modules/‘uname -r‘ -name *.ko | more/lib/modules/2.6.32-71.el6.x86_64/kernel/fs/ext4/ext4.ko谳 /lib/modules/2.6.32-71.el6.x86_64/kernel/fs/jffs2/jffs2.ko/lib/modules/2.6.32-71.el6.x86_64/kernel/fs/fuse/cuse.ko谵 .....✡✝✆3. The currently loaded modules✞谱 [root@kvm4 ~]# lsmodModule Size Used by谳 fuse 66138 0ebtable_nat 1975 0谵 ebtables 18101 1 ebtable_natnfs_acl 2677 1 nfsd谷 auth_rpcgss 44862 1 nfsd.....✡✝✆4. Loads the vfat module✞[root@kvm4 ~]# lsmod | grep fat谲 [root@kvm4 ~]# modprobe vfat[root@kvm4 ~]# lsmod | grep fat谴 vfat 10646 0fat✡✝55086 1 vfat✆5. Remove the vfat moduleDe-Yu Wang CSIE CYUT 204


17.2. KERNEL MODULES CHAPTER 17. MAINATAING THE KERNEL✞谱 [root@kvm4 ~]# modprobe -r vfat[root@kvm4 ~]# lsmod | grep fat✡✝✆6. Set module parameters manually谲谴✞[root@kvm4 ~]# modprobe ecryptfs[root@kvm4 ~]# modprobe -r ecryptfs[root@kvm4 ~]# cat /var/log/messages | grep ecryptfs## No any message谶 [root@kvm4 ~]# modinfo ecryptfsfilename: /lib/modules/2.6.32-71.el6.x86_64/kernel/fs/ecryptfs/ecryptfs.ko谸 license: GPLdescription: eCryptfs谱 谰 author: Michael A. Halcrow srcversion: 5A7ADDC1F961E6284ABB2E9谱 谲 depends:vermagic: 2.6.32-71.el6.x86_64 SMP mod_unload modversions谱 谴 parm: ecryptfs_verbosity:Initial verbosity level (0 or1; defaults to 0, which is Quiet) (int)parm:ecryptfs_message_buf_len:Number of message bufferelements (uint)谱 谶 parm: ecryptfs_message_wait_timeout:Maximum number ofseconds that an operation will sleep while waiting for amessage response from userspace (long)parm:ecryptfs_number_of_users:An estimate of thenumber of concurrent users of eCryptfs (uint)谱 谸[root@kvm4 ~]# modprobe ecryptfs ecryptfs_verbosity=1谲 谰 [root@kvm4 ~]# cat /var/log/messages | grep -i ecryptfsJan 1 13:16:36 kvm4 kernel: eCryptfs verbosity set to 1. Secretvalues will be written to the syslog!谲 谲[root@kvm4 ~]# modprobe -r ecryptfs✡✝✆7. Set module parameters automatically✞谱 [root@kvm4 ~]# vi /etc/modprobe.d/local.confoptions ecryptfs ecryptfs_verbosity=1谳 [root@kvm4 ~]# modprobe ecryptfs[root@kvm4 ~]# cat /var/log/messages | grep -i ecryptfs谵 Jan 1 13:16:36 kvm4 kernel: eCryptfs verbosity set to 1. Secretvalues will be written to the syslog!De-Yu Wang CSIE CYUT 205


17.3. SPECIFYING KERNEL BOOT CHAPTER PARAMETERS 17. MAINATAING THE KERNELJan 1 13:23:55 kvm4 kernel: eCryptfs verbosity set to 1. Secretvalues will be written to the syslog!谷 [root@kvm4 ~]# modprobe -r ecryptfs✡✝✆17.3 Specifying Kernel Boot Parameters1. Kernel command line✞谱 [root@kvm4 ~]# cat /proc/cmdlinero root=/dev/mapper/vg_kvmusb-root rd_LVM_LV=vg_kvmusb/rootrd_LVM_LV=vg_kvmusb/swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us✡✝✆2. bootparam man pages✞[root@kvm4 ~]# man 7 bootparam # 7 Miscellanea谲 ....’panic=’N谴 By default the kernel will not reboot after apanic, but thisoption will cause a kernel reboot after Nseconds (if N is谶 greater than zero). This panic timeout can also beset by "echoN > /proc/sys/kernel/panic".谸 ....✡✝✆3. Change the default behavior th the kernel comman line✞[root@kvm4 ~]# vi /boot/grub/menu.lst谲 ....title KVM CentOS (2.6.32-71.el6.x86_64)谴root (hd0,0)kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=/dev/mapper/vg_kvmusb-root rd_LVM_LV=vg_kvmusb/root rd_LVM_LV=vg_kvmusb/swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pcKEYTABLE=us crashkernel=auto panic=30De-Yu Wang CSIE CYUT 206


17.4. UPDATING KERNEL CHAPTER 17. MAINATAING THE KERNEL谶 ...✡✝✆4. Show the effects of the changes✞[root@kvm4 ~]# reboot谲[root@kvm4 ~]# cat /proc/cmdline谴 ro root=/dev/mapper/vg_kvmusb-root rd_LVM_LV=vg_kvmusb/root✡✝rd_LVM_LV=vg_kvmusb/swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto panic=30✆17.4 Updating Kernel1. Check installed kernels✞[root@kvm4 ~]# rpm -q kernel谲 kernel-2.6.32-71.el6.x86_64[root@kvm4 ~]# uname -r谴 2.6.32-71.el6.x86_64✡✝✆2. Download the kernel packages✞[root@kvm4 ~]# cd /usr/src谲 [root@kvm4 src]# wget ftp://deyu.wang/pub/centos6/crt/extra/kernel-*.rpm--2012-01-01 17:52:50-- ftp://deyu.wang/pub/centos6/crt/extra/kernel-*.rpm谴=> \."listingResolving deyu.wang... 192.168.122.1谶 Connecting to deyu.wang|192.168.122.1|:21... connected.Logging in as anonymous ... Logged in!谸 ==> SYST ... done. ==> PWD ... done.==> TYPE I ... done. ==> CWD (1) /pub/centos6/dag ... done.谱 谰 ==> PASV ... done. ==> LIST ... done.谱 谲 [ ] 1,589 --.-K/sin 0.001sDe-Yu Wang CSIE CYUT 207


17.4. UPDATING KERNEL CHAPTER 17. MAINATAING THE KERNEL谱 谴 2012-01-01 17:52:50 (2.69 MB/s) - \."listing saved [1589]谱 谶谱 谸Removed \."listing.--2012-01-01 17:52:50-- ftp://deyu.wang/pub/centos6/crt/extra/kernel-2.6.32-71.29.1.el6.x86_64.rpm=> \kernel-2.6.32-71.29.1.el6.x86_64."rpm==> CWD not required.谲 谰 ==> PASV ... done. ==> RETR kernel-2.6.32-71.29.1.el6.x86_64.rpm ... done.Length: 23472196 (22M)谲 谲100%[======================================>] 23,472,196 33.2M/sin 0.7s谲 谴2012-01-01 17:52:51 (33.2 MB/s) - \kernel-2.6.32-71.29.1.el6.x86_64."rpm saved [23472196]谲 谶--2012-01-01 17:52:51-- ftp://deyu.wang/pub/centos6/crt/extra/kernel-firmware-2.6.32-71.29.1.el6.noarch.rpm谲 谸=> \kernel-firmware-2.6.32-71.29.1.el6.noarch."rpm==> CWD not required.谳 谰 ==> PASV ... done. ==> RETR kernel-firmware-2.6.32-71.29.1.el6.noarch.rpm ... done.Length: 1207932 (1.2M)谳 谲100%[======================================>] 1,207,932 --.-K/sin 0.03s谳 谴2012-01-01 17:52:51 (33.0 MB/s) - \kernel-firmware-2.6.32-71.29.1.el6.noarch."rpm saved [1207932]✡✝✆3. Install a new kernel✞谱 [root@kvm4 src]# rpm -ivh kernel-2.6.32-71.29.1.el6.x86_64.rpmerror: Failed dependencies:谳 kernel-firmware >= 2.6.32-71.29.1.el6 is needed by kernel-2.6.32-71.29.1.el6.x86_64[root@kvm4 src]# rpm -ivh kernel-firmware-2.6.32-71.29.1.el6.noarch.rpm Preparing...########################################### [100%]谵 1:kernel-firmware ########################################### [100%][root@kvm4 src]# rpm -ivh kernel-2.6.32-71.29.1.el6.x86_64.rpm谷 Preparing... ########################################### [100%]1:kernel ########################################### [100%]De-Yu Wang CSIE CYUT 208


17.4. UPDATING KERNEL CHAPTER 17. MAINATAING THE KERNEL✡✝✆4. Check installed kernels✞[root@kvm4 src]# rpm -q kernel谲 kernel-2.6.32-71.el6.x86_64kernel-2.6.32-71.29.1.el6.x86_64谴 [root@kvm4 src]# uname -r2.6.32-71.el6.x86_64✡✝✆5. Reboot to the new kernel✞谱 [root@kvm4 src]# cat /boot/grub/menu.lst.....谳 default=0timeout=2谵 #hiddenmenutitle CentOS <strong>Linux</strong> (2.6.32-71.29.1.el6.x86_64)谷 root (hd0,0)kernel /vmlinuz-2.6.32-71.29.1.el6.x86_64 ro root=/dev/mapper/vg_kvmusb-root rd_LVM_LV=vg_kvmusb/root rd_LVM_LV=vg_kvmusb/swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=uscrashkernel=auto谹 initrd /initramfs-2.6.32-71.29.1.el6.x86_64.imgtitle KVM CentOS (2.6.32-71.el6.x86_64)谱 谱 root (hd0,0)kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=/dev/mapper/vg_kvmusb-root rd_LVM_LV=vg_kvmusb/root rd_LVM_LV=vg_kvmusb/swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=uscrashkernel=auto谱 谳✡✝initrd /initramfs-2.6.32-71.el6.x86_64.img✆6. Reboot to the new kernel✞谱 [root@kvm4 src]# reboot[root@kvm4 ~]# rpm -q kernel谳 kernel-2.6.32-71.el6.x86_64kernel-2.6.32-71.29.1.el6.x86_64谵 [root@kvm4 ~]# uname -rDe-Yu Wang CSIE CYUT 209


17.4. UPDATING KERNEL CHAPTER 17. MAINATAING THE KERNEL2.6.32-71.29.1.el6.x86_64✡✝✆7. Remove a kernel✞[root@kvm4 src]# rpm -e kernel谲 error: "kernel" specifies multiple packages:kernel-2.6.32-71.el6.x86_64谴 kernel-2.6.32-71.29.1.el6.x86_64[root@kvm4 src]# rpm -e kernel-2.6.32-71.el6.x86_64谶 [root@kvm4 ~]# rpm -q kernelkernel-2.6.32-71.29.1.el6.x86_64谸 [root@kvm4 ~]# uname -r2.6.32-71.29.1.el6.x86_64✡✝✆De-Yu Wang CSIE CYUT 210


CHAPTER 18.例 行 性 命 令Chapter 18例 行 性 命 令18.1 <strong>Linux</strong> 的 例 行 性 命 令1. <strong>Linux</strong> 工 作 排 程 的 種 類 :at, cron(a) 例 行 性 : 每 隔 一 定 的 週 期 要 執 行 的 工 作 ;cron: 工 作 持 續 例 行 性 的 作 ;(b) 突 發 性 : 只 做 一 次 ;at: 工 作 僅 執 行 一 次 就 從 <strong>Linux</strong> 系 統 中 的 排 程 中 取 消 。2. 常 見 的 例 行 性 工 作 :(a) 進 行 登 錄 檔 的 資 料 輪 替 : 適 時 適 量 將 登 錄 檔 備 份 , 並 以 新 開 的 檔 案 進 行記 錄 。(b) rpm 資 料 庫 的 建 立 。(c) 建 立 locate 的 資 料 庫 。(d) 進 行 程 序 的 分 析 : 刪 除 僵 屍 程 序 , 以 保 持 記 憶 體 的 工 作 能 力 。(e) 登 錄 檔 視 察 : 解 析 有 問 題 的 紀 錄 檔 , 以 維 護 主 機 的 安 全 性 。18.2 僅 執 行 一 次 的 工 作 排 程 :atat 僅 執 行 一 次 的 工 作 排 程 。1. at 的 使 用 限 制 如 下 :(a) 先 在 /etc/at.allow 檔 案 中 尋 找 可 以 使 用 at 指 令 的 使 用 者 。(b) 若 無 /etc/at.allow 檔 案 , 則 尋 找 /etc/at.deny 檔 案 不 能 使 用 at指 令 的 使 用 者 。(c) 若 上 述 兩 檔 案 皆 不 存 在 , 則 只 有 root 可 以 使 用 at 指 令 。(d) 預 設 只 有 空 白 的 /etc/at.deny 檔 , 即 所 有 人 皆 可 使 用 at 指 令 。De-Yu Wang CSIE CYUT 211


18.2. 僅 執 行 一 次 的 工 作 排 程 :AT CHAPTER 18. 例 行 性 命 令谱谳✞[root@localhost csie]# cat /etc/at.allowcat: /etc/at.allow: No such file or directory[root@localhost csie]# cat /etc/at.deny谵[root@localhost csie]#✡✝✆2. at: 僅 執 行 一 次 的 工 作 排 程 。✞谱 [root@linux ~]# at [-m] TIME 參 數 :谳 -m : 當 at 的 工 作 完 成 後 , 以 email 的 方 式 通 知 使 用 者 該 工 作 已 完 成 。:時 間 格 式 , 定 義 『 什 麼 時 候 要 進 行TIME at 這 項 工 作 』 的 時 間 , 格 式 有 :谵 HH:MM ex> 04:00 在 今 日 的HH:MM 時 刻 進 行 , 若 該 時 刻 已 超 過 , 則 明 天 的 HH:MM 進 行 此 工 作 。谷 HH:MM YYYY-MM-DD ex> 04:00 2005-12-03 強 制 規 定 在 某 年某 月 的 某 一 天 的 特 殊 時 刻 進 行 該 工 作 。谹 HH:MM[am|pm] [Month] [Date] ex> 04pm December 3 強 制 在 某 年 某 月某 日 的 某 時 刻 進 行 。谱 谱✡✝HH:MM[am|pm] + number [minutes|hours|days|weeks]ex> now + 5 minutes ex> 04pm + 3 days 某 個 時 間 點 『 再 加幾 個 時 間 後 』 才 進 行 。✆3. 下 達 工 作 排 程✞谱 [dywang@dywOffice ~]$ at 17:00 063007at> echo Hello!谳 at> 輸 入


18.3. 循 環 執 行 的 工 作 排 程 CHAPTER 18. 例 行 性 命 令✞[dywang@dywOffice ~]$ atrm 1谲 [dywang@dywOffice ~]$ atq[dywang@dywOffice ~]$✡✝✆18.3 循 環 執 行 的 工 作 排 程crontab 循 環 執 行 的 工 作 排 程 。1. crontab 的 使 用 限 制 如 下 :(a) 先 在 /etc/crontab.allow 檔 案 中 尋 找 可 以 使 用 crontab 指 令 的 使 用者 。(b) 若 無 /etc/crontab.allow 檔 案 , 則 尋 找 /etc/crontab.deny 檔 案不 能 使 用 crontab 指 令 的 使 用 者 。(c) 若 上 述 兩 檔 案 皆 不 存 在 , 則 只 有 root 可 以 使 用 crontab 指 令 。✞谱 [root@localhost csie]# cat /etc/cron.allowmail谳 [root@localhost csie]# cat /etc/cron.denycat: /etc/cron.deny: No such file or directory✡✝✆2. crontab: 循 環 執 行 的 工 作 排 程 。✞[test @test test]# crontab [-u user] [-l | -e | -r] 參 數 說 明 :谲-u user : 只 有 root 能 下 達 的 參 數 , 視 察 或 編 譯 其 他 使 用 者 的 crontab 內谴容-l : 列 出 crontab 的 內 容-e : 編 輯 crontab 的 內 容谶 -r : 刪 除✡✝crontab 的 內 容✆3. 編 輯 排 程✞[root@dywOffice dywang]# crontab -e谲 # min(0-59) hours(0-23) day(1-31) month(1-12) dow(0-6) command0 0 * * 6 /backup/sysbackup✡✝✆De-Yu Wang CSIE CYUT 213


18.3. 循 環 執 行 的 工 作 排 程 CHAPTER 18. 例 行 性 命 令(a) 五 個 時 間 數 字 參 數 分 別 代 表 :數 字 代 表 的 意 義 分 鐘 小 時 日 期 月 份 週範 圍 0-59 0-23 1-31 1-12 0-6 (0 或 7 為 星 期 天 )(b) 輔 助 字 符 :特 殊 字 符 代 表 意 義* 代 表 任 何 時 刻 都 接 受 。’ 代 表 分 隔 時 段 。例 如 : 在 0300 及 0600 時 工 作 , 則 0 3,6 * * * command- 代 表 一 段 時 間 範 圍 內 。例 如 : 在 0800 到 1200 之 間 每 小 時 的 20 分 都 進 行 工 作 ,則 20 8-12 * * * command/n 每 隔 n 單 位 間 隔 。例 如 每 5 分 鐘 進 行 一 次 , 則 */5 * * * * command4. 查 看 排 程✞谱 [root@dywOffice dywang]# crontab -l# min(0-59) hours(0-23) day(1-31) month(1-12) dow(0-6) command谳 0 0 * * 6 /backup/sysbackup✡✝✆5. 刪 除 排 除✞谱 [root@dywOffice dywang]# crontab -r[root@dywOffice dywang]# crontab -l谳 no crontab for root✡✝✆6. 例 題 : 如 果 您 ( 帳 號 csie) 有 個 例 行 性 程 式 /home/csie/crontest, 想 要在 每 個 星 期 一 的 01:30 執 行 , 該 如 何 做 ?谱谳谵谷谹✞# 以 # 權 限 將 使 用 者 root csie 加 入 /etc/cron.allow[root@localhost csie]# vi /etc/cron.allowmailcsie# 以 使 用 者 # csie 帳 號 編 輯 crontab[csie@localhost csie]$ crontab -e# 或 ## root 直 接 幫 csie 編 輯 crontab[root@localhost csie]# crontab -u csie -e# min(0-59) hours(0-23) day(1-31) month(1-12) dow(0-6) commandDe-Yu Wang CSIE CYUT 214


18.3. 循 環 執 行 的 工 作 排 程 CHAPTER 18. 例 行 性 命 令谱 谱30 1 * * 1 /home/csie/crontest谱 谳## 重 新 啟 動 crond 服 務[root@localhost csie]# /etc/rc.d/init.d/crond restart✡✝✆7. 例 題 : 如 果 您 ( 帳 號 csie) 要 建 立 一 個 自 動 執 行 的 工 作 , 在 每 天 17:00 執行 /bin/echo "closing time", 該 如 何 做 ?De-Yu Wang CSIE CYUT 215


18.3. 循 環 執 行 的 工 作 排 程 CHAPTER 18. 例 行 性 命 令De-Yu Wang CSIE CYUT 216


CHAPTER 19.開 機 流 程 與 系 統 服 務Chapter 19開 機 流 程 與 系 統 服 務19.1 開 機 流 程1. 第 一 支 程 式 init 及 設 定 檔 /etc/inittab 與 runlevel谲谴谶谸谱 谰✞[root@dywOffice ~]# vi /etc/inittab# inittab is only used by upstart for the default runlevel.# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOURSYSTEM.# <strong>System</strong> initialization is started by /etc/init/rcS.conf# Individual runlevels are started by /etc/init/rc.conf# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,# with configuration in /etc/sysconfig/init.# For information on how to write upstart event handlers, or how# upstart works, see init(5), init(8), and initctl(8).谱 谲 # Default runlevel. The runlevels used by Mandrakelinux are:# 0 - halt (Do NOT set initdefault to this)谱 谴 # 1 - Single user mode# 2 - Multiuser, without NFS (The same as 3, if you do not havenetworking)谱 谶 # 3 - Full multiuser mode# 4 - unused谱 谸 # 5 - X11# 6 - reboot (Do NOT set initdefault to this)谲 谰 #id:3:initdefault:✡✝✆2. 各 開 機 層 級 啟 動 設 定✞De-Yu Wang CSIE CYUT 217


19.1. 開 機 流 程 CHAPTER 19. 開 機 流 程 與 系 統 服 務谱 [root@deyu ~]# cat /etc/init/rc.conf# rc - <strong>System</strong> V runlevel compatibility谳 # This task runs the old sysv-rc runlevel scripts. It# is usually started by the telinit compatibility wrapper.谵start on runlevel [0123456]谷 stop on runlevel [!$RUNLEVEL]task谹 export RUNLEVELconsole output谱 谱 exec /etc/rc.d/rc $RUNLEVEL✡✝✆3. run level 3 的 啟 動 目 錄 放 在 /etc/rc.d/rc3.d 目 錄 當 中 :✞谱 [root@deyu ~]# ll /etc/rc.d/rc3.d/total 0谳 lrwxrwxrwx. 1 root root 20 Dec 11 14:01 K01certmonger -> ../init.d/certmongerlrwxrwxrwx. 1 root root 16 Dec 11 14:04 K01smartd -> ../init.d/smartd谵 lrwxrwxrwx. 1 root root 17 Dec 11 14:01 K02oddjobd -> ../init.d/oddjobdlrwxrwxrwx. 1 root root 16 Dec 11 14:05 K10psacct -> ../init.d/psacct谷 lrwxrwxrwx. 1 root root 19 Dec 11 14:01 K10saslauthd -> ../init.d/saslauthd...........................谹 lrwxrwxrwx. 1 root root 15 Dec 11 14:01 K86cgred -> ../init.d/cgredlrwxrwxrwx. 1 root root 21 Dec 11 14:01 K87restorecond -> ../init.d/restorecond谱 谱 lrwxrwxrwx. 1 root root 15 Dec 11 14:01 K89rdisc -> ../init.d/rdisclrwxrwxrwx. 1 root root 23 Dec 11 14:05 S00microcode_ctl -> ../init.d/microcode_ctl谱 谳 lrwxrwxrwx. 1 root root 17 Dec 11 14:04 S01sysstat -> ../init.d/sysstatlrwxrwxrwx. 1 root root 22 Dec 11 14:01 S02lvm2-monitor -> ../init.d/lvm2-monitor谱 谵 lrwxrwxrwx. 1 root root 18 Dec 11 14:04 S05cgconfig -> ../init.d/cgconfiglrwxrwxrwx. 1 root root 16 Dec 11 14:01 S07iscsid -> ../init.d/iscsid谱 谷 .................lrwxrwxrwx. 1 root root 19 Dec 11 14:02 S99firstboot -> ../init.d/firstboot谱 谹 lrwxrwxrwx. 1 root root 11 Dec 11 14:01 S99local -> ../rc.localDe-Yu Wang CSIE CYUT 218


19.1. 開 機 流 程 CHAPTER 19. 開 機 流 程 與 系 統 服 務谲 谱 ## Snn:start nn 啟 動 順 序 :## Knn:stop nn 關 閉 順 序 :谲 谳 ## S99local 自 訂 開 機 執 行 程 式 可 以 放 /etc/rc.d/rc., 系 統 於 開 機 最 後 啟動 。local✡✝✆4. 載 入 終 端 機谱谳✞[root@deyu ~]# vi /etc/init/tty.conf# tty - getty# This service maintains a getty on the sepcified device.谵 stop on runlevel [016]respawn谷 instance $TTYexec /sbin/mingetty $TTY谹#Mandriva 2010 直 接 在 /etc/ 中 載 入 inittab谱 谱 # Run gettys in standard runlevels2:2345:respawn:/sbin/mingetty tty2谱 谳 3:2345:respawn:/sbin/mingetty tty34:2345:respawn:/sbin/mingetty tty4谱 谵 5:2345:respawn:/sbin/mingetty tty5✡✝✆5. 服 務 的 相 關 設 定 檔 /etc/sysconfig:✞谱 [root@deyu ~]# ls /etc/sysconfig/atd grub libvirtd rsyslog谳 auditd httpd libvirt-guests sambaauthconfig i18n modules sandbox谵 autofs init named saslauthdcbq ip6tables netconsole selinux谷 cgconfig ip6tables-config network smartmontoolscgred.conf ip6tables.old networking snmpd谹 clock iptables network-scripts snmptrapdconsole iptables-config nfs sysstat谱 谱 cpuspeed iptables.old nspluginwrapper sysstat.ioconfcrond irqbalance ntpd system-config-firewall谱 谳 dhcpd kdump ntpdate system-config-firewall.olddhcpd6 kernel prelink system-config-users谱 谵 dhcrelay keyboard raid-check udevDe-Yu Wang CSIE CYUT 219


19.2. DAEMON 與 服 務 (SERVICE) CHAPTER 19. 開 機 流 程 與 系 統 服 務ebtables-config ksm readaheadwpa_supplicant谱 谷 firstboot ldap readonly-root xinetd✡✝✆(a) clock: 設 定 <strong>Linux</strong> 主 機 的 時 區 。(b) i18n: 設 定 語 系 。(c) network: 設 定 主 機 名 稱 及 GATEWAY 。(d) network-scripts/: 網 路 卡 設 定 。19.2 daemon 與 服 務 (service)1. daemon 分 類 :(a) stand alone: 可 以 自 行 單 獨 啟 動 服 務i. 啟 動 並 載 入 到 記 憶 體 後 就 一 直 佔 用 記 憶 體 與 系 統 資 源 。ii. 一 直 存 在 記 憶 體 內 持 續 的 提 供 服 務 , 回 應 速 度 較 快 。iii. 常 見 的 stand alone daemon 有 WWW 的 daemon (httpd)、FTP 的daemon (vsftpd)。(b) super daemon:daemon xinetd 統 一 管 理i. 當 沒 有 用 戶 端 要 求 時 , 各 項 服 務 都 是 未 啟 動 的 情 況 ,ii. 有 用 戶 端 要 求 時 ,super daemon 才 喚 醒 相 對 應 的 服 務 。iii. 當 用 戶 端 的 要 求 結 束 後 , 被 喚 醒 的 這 個 服 務 也 會 關 閉 並 釋 放 系 統 資源 。iv. 服 務 的 反 應 時 間 比 較 慢 ,pxe server 中 的 tftp 就 是 典 型 的 superdaemon 所 管 理 的 服 務 。2. 服 務 與 埠 口 的 對 應✞谱 [root@deyu ~]# lsof -i -n -P | grep LISTENrpcbind *:111 (LISTEN)谳 named 127.0.0.1:53 (LISTEN)named 127.0.0.1:953 (LISTEN)谵 cupsd 127.0.0.1:631 (LISTEN)sshd *:22 (LISTEN)谷 vsftpd *:21 (LISTEN)dnsmasq 192.168.122.1:53 (LISTEN)谹 qemu-kvm 127.0.0.1:5900 (LISTEN)httpd *:80 (LISTEN)谱 谱[root@deyu ~]# cat /etc/services | grep ’\ 22/tcp’谱 谳 ssh✡✝22/tcp # The Secure Shell (SSH) Protocol✆De-Yu Wang CSIE CYUT 220


19.2. DAEMON 與 服 務 (SERVICE) CHAPTER 19. 開 機 流 程 與 系 統 服 務3. Stand alone 的 啟 動(a) 以 /etc/init.d/* 直 接 啟 動✞谱 [root@deyu ~]# /etc/init.d/sshdUsage: /etc/init.d/sshd {start|stop|restart|reload|forcereload|condrestart|try-restart|status}谳 [root@deyu ~]# /etc/init.d/sshd statusopenssh-daemon (pid 2062) is running...谵 [root@deyu ~]# /etc/init.d/sshd restartStopping sshd: [OK ]谷 Starting sshd: [OK ]✡✝✆(b) 以 指 令 service 啟 動✞谱 [root@deyu ~]# service sshdUsage: /etc/init.d/sshd {start|stop|restart|reload|forcereload|condrestart|try-restart|status}谳 [root@deyu ~]# /etc/init.d/sshd[root@deyu ~]# service sshd stop谵 Stopping sshd: [OK ]谷[root@deyu ~]# service sshd statusopenssh-daemon is stopped[root@deyu ~]# service sshd start谹 Starting sshd: [OK ]✡✝✆4. Super daemon 的 啟 動✞谱 [root@deyu ~]# grep -i ’disable’ /etc/xinetd.d/*/etc/xinetd.d/echo-dgram: disable = yes谳 /etc/xinetd.d/echo-stream: disable = yes/etc/xinetd.d/rsync: disable = yes谵 /etc/xinetd.d/tcpmux-server: disable = yes/etc/xinetd.d/tftp: disable = yes谷[root@deyu ~]# grep ’^tftp’ /etc/services谹 tftp 69/tcptftp69/udp谱 谱 tftp-mcast 1758/tcpDe-Yu Wang CSIE CYUT 221


19.2. DAEMON 與 服 務 (SERVICE) CHAPTER 19. 開 機 流 程 與 系 統 服 務tftp-mcast 1758/udp谱 谳 tftps 3713/tcp # TFTP over TLStftps 3713/udp # TFTP over TLS谱 谵[root@deyu ~]# netstat -tlun | grep :69谱 谷[root@deyu ~]# vi /etc/xinetd.d/tftp谱 谹 service tftp{谲 谱 socket_type = dgramprotocol = udp谲 谳 wait = yesuser= root谲 谵 server = /usr/sbin/in.tftpdserver_args = -s /var/ftp/pub/usb/isolinux谲 谷 disable = noper_source = 11谲 谹 cps = 100 2flags= IPv4谳 谱 }谳 谳 [root@deyu ~]# /etc/init.d/xinetd restartStopping xinetd: [ OK]谳 谵 Starting xinetd: [ OK]谳 谷 [root@deyu ~]# netstat -tlun | grep :69udp 0 0 0.0.0.0:69 0.0.0.0:*✡✝✆5. 以 service 查 詢 所 有 服 務 狀 態✞[root@deyu ~]# service --status-all | grep xinetd谲 xinetd (pid 4149) is running...✡✝✆6. 以 netstat 觀 察 網 路 服 務✞[root@deyu ~]# netstat -tlun谲 Active Internet connections (only servers)Proto Recv-Q Send-Q Local AddressForeign Address StatePID/Program name谴 tcp 0 0 *:ftp *:* LISTEN2081/vsftpdtcp 0 0 deyu.wang:domain *:* LISTEN1785/namedDe-Yu Wang CSIE CYUT 222


19.3. 開 機 啟 動 服 務 CHAPTER 19. 開 機 流 程 與 系 統 服 務谶 udp 0 0 deyu.wang:domain *:*1785/named谸 [root@deyu ~]# netstat -tlunpActive Internet connections (only servers)谱 谰 Proto Recv-Q Send-Q Local Address Foreign Address StatePID/Program nametcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN2081/vsftpd谱 谲 tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN1785/namedudp 0 0 127.0.0.1:53 0.0.0.0:*✡✝1785/named✆19.3 開 機 啟 動 服 務1. chkconfig 指 令谱谳✞[root@deyu ~]# chkconfig --helpchkconfig version 1.3.47 - Copyright (C) 1997-2000 Red Hat, Inc.This may be freely redistributed under the terms of the GNUPublic License.谵 usage: chkconfig [--list] [--type ] [name]chkconfig --add 谷chkconfig --del chkconfig --override 谹✡✝chkconfig [--level ] [--type ] ✆2. 列 出 所 有 服 務 開 機 啟 動 狀 態✞谱 [root@deyu ~]# chkconfig --listhttpd 0:off 1:off 2:off 3:off 4:off 5:off6:off谳 iptables 0:off 1:off 2:on 3:on 4:on 5:on6:offsshd 0:off 1:off 2:on 3:on 4:on 5:on6:off谵 xinetd 0:off 1:off 2:off 3:on 4:on 5:on6:offypbind 0:off 1:off 2:off 3:off 4:off 5:off6:offDe-Yu Wang CSIE CYUT 223


19.3. 開 機 啟 動 服 務 CHAPTER 19. 開 機 流 程 與 系 統 服 務谷xinetd based services:谹 rsync: offtftp:on✡✝✆3. 列 出 某 一 服 務 開 機 啟 動 狀 態✞[root@deyu ~]# chkconfig --list httpd谲 httpd 0:off 1:off 2:off 3:off 4:off 5:off6:off✡✝✆4. 設 定 某 一 服 務 開 機 立 即 啟 動✞[root@deyu ~]# chkconfig httpd on谲 [root@deyu ~]# chkconfig --list httpdhttpd 0:off 1:off 2:on 3:on 4:on 5:on6:off✡✝✆5. 設 定 某 一 服 務 某 一 層 級 開 機 時 關 閉 或 啟 動✞谱 [root@deyu ~]# chkconfig --level 2 httpd off[root@deyu ~]# chkconfig --list httpd谳 httpd 0:off 1:off 2:off 3:on 4:on 5:on6:off✡✝✆6. 自 訂 服 務(a) 為 何 無 法 加 入 ?✞谱 [root@deyu ~]# vi /etc/init.d/myservice#!/bin/bash谳 echo "chkconfig test"[root@deyu ~]# chkconfig --add myservice谵 service myservice does not support chkconfig✡✝✆De-Yu Wang CSIE CYUT 224


19.4. 開 機 過 程 的 問 題 解 決 CHAPTER 19. 開 機 流 程 與 系 統 服 務(b) 加 chkconfig 的 敘 述 , 成 功 加 入 自 訂 服 務 。谱谳谵谷谹谱 谱谱 谳✞[root@deyu ~]# vi /etc/init.d/myservice#!/bin/bash# chkconfig: 35 91 81 ../init.d/myservicelrwxrwxrwx. 1 root root 19 Dec 26 09:28 /etc/rc.d/rc5.d/S91myservice -> ../init.d/myservice谱 谵 # run level 關 閉 ;1/etc/rc.d/rc1.d 當 中 以 順 位 結 束 。81[root@deyu ~]# ll /etc/rc.d/rc1.d/*myservice*谱 谷 lrwxrwxrwx. 1 root root 19 Dec 26 09:28 /etc/rc.d/rc1.d/K81myservice -> ../init.d/myservice✡✝✆(c) 刪 除 自 訂 服 務✞谱 [root@deyu ~]# chkconfig myservice off[root@deyu ~]# chkconfig --list myservice谳 myservice 0:off 1:off 2:off 3:off 4:off 5:off6:off[root@deyu ~]# chkconfig --del myservice谵 [root@deyu ~]# chkconfig --list myserviceservice myservice supports chkconfig, but is not referencedin any runlevel (run ’chkconfig --add myservice’)谷 [root@deyu ~]# rm -f /etc/init.d/myservice[root@deyu ~]# chkconfig --list myservice谹 error reading information on service myservice: No such file✡✝or directory✆19.4 開 機 過 程 的 問 題 解 決1. 忘 記 root 密 碼De-Yu Wang CSIE CYUT 225


19.4. 開 機 過 程 的 問 題 解 決 CHAPTER 19. 開 機 流 程 與 系 統 服 務(a) 重 新 開 機 ;(b) 開 機 進 入 grub 選 單 後 ,i. 鍵 入 ’e’ 進 入 詳 細 設 定 ;ii. 將 光 棒 移 動 到 kernel 上 方 並 點 ’e’ 進 入 編 輯 畫 面 ;iii. 然 後 出 現 如 下 畫 面 來 處 理 :谱✞grub edit> kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/rhgb quiet single谳 # Runlevel 1: process rc.sysinit and rc1.d scripts# Runlevel s,S,single: process only rc.sysinit谵 # Runlevel emerency: run sulogin only✡✝✆iv. 按 下 [enter] 再 按 下 b 就 能 夠 開 機 進 入 單 人 維 護 模 式 了 。(c) 執 行 passwd 指 令 重 建 root 的 密 碼 ;✞谱 [root@kvm4 /]# passwdtype=1400 audit(1323777256.565:29): avc: denied { read } for谳 pid=1912 comm="passwd" path="pipe:[12939]" dev=pipefs ino=12939....谵 ....[root@kvm4 /]# echo "123123" | passwd --stdin谷 type=1300 audit(1323777556.699:32): avc: denied { read } forpid=1916 comm="passwd" path="pipe:[12939]" dev=pipefs ino=12939谹 ........谱 谱 [root@kvm4 /]# setenforce 0 關 閉


19.4. 開 機 過 程 的 問 題 解 決 CHAPTER 19. 開 機 流 程 與 系 統 服 務(d) 直 接 在 開 機 選 單 關 閉 SE<strong>Linux</strong>✞谱 grub edit> kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgbquiet selinux=0 1✡✝✆(e) 執 行 init 3 切 換 成 為 多 人 文 字 介 面 。2. init 設 定 檔 錯 誤(a) runlevel 0 至 6 都 會 讀 取 /etc/inittab 設 定 檔 , 故 無 法 進 入 單 人 維護 模 式 ;(b) 在 開 機 進 入 grub 後 , 在 grub edit 的 情 況 下 , 指 定 核 心 呼 叫 的 第 一支 程 式 init 為 /bin/bash:✞谱 grub edit> kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgbquiet init=/bin/bash✡✝✆(c) /sbin/init 不 會 被 執 行 。root 取 得 bash 工 作 , 但 此 時 除 了 根 目 錄外 , 其 他 的 目 錄 都 沒 有 被 掛 載 ; 且 根 目 錄 被 掛 載 成 為 唯 讀 狀 態 。(d) 下 指 令 mount -o remount,rw / 將 根 目 錄 重 新 掛 載 成 為 可 讀 寫 。(e) 以 mount -a 參 考 /etc/fstab 的 內 容 重 新 掛 載 檔 案 系 統 。(f) 以 vim 修 改 /etc/inittab。(g) 執 行 reboot 重 新 開 機 。3. 因 檔 案 系 統 錯 誤 而 無 法 開 機(a) 最 常 發 生 在 /etc/fstab。 例 如 : 使 用 者 實 作 Quota 時 ,/etc/fstab寫 錯 參 數 , 又 沒 有 經 過 mount -a 測 試 掛 載 , 就 立 刻 直 接 重 新 開 機 。(b) 開 機 過 程 fsck 失 敗 , 導 致 無 法 順 利 開 機 , 系 統 會 提 示 請 你 輸 入 管 理 者密 碼 進 入 維 護 。(c) 輸 入 root 的 密 碼 取 得 bash。(d) 以 mount -o remount,rw / 將 根 目 錄 掛 載 成 可 讀 寫 。(e) 以 vim /etc/fstab 修 改 檔 案 。(f) 以 reboot 重 新 開 機 。4. chroot 切 換 到 另 一 顆 硬 碟 工 作 。 假 設 有 兩 個 <strong>Linux</strong> 系 統 在 同 一 個 主 機 上面 , 第 一 個 <strong>Linux</strong> 無 法 進 入 , 可 以 使 用 第 二 個 <strong>Linux</strong> 開 機 。(a) 進 入 一 個 完 整 的 <strong>Linux</strong> 系 統 ( run level 3 或 5 );De-Yu Wang CSIE CYUT 227


19.4. 開 機 過 程 的 問 題 解 決 CHAPTER 19. 開 機 流 程 與 系 統 服 務(b) 假 設 有 問 題 的 <strong>Linux</strong> 磁 碟 在 /dev/hdb1 上 面 , 且 系 統 的 掛 載 如 下 :掛 載 點 裝 置 檔 名/ → /dev/hdb1/var → /dev/hdb2/home → /dev/hdb3/usr → /dev/hdb5(c) 在 目 前 的 <strong>Linux</strong> 下 建 立 一 個 目 錄 /chroot, 然 後 掛 載 如 下 :掛 載 點裝 置 檔 名/chroot/ → /dev/hdb1/chroot/var/ → /dev/hdb2/chroot/home/ → /dev/hdb3/chroot/usr/ → /dev/hdb5(d) 執 行 chroot /chroot, 根 目 錄 / 就 變 成 /dev/hdb1 的 環 境 。De-Yu Wang CSIE CYUT 228

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!