2011年11月25日 星期五

時間和時區

設定時區
cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime

顯示時間及日期
date

修改日期
date -s 5/20

修改時間
date -s 15:30

2011年11月24日 星期四

原始與二進位檔的安裝

原始檔必須先安裝 gcc 與 make
sudo apt-get install gcc
sudo apt-get install make

原始檔安裝程序
1. 下載原始檔 wget
2. 解壓縮並進入解開後的目錄
3. 執行 ./configure 設定參數
     執行make 編譯成執行檔
4.執行 make install 將檔案與資料夾放到適當的位置(/etc ,/usr/bin/, /var/log/)
5.設定正確的權限

二進位檔案裝程序
1.下載
2. chmod 755 給予執行權
3. 執行

開機時服務或系統的啟動

預設的層級是:2


sysv-rc-conf

安裝
apt-get install sysv-rc-conf
設定服務是否啟動
sysv-rc-conf

列出所有運行層級之下的服務
sysv-rc-conf --list

查看某一程序的啟動狀態
sysv-rc-conf --list [服務名稱]
sysv-rc-conf --list postfix

開關某一服務
sudo sysv-rc-conf --level 35 ssh off    # 關閉 ssh 3 及 5 的 run leve
sudo sysv-rc-conf atd on    # 開啟 atd run level

2011年11月23日 星期三

apt-get 套件管理

APT(Advanced Package Tool)是 Debian GNU/Linux 用來管理套件的工具,是針對所有的套件來管理,並可直接從網路上下載並安裝。

定義下載點:
/etc/apt/sources.list
格式:
deb http://host/debian distribution section1 section2 section3
deb-src http://host/debian distribution section1 section2 section3
deb  已編譯好的套裝軟體
deb-src  原始檔
http://host/debia:套件來源,也可能是CD-ROM, http, FTP, 目錄或ssh等
distribution:發布類型,包含穩定,不穩定,測試性三大類,如oneiric-backports   oneiric-security等
元件:可能為 main(主要的) ,universe(全域適用), multiverse(複合的),restricted(受限的)

apt-get  參數   執行功能
參數
apt-get -b source packagename    下載來源碼包自動編譯成套裝軟體
apt-get -c  指定設定檔
apt-get -d |--download-only只下載而不安裝,下載的檔案會存放/var/cache/apt/archives/底下,例:apt-get -d install aterm
apt-get  -f |--fix-broken 適當修正斷掉的關聯性,假如無法安裝,請試著下-f參數
apt-get  -h
apt-get  -m 忽略遺失的套件
apt-get  -g安靜模式
apt-get -s dist-upgrade - 列出過程中執行的動作(模擬,不會實際動作),apt-get -s upgrade
apt-get -y dist-upgrade - 用 yes 回答所有設定問答
apt-get -u 顯示將被升級的套件
apt-get -v 顯示版本訊息
apt-get -V顯示需升級的完整套件名稱
--auto-remove  自動移除不用的相依性套件
--diff-only 只接diff的原始檔

--dsc-only 只接受dsc的原始檔
--force-yes 強迫所有的詢問都回答yes
--ignore-hold 忽略存在本地的套件
--list-cleanup 自動清除套件列表,預設值是開啟
--no-download 不下載套件,最好搭配--ignore-missing使用
--no-remove 不移除原有的套件
--no-upgrade不要升級原有的套件
--only-source 只接受原始碼的安裝
--purge 清除套件,列出將要移除的套件,在套件前會顯示*號
--reinstall 重新安裝已安裝的套件至最新版本
--tar-only 只接受tar的原始檔


 功能
apt-get autoclean - 自動清除下載的暫存檔
apt-get autoremove # 刪除系統不再使用的 Package
build-dep 安裝或移除時檢驗原始檔的相依性
check 更新套件的暫存區並檢驗原始檔的相依性
apt-get clean 刪除下載回來的檔案(清除下載的暫存區)
apt-get dist-upgrade - 考慮套件相依性進行升級(升級並管理新版套件的相依性)
apt-get install 套件名稱,安裝某一個套件及其相關的套件
apt-get remove 套件名稱 移除套件,若想含設定檔等完整移除: apt-get --purge remove 套件名稱。若加-號,則相同於安裝。
purge 移除並清除套件
source 取得原始檔
update 重新更新套件的指標檔 /etc/apt/sources.list
upgrade 升級已經安裝在系統中的套件,紀錄在 /etc/apt/sources.list之中

2011年11月22日 星期二

dpkg 套件管理

套件組成:
dpkg -c 解開套件
以 dhcp3套件為例:
/etc/dhcp3/  設定檔目錄
/etc/init.d/dhcp3-server  ;啟動程式,後面可接 start/stop/restart
/usr/sbin/  執行檔
/usr/share/  線上說明檔,包括man與說明文件
/var/紀錄檔


顯示 dpkg 套件安裝的檔案列表
dpkg -L mysql-server-4.1
dpkg -c mysql-server-4.1_4.1.11a-4sarge2_i386.deb   (contents archive)
L:後面接套件名稱,c:後面接套件檔名

顯示 dpkg 套件安裝的控制資訊
dpkg -f mysql-server-4.1_4.1.11a-4sarge2_i386.deb

顯示 dpkg 套件資訊
dpkg -s mysql-server-4.1
dpkg -I mysql-server-4.1_4.1.11a-4sarge2_i386.deb  (大寫I)

顯示已安裝套件列表
dpkg -l
dpkg -l openssh-server
dpkg -l mysql*

安裝套件
dpkg -i mysql-server-4.1_4.1.11a-4sarge2_i386.deb

移除套件
dpkg -r mysql-server-4.1  (保留設定檔)
dpkg -P mysql-server-4.1  (purge不保留設定檔)


詢問檔案所屬套件的名稱
dpkg -S /usr/sbin/mysqld


其他
建立一個deb包裝檔
dpkg -b fakeroot cscope_15.1.0_i386.deb

清除現有的套件訊息
dpkg --clear-avail

解開deb到指定的路徑下
-x,--extract archive directory
dpkg -x ./檔案名稱.deb ./Temp
-X  (大寫X解開deb到指定的路徑下,並顯示過程)

解開控制檔
dpkg -e ./檔案名稱.deb ./Temp/DEBIAN

-C|--audit   檢查已損毀的套件
-s|--status <套件> ...           顯示套件的詳細狀態。
-p|--print-avail <套件> ...      顯示可用版本的詳細資訊。
-S|--search <表達式> ...         查詢某些檔案是屬於哪些套件。
--unpack package_file  將套件解開到預設的位置,但不設定套件。
--version 顯示版本資訊



   


2011年11月21日 星期一

權限與管理

檔案的類型與權限
ls -al
drwxr-xr-x 115 root     root     4096 2011-05-03 08:30 webmin
第一欄
第1字元:代表這是『目錄、檔案或連結檔』:
d是目錄,-是檔案,l為連結檔,b表示可供儲存的周邊設備,c表示序列埠設備,例如鍵盤、滑鼠,s表示socket。
接下來的字元中,以三個為一組,且均為『rwx』 的三個參數的組合,第一組為『檔案擁有者的權限』,第二組為『同群組的權限』;第三組為『其他非本群組的權限』,x這個欄位若為s,表示以擁有者或同群組的身分執行,若有t表示stickly bit,即使一般人有寫入的權限,但只有擁有者才能刪除。

檔案隱藏屬性:
chattr指令只能在Ext2/Ext3的檔案系統上面生效,其他的檔案系統可能就無法支援

chattr [+-=][ASacdistu] 檔案或目錄名稱
選項與參數:
+:增加某一個特殊參數
-:移除某一個特殊參數
=:設定

A:設定時,若你有存取此檔案(或目錄),他的存取時間 atime 將不會被修改,可避免過度的存取磁碟。
S:加上S這個屬性時,任何檔案的修改,會『同步』寫入磁碟中。
a:當設定之後,這個檔案只能增加資料,不能刪除也不能修改,只有root才能設定這個屬性。
c:設定之後,將會自動檔案『壓縮』,讀取時會自動解壓縮,
d:當 dump 程序被執行的時候,設定d屬性將可使該檔案(或目錄)不會被 dump 備份
i:讓一個檔案『不能被刪除、改名、設定連結也無法寫入或新增資料!』對於系統安全性有相當大的助益!只有 root 能設定此屬性
s:設定時,如果這個檔案被刪除,將會被完全的移除出硬碟!
u:與 s 相反的,如果該檔案被刪了,資料內容其實還存在磁碟中,可以來救援該檔案!
注意:常見的是 a 與 i 的設定值,很多設定值必須要身為 root 才能設定


顯示檔案隱藏屬性

lsattr [-adR] 檔案或目錄
選項與參數:
-a:將隱藏檔的屬性也列出來;
-d:如果接的是目錄,僅列出目錄本身的屬性而非目錄內的檔名;
-R:連同子目錄的資料也一併顯示出來!

參考資料:鳥哥的linux私房菜


2011年11月20日 星期日

配額

Quota 的使用限制
1.僅能針對整個 filesystem: (分割區)
  • 檢查/home 是否是個獨立的 filesystem,不過,不太建議在根目錄設定 Quot
    df -h /home  (-h    Display in Kb, Mb, or Gb )
2.檔案系統格式是否支援Quota
  • mount | grep home   檢查檔案格式
3.核心必須支援 quota :
4.安裝Quota的套件
  • apt-get install quota

暫時性手動加入 quota 的支援
  •  mount -o remount,usrquota,grpquota /home
永久性設定Quota的檔案系統 
在/etc/fstab第四欄位加入,usrquota,grpquota
vi /etc/fstab
LABEL=/home   /home  ext3   defaults,usrquota,grpquota  1 2

UUID=....  /home ext3 relatime,usrquota,grpquota 1 2

重新開機,檢查 /etc/mtab 有沒有usrquota

quotacheck :掃瞄檔案系統並建立 Quota 的記錄檔
quotacheck [-avugfM] [/mount_point]
選項與參數:
-a  :掃瞄所有在 /etc/mtab 內,含有 quota 支援的 filesystem,加上此參數後,/mount_point 可不必寫,
-u  :針對使用者掃瞄檔案與目錄的使用情況,會建立 aquota.user
-g  :針對群組掃瞄檔案與目錄的使用情況,會建立 aquota.group
-v  :顯示掃瞄過程的資訊;
-f  :強制掃瞄檔案系統,並寫入新的 quota 設定檔 (危險)
-M  :強制以讀寫的方式掃瞄檔案系統,只有在特殊情況下才會使用。
-f 與 -M 是在檔案系統可能已經啟動 quota 了,但想要重新掃瞄檔案系統時,系統會要求加入的選項啦 (擔心有其他人已經使用 quota 中)!

例:quotaoff -a     //先關閉quota
        quotacheck -uvg /home      //建立Quota的記錄檔

建立過程中會顯示記錄檔尚未建立而已,可以忽略不理!
 
使用ll -d /home/a* (ll 表示ls -l)
會顯示aquota記錄檔  /home/aquota.group  /home/aquota.user


edquota :編輯帳號/群組的限值與寬限時間

edquota 是 edit quota 的縮寫
edquota [-u username] [-g groupname]
edquota -t  <==修改寬限時間
edquota -p 範本帳號 -u 新帳號
選項與參數:
-u  :後面接帳號名稱。設定 username 的限制值;
-g  :後面接群組名稱。設定 groupname 的限制值;
-t  :可以修改寬限時間。
-p  :複製範本。將範本帳號這個人的 quota 限制值複製給 新帳號

編輯某一帳號配額
edquota -u myquota1
Disk quotas for user myquota1 (uid 710):
  Filesystem    blocks  soft   hard  inodes  soft  hard
  /dev/hda3         80     0      0      10     0     0

七個欄位分別的意義為:
  1. 檔案系統 (filesystem):
  2. 磁碟容量 (blocks):這個數值是 quota 自己算出來的,單位為 Kbytes,請不要更動他;
  3. soft:磁碟容量 (block) 的 soft 限制值,單位亦為 KB,(警告上限)
  4. hard:block 的 hard 限制值,單位 KB;(容量上限)
  5. 檔案數量 (inodes):這是 quota 自己算出來的,單位為個數,請不要更動他;
  6. soft:inode 的 soft 限制值;
  7. hard:inode 的 hard 限制值;
當 soft/hard 為 0 時,表示沒有限制的意思。可只需設定 blocks 的 soft/hard ,inode 可不用設定。

範例一: /dev/hda3 80 250000 300000 10 0 0

套用某一帳號設定

範例一:edquota -p  myquota1 -u myquota2    //將p的範例給使用者u
範例二:edquota -p  myquota1  myquota2

寬限時間修改
edquota -t

edquota -ut

Quota限制值的報表
個人報表
quota [-uvs] [username]
quota [-gvs] [groupname]
選項與參數:
-u  :後面可以接 username ,表示顯示出該使用者的 quota 限制值。若不接 username,表示顯示出執行者的 quota 限制值。
-g  :後面可接 groupname ,表示顯示出該群組的 quota 限制值。
-v  :顯示每個用戶在 filesystem 的 quota 值;
-s  :使用 1024 為倍數來指定單位,會顯示如 M 之類的單位!
例: quota -uvs myquota1 

repquota :針對檔案系統的限額做報表
repquota -a [-vugs]
選項與參數:
-a  :直接到 /etc/mtab 搜尋具有 quota 標誌的 filesystem ,並報告 quota 的結果;
-v  :輸出的資料將含有 filesystem 相關的細部資訊;
-u  :顯示出使用者的 quota 限值 (這是預設值);
-g  :顯示出個別群組的 quota 限值。
-s  :使用 M, G 為單位顯示結果

例:repquota -auvs   或           repquota -a


啟動 quota 的服務
quotaon [-avug]
quotaon [-vug] [/mount_point]
選項與參數:
-u  :針對使用者啟動 quota (aquota.user)
-g  :針對群組啟動 quota (aquota.group)
-v  :顯示啟動過程的相關訊息;
-a  :根據/etc/mtab 內的 filesystem 設定啟動有關的quota,若不加 -a 的話,則後面就需要加上特定的 filesystem!

例:quotaon -av

關閉 quota 的服務
quotaoff [-a]
quotaoff [-ug] [/mount_point]
選項與參數:
-a  :全部filesystem 的 quota 都關閉 (根據 /etc/mtab)
-u  :僅針對後面接的那個 /mount_point 關閉 user quota
-g  :僅針對後面接的那個 /mount_point 關閉 group quota

 例:quotaoff -a


測試
測試一:利用一般使用者的身份,建置一個 270MB 的大檔案,並觀察 quota 結果!
dd if=/dev/zero of=bigfile bs=1M count=270


以下是dd說明
dd 可以讀取磁碟裝置的內容(幾乎是直接讀取磁區"sector"),將整個裝置備份成一個檔案呢!
dd if="input_file" of="output_file" bs="block_size" count="number"
選項與參數:
if   :就是 input file 囉~也可以是裝置喔!
of   :就是 output file 喔~也可以是裝置;
bs   :規劃的一個 block 的大小,若未指定則預設是 512 bytes(一個 sector 的大小)
count:多少個 bs 的意思。