2011年11月17日 星期四

帳號與群組

root 的UID及GID皆為0

預設帳號:
Apache或是nobody 執行apache的帳號
dovecot  執行dovecot (pop3伺服器)的帳號
named或bind 執行(DNS伺服器) 的帳號
lp  列印服務的帳號
postfix
squid  (PROXY)

新增帳號設定檔

/etc/default/useradd
SHELL=/bin/sh   //可改為 /bin/bash
# GROUP=100
# HOME=/home
//預設建立一個與帳號相同的群組,在/home 之下
# INACTIVE=-1    //預設不定義密碼變更期限
# EXPIRE=          //預設不定義帳號失效期限


/etc/login.defs
MAIL_DIR        /var/mail    //郵件存放目錄
FAILLOG_ENAB            yes   //登錄失敗狀況

LOG_OK_LOGINS           no      //是否紀綠登入成功的帳號
#記錄 su 的活動
SYSLOG_SU_ENAB          yes
SYSLOG_SG_ENAB          yes
#記錄登入失敗的帳號,可使用lastb查詢
FTMP_FILE       /var/log/btmp
#密碼時效控制
PASS_MAX_DAYS   99999   //可使用日數
PASS_MIN_DAYS   0    //多少日內不得變更
PASS_WARN_AGE   7  //失效幾日前提出警告

# 使用useradd自動取得UID的範圍
UID_MIN                  1000
UID_MAX                 60000
#使用groupadd自動取得GID的範圍
GID_MIN                  1000
GID_MAX                 60000
#密碼錯誤嘗試登入次數
LOGIN_RETRIES           5
#  需在幾秒內登入系統
LOGIN_TIMEOUT           60
#如果帳號目錄不存在,允許登入
DEFAULT_HOME    yes
# 如果群組中沒有其他帳號,使用userdel移除帳號時會一併將該群組刪除
USERGROUPS_ENAB yes


/etc/skel/.bashrc
/etc/skel/.profile

新增帳號
useradd [-u UID] [-g 初始群組] [-G 次要群組] [-mM][-c 說明欄] [-d 家目錄絕對路徑] [-s shell] 使用者帳號名
選項與參數:
-u  :後面接的是 UID ,
-g  :群組名稱, initial group
-G  :群組名稱,還可以加入的群組
-M  :強制!不要建立使用者家目錄!(系統帳號預設值)
-m  :強制!要建立使用者家目錄!(一般帳號預設值)
-c  :說明
-d  :指定某個目錄成為家目錄,而不要使用預設值。務必使用絕對路徑!
-r  :建立一個系統的帳號,這個帳號的 UID 會有限制
-s  :後面接一個 shell ,若沒有指定則預設是 /bin/bash
-e  :後面接一個日期,格式為『YYYY-MM-DD』帳號失效日
-f  :密碼是否會失效。0為立刻失效,-1 為永遠不失效(密碼只會過期而強制於登入時重新設定而已。)


範例一:
useradd -m peter
step 01 /etc/default/useradd
step 02  /etc/login.defs
step 03  /etc/skel/.bash* 複製到該帳號的根目錄之下
/etc/skel/ 預設有 .bashrc  .profile  檔案,由於/etc/default/useradd  指定 SKEL=/etc/skel,因此新增帳號時,會將此目錄下的檔案複製到使用者帳號根目錄下。


範例二:
useradd -u 501 -g 100 -G 1001 -d /home/peter -m peter
由於加了 -m 所以系統會將  /etc/skel 下的 profile 複製到 /home/peter之下的 .bash* ,此外,還有mail spool的相關檔案


範例三:新增與root相同權限的帳號
useradd miffy
passwd miffy
將 miffy 的 uid 與 gid 改為0


useradd 的預設值
useradd -D
GROUP=100        <==預設的群組
HOME=/home        <==預設的家目錄所在目錄
INACTIVE=-1        <==密碼失效日
EXPIRE=            <==帳號失效日
SHELL=/bin/bash        <==預設的 shell
SKEL=/etc/skel        <==使用者家目錄的內容資料參考目錄
CREATE_MAIL_SPOOL=yes   <==是否主動幫使用者建立郵件信箱(mailbox)


刪除帳號
userdel


連根目錄一起刪除
userdel  -r

usermod [-cdegGlsuLU] username   修改帳號
-c  :後面接帳號的說明
-d  :後面接帳號的家目錄
-e  :後面接日期,格式是 YYYY-MM-DD,也就是在 /etc/shadow 內的第八個欄位
-f  :後面接天數,為 shadow 的第七欄位。
-g  :後面接初始群組,修改 /etc/passwd 的第四個欄位!
-G  :後面接次要群組,修改使用者能夠支援的群組,修改的是 /etc/group
-a  :與 -G 合用,可『增加次要群組的支援』而非『設定』
-l  :後面接帳號名稱。亦即是修改帳號名稱, /etc/passwd 的第一欄!
-s  :後面接 Shell 的實際檔案,如 /bin/bash 或 /bin/csh
-u  :後面接 UID 數字
-L  :暫時將使用者的密碼凍結,僅改 /etc/shadow 的密碼欄。
-U  :將 /etc/shadow 密碼欄的 ! 拿掉,帳號可恢復使用

gpasswd:群組管理員功能   
gpasswd groupname
gpasswd [-A user1,...] [-M user3,...] groupname
gpasswd [-rR] groupname
選項與參數:
    :若沒有任何參數時,表示給予 groupname 一個密碼(/etc/gshadow)
-A  :將 groupname 的主控權交由後面的使用者管理(該群組的管理員)
-M  :將某些帳號加入這個群組當中!
-r  :將 groupname 的密碼移除
-R  :讓 groupname 的密碼欄失效
gpasswd [-ad] user groupname
-a  :將某位使用者加入到 groupname 這個群組當中!
-d  :將某位使用者移除出 groupname 這個群組當中。

groupadd 建立群組
groupadd testgroup  <==建立群組

資料來源:鳥哥的 Linux 私房菜 

相關設定檔
/etc/passwd  帳號設定檔
1.帳號名稱:
2.密碼:加密過的密碼欄位,若使用/etc/shadow,則此一欄位為x。若未使用shadow,且密碼欄位為*,則無法使用login
3.UID:使用者識別碼,0(系統管理員),1~1000(系統帳號)
4.GID:主要群組,定義在 /etc/group
5.使用者資訊說明欄:註解
6.家目錄:
7.Shell:(與系統的核心溝通以進行使用者的操作任務),若為 /sbin/nologin 無法登入

若是不想讓帳號登入,除密碼欄位設為*外,可使用passwd -l user ,或是在shell填入 /sbin/nologin 

/etc/shadow 加密過的密碼檔
1.帳號名稱:
2.密碼:加密過的密碼欄位,在此欄位前加上 ! 或 * 改變密碼欄位長度,就會讓密碼『暫時失效』了。
3.最近更動密碼的日期
4.密碼不可被更動的天數,0沒限制
5.密碼需要重新變更的天數,99999沒限制
6.密碼需要變更期限前的警告天數
7.密碼過期後的帳號寬限時間(密碼失效日),不過如果密碼過期了, 那當你登入系統時,系統會強制要求你必須要重新設定密碼才能登入繼續使用喔,
8.帳號失效日期:
9.保留

日期的時間是以 1970 年 1 月 1 日作為 1 而累加的日期

/etc/group
1.群組名稱:
2.群組密碼:這個設定通常是給『群組管理員』使用的,目前很少有這個機會設定群組管理員,密碼已經移動到 /etc/gshadow去,這個欄位只會存在一個『x』
3.GID:就是群組的 ID 啊
4.此群組支援的帳號名稱:若有多個人員,以『,』隔開


/var/mail/帳號名稱  使用者郵件

newgrp: 有效群組的切換
exit 離開回原有效群組
參考資料:鳥哥的 Linux 私房菜 


2011年11月16日 星期三

linux特殊的檔案系統

虛擬記憶體
大小約實體記憶體2倍,不需要超過2GB

新增 swap partition
  1. 以『 fdisk /dev/hd[a-d] 』先建立一個 partition (或 parted)
  2. 以『 mkswap /dev/hd[a-d][1-16] 』將 partition 『格式化為 swap 的格式』
  3. 將 swap 啟動,『 swapon /dev/hd[a-d][1-16] 』
  • 開機自動啟動,在/etc/fstab之中新增一行       /dev/hdb1   none  swap  sw 0  0
  • 觀看指令: free    或   cat /proc/swaps
刪除 swap partition 
swap 關掉:swapoff /dev/hd[a-d][1-16]
刪除 /etc/fstab 中的設定
使用fdisk 移除partition

新增 swap file
  1. 以 dd 指令來建立 swapfile (這個指令可不只是製作一個檔案而已喔)
    • 例一: dd if=/dev/zero of=/tmp/swap bs=4k count=16382
      16382+0 records in
      16382+0 records out
      dd 這個指令是用來轉換檔案並且 copy 用的;
      if 指的是要被轉換的輸入檔案格式 /dev/zero 可以由 man zero 來查看內容;
      of 指的是輸出的檔案,我們將之輸出到 /tmp/swap 這個檔案;
      bs 指的是一個磁區佔用幾個 kb ;
      count 指的是要使用多少個 bs ,所以最後的容量為 bs*count = 4k * 16382 ~ 64MB
    • 例二: dd if=/dev/zero of=/newswap bs=1024 count=131072 
  2. 使用『 mkswap  /tmp/swap』將 /tmp/swap 這個檔案格式化為 swap 的檔案格式:
  3. 以『 swapon  /tmp/swap』 來將 /tmp/swap 啟動 
  • 開機自動啟動,在/etc/fstab之中新增一行       /tmp/swap   swap  swap  noatime 0  0(不知這樣設定是否正確)
  • 觀看指令: free    或   cat /proc/swaps 
刪除 swap partition 
swapoff  /tmp/swap
刪除 /etc/fstab 中的設定
rm 移除檔案

/proc/sys/目錄
每個檔案代表不同的 kernel 配置,允許使用者改變,可以藉此調整系統
改變數值可直接用 echo 或 vi  改變,例如:echo 60000 > /proc/sys/fs/file-max

或使用 sysctl 指令
-a 可以列出所有可以調整的項目。
-w 可以重新設定,但是記住 等號 旁不用空格。

例來說,在 /proc/sys/fs/file-max 中的配置指定了可一次開啟的最多檔案數目
顯示設定值:sysctl fs.file-max  或  

修改設定值:sysctl -w fs.file-max=60000 

若是開機就變更,可以將指令寫到 /etc/conf.d/local.start,
或是修改 /etc/sysctl.conf

以下值可用  cat 觀看,如:cat /proc/sys/fs/file-nr
  • /proc/sys/fs/file-max - 核心預設最多可以開啟的檔案個數
  • /proc/sys/fs/file-nr - 目前已分配檔案個數、開啟檔案個數、總開啟檔案上限
  • /proc/sys/fs/inode-state  -inode相關資訊
    /proc/sys/fs/inode-nr   (number of inodes and number of free inodes)
  • /proc/sys/kernel/acct -(accounting free space (as a percentage))預設為2 4 30表示日誌系統少於 2% 的可用空間,記帳停止,有4%或更多可用空間,則再次啟動記帳。每30 秒檢查。
  • /proc/sys/kernel/ctrl-alt-del  - 接收到 ctrl+alt+del 時如何反應。0值表示系統可以完整地關閉和重啟,資料回存,就像 shutdown 命令一樣。1值表示直接重新開機,就好像直接關閉電源一樣。
  • /proc/sys/kernel/domainname    /proc/sys/kernel/hostname 應透過 /etc/hosts更改
  • /proc/sys/kernel/osrelease  核心版本
  • /proc/sys/kernel/ostype  作業系統種類
  • /proc/sys/kernel/version發行版本
  • /proc/sys/kernel/modprobe  modprobe的位置
  • /proc/sys/net/ipv4/icmp_echo_ignore_all  1值表示不回應icmp echo封包,如ping
  • /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 1值表示不回應icmp廣播封包
  • /proc/sys/net/ipv4/ip_default_ttl  封包能存活所經過位置的個數(轉送位置)
  • /proc/sys/net/ipv4/ip_dynaddr 允許socket重新訂定IP(動態IP是必要的)
  • /proc/sys/net/ipv4/ip_forward 1值表示這台是router
  • /proc/sys/net/ipv4/ip_local_port_range 本機連到外面所用的port範圍
  • /proc/sys/net/ipv4/tcp_keepalive_intvl 當一個探測沒有獲得確認,隔多久要被重送。
  • /proc/sys/net/ipv4/tcp_keepalive_probes 在斷線之前,要送出多少個keepalive探測。
  • /proc/sys/net/ipv4/tcp_keepalive_time 多久送出一次仍保持連線的訊息,預設2小時
  • /proc/sys/net/ipv4/tcp_syn_retries 對外建立TCP連線,所送出開始的SYNs的次數
  • /proc/sys/net/ipv4/tcp_fin_timeout socket結束前用來接收一個結束FIN的封包的時間(秒)
  • /proc/sys/net/ipv4/tcp_retries1 在放棄前,回應TCP連線重新傳遞的請求的次數。
  • /proc/sys/net/ipv4/tcp_retries2 在放棄前,TCP連線重新傳遞的請求的次數。
  • /proc/sys/net/ipv4/tcp_syncookies  1表示不回應tcp新建立的連線不為syn的封包
  • /proc/sys/vm/max_map_count 一個程序所擁有的記憶體對應區域
  • /proc/sys/vm/overcommit_memory 0值時,核心在配置程序所用的記憶體時,會檢查是否有足夠憶體
/proc/的其它部分
/proc/下的數字部分
  •  cd /proc  進入proc之後,會有許多數字的目錄,代表是process id
  • cmdline  記載執行某個process id的完整指令,例如: cat /proc/1202/cmdline
  • cwd Process的工作目錄,例:  ls -l /proc/1353/cwd
  • exe 執行檔實際位置的連結,例:ls -l /proc/1353/exe
  • fd 被這個process所開啟的檔案,0是input,1是output, 2是錯誤,其他為程式另外定義,例如:    ls -l /proc/1353/fd
  • maps 這個程式所對應的記憶體使用區塊及權限。例:cat /proc/1353/maps
  • stat 這個process的狀態資訊,例如: cat /proc/1353/stat
/proc/下的非數字部分
  • cmdline 提供給linux核心的開機參數 cat /proc/cmdline
  • cpuinfo 例如: cat /proc/cpuinfo
  • devices 例如:cat /proc/devices
  • filesystems 列出核心所支援的file system 例如: cat /proc/filesystems
  • ide  列出ide裝置資訊,例如: ll /proc/ide/
  • interrupts 列出IRQ資訊,例如: cat /proc/interrupts
  • iomem 列出I/O記憶體的對應,例如:  cat /proc/iomem
  • ioports 列出正確註冊,且在使用的I/O,例如:  cat /proc/ioports
  • loadavg 工作平均數,例如: cat /proc/loadavg
  • meminfo 記憶體資訊例如:cat /proc/meminfo
  • modules,例如:cat /proc/modules
  • partitions,例如:cat /proc/partitions
  • pci,例如:cat /proc/pci
  • scsi,例如:ls -l  /proc/scsi
  • stat,核心與系統方面統計,例如:cat /proc/stat
  • swaps,例如:cat /proc/swaps
  • sysvipc  程序間通訊相關資料,有三個檔案,shm共用記憶體資料, sem號誌陣列, msg訊息佇列 ,例:ls -l /proc/sysvipc/ 。也可用  ipcs 指令來觀察
  • cat /proc/uptime  包含總的系統正常工作時間及空閒時間
  • cat /proc/version 核心資訊及gcc版本
/proc/net/
  • cat /proc/net/arp  網路卡卡號與IP對應
  • cat /proc/net/dev  網路裝置及傳送與接收的統計
  • cat /proc/net/netstat 網路統計數字
  • cat /proc/net/psched  (packet schedule)所有排程參數
  • cat /proc/net/raw (raw device)的統計數字
  • cat /proc/net/route
  • cat /proc/net/snmp (Simple Network Management Protocol)
  • cat /proc/net/sockstat
  • cat /proc/net/tcp
  • cat /proc/net/udp
  • cat /proc/net/wireless

linux系統目錄

系統目錄
  • /bin    放置的是在單人維護模式下還能夠被操作的指令,可被root與一般帳號所使用
  • /boot   放置開機會使用到的檔案,包括Linux核心檔案以及開機選單與開機設定檔。 Linux kernel常用的檔名為vmlinuz,若使用grub開機管理程式, 則會有 /boot/grub/目錄
  • /cdrom CDROM的內容,連結到 /media/cdrom 
  • /dev 硬體裝置檔,比要重要的檔案有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等
  • /etc 本機特定的系統設定檔,這個目錄下的各檔案屬性是可以讓一般使用者查閱的, 但是只有root有權力修改。FHS建議不要放執行檔在這個目錄中。比較重要的檔案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/
  • 其下重要的目錄有
    • /etc/init.d/:放置所有服務的預設啟動 script ,例:/etc/init.d/iptables start、/etc/init.d/iptables stop
    • /etc/xinetd.d/:super daemon管理的各項服務的設定檔目錄
    • /etc/X11/:與 X Window 有關的各種設定檔,xorg.conf 是 X Server 的設定檔
    • /etc/sysconfig 系統設定檔
    • /etc/sgml SGML以及xml的設定檔
  • /home 使用者家目錄,~:代表目前使用者家目錄,而~abc :則代表abc 的家目錄!
  • /lib 放置在開機時會用到的函式庫, 以及在/bin或/sbin底下的指令會呼叫的函式庫,/lib/modules/目錄, 會放置核心相關的模組(驅動程式)
  • /lost+found 檔案系統檢查之後,所回復的檔案
  • /media 可移動裝置的掛接點,如:/media/floppy, /media/cdrom
  • /mnt 暫時性掛接點,用途與/media相同,有了/media之後,/mnt就用來暫時掛載用。
  • /opt 額外的軟體或是套件,給第三方協力軟體放置的目錄,還可放置自行安裝額外的軟體(非原本的distribution提供的),不過自行安裝的軟體習慣放置在/usr/local目錄下!
  • /proc 核心狀態目錄,這個目錄本身是一個『虛擬檔案系統(virtual filesystem)』,放置的資料都是在記憶體中,本身不佔任何硬碟空間, 例如系統核心、行程資訊(process)、周邊裝置的狀態及網路狀態。例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/*
  • /root 系統管理者的根目錄,進入單人維護模式僅會掛載根目錄,因此root的家目錄與根目錄須放置在同一個分割槽中。
  • /sbin 必要的系統執行檔,僅提供給管理者使用,放在/sbin目錄為開機過程中所需要的,裡面包括了開機、修復、還原系統所需要的指令。至於某些伺服器軟體程式,一般則放置到/usr/sbin/當中。至於本機自行安裝的軟體所產生的系統執行檔(system binary), 則放置到/usr/local/sbin/當中了。常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。
  • /selinux SELinux系統的目錄,預設為空
  • /sys  核心系統中對裝置的即時資訊,是一個虛擬的檔案系統,主要記錄與核心相關的資訊。包括目前已載入的核心模組與核心偵測到的硬體裝置資訊,不佔硬碟容量!
  • /tmp 暫存區
  • /usr 系統工具所在的目錄,是Unix Software Resource的縮寫,系統預設的軟體(distribution發佈者提供的軟體)都會放置到/usr底下,系統剛安裝完畢時,這個目錄會佔用最多的硬碟容量。/usr的次目錄建議有底下這些:
    • /usr/X11R6/ 為X Window System重要資料的目錄,X11表示最後的X版本為第11版,R6表示第6次釋出之意。
    • /usr/bin/   放置使用者可使用的指令,與/bin的不同之處在是否與開機過程有關
    • /usr/include/  c/c++等程式語言的檔頭(header)與包含檔(include)
    • /usr/lib/  包含各應用軟體的函式庫、目標檔案(object file),以及不被一般使用者慣用的執行檔或腳本(script)。 某些軟體會提供一些特殊的指令來進行伺服器的設定,這些指令也不會經常被系統管理員操作, 那就會放到這個目錄。如果使用X86_64的Linux系統, 那可能會有/usr/lib64/目錄產生
    • /usr/local/ 系統管理員安裝自己下載的軟體(非distribution預設),建議安裝到此,這樣會便於管理。舉例來說,distribution提供的軟體較舊,想安裝較新的軟體又不想移除舊版,可以將新版軟體安裝於/usr/local/目錄下,與原先的舊版軟體區別,該目錄下也是具有bin, etc, include, lib...的次目錄! 
    • /usr/sbin/ 非系統正常運作所需要的系統指令。最常見的就是某些網路伺服器軟體的服務指令(daemon)!
    • /usr/share/ 放置共享文件的地方,在這個目錄下放置的資料幾乎是不分硬體架構均可讀取的資料, 因為幾乎都是文字檔案!在此目錄下常見次目錄:
      • /usr/share/man:線上說明文件 
      • /usr/share/doc:軟體雜項的文件說明 
      • /usr/share/zoneinfo:與時區有關的時區檔案 
      • /usr/share/misc/ 不需要在/usr/share/中建立子目錄者
    • /usr/src/ 一般原始碼,核心原始碼則建議放置到/usr/src/linux/目錄下
  • /var 變動的資料,包括快取(cache)、登錄檔(log file)以及某些軟體運作所產生的檔案, 包括程序檔案(lock file, run file),或者MySQL資料庫的檔案。常見的次目錄有:
    • /var/cache/ 應用程式本身運作過程中會產生的一些暫存檔;
    • /var/lib/ 程式本身執行的過程中,需要使用到的資料檔案放置的目錄。各自的軟體應該要有各自的目錄,如:MySQL的資料庫放置到/var/lib/mysql/,rpm的資料庫則放到/var/lib/rpm去! 
    • /var/lock/ 某些裝置或者是檔案資源一次只能被一個應用程式所使用,因此就得要將該裝置上鎖(lock)
    • /var/log/ 登錄檔!如/var/log/messages, /var/log/wtmp(記錄登入者的資訊)等。 
    • /var/mail/ 電子郵件信箱目錄,這個目錄也放置到/var/spool/mail/,通常這兩個目錄是互為連結檔
    • /var/run/ 某些程式或者是服務啟動後,會將他們的PID放置在這個目錄
    • /var/spool/ 放置一些佇列資料,這些資料被使用後通常都會被刪除。如:新信會放置到/var/spool/mail/中, 暫時寄不出去會被放到/var/spool/mqueue/中, 工作排程資料(crontab),就會被放置到/var/spool/cron/中 。
開機過程中僅有根目錄會被掛載,以下五個目錄千萬不可與根目錄分開在不同的分割槽!
  • /etc:設定檔
  • /bin:重要執行檔
  • /dev:所需要的裝置檔案
  • /lib:執行檔所需的函式庫與核心所需的模組
  • /sbin:重要的系統執行檔

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

2011年11月14日 星期一

硬碟與檔案系統

硬碟代號
IDE硬碟:
/dev/hdX,X為a,b,c
SCSI與SATA
/dev/sdX,X為a,b,c (部份SATA視驅動程式而定)
RAID或其他裝置,視驅動程式而定

分割區
在原有的硬碟裝置後面加上數字,如/dev/sda切了三個分割區:
/dev/sda1、/dev/sda2、/dev/sda3


dumpe2fs 觀察檔案系統 (dump filesystem information )
例如:
dumpe2fs /dev/sda2
dumpe2fs /dev/sda2 | grep "Block size"



格式化程式
mke2fs : ext2 ext3 的格式化程式
mke2fs -t ext4 /dev/sda1  //格式化為ext4的檔案系統


lsattr (顯示檔案隱藏屬性)
list file attributes on a Linux second extended file system 






掛接點
/etc/fstab
file system table  對應硬體與掛接的目錄
開機時及使用mount -a 相關指令會讀取此檔
例如以下檔案:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda2 during installation
UUID=7e632e4d-eb08-4b16-a2a4-5e8af9442972 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda1 during installation
UUID=d7e6d3f3-add0-4df3-b6d6-6da4870b3922 none            swap    sw              0       0

<file system>
  • 硬碟分區對應檔案,如/dev/hda1 ,
  • 或標籤代號如LABEL=/boot(必須使用e2label去定義標籤代號),
e2label 裝置名稱  新的Label名稱 
如:  e2label /dev/hdc6 "my_test"
  • 或使用UUID=7e632e4d-eb08-4b16-a2a4-5e8af9442972 
<mount point>
  • 掛載點,一定是目錄
<type>
  • 檔案系統類型
<options>掛接選項
  • async/sync 非同步/同步
    設定磁碟是否以非同步方式運作!預設為 async(效能較佳)
  • atime或noatime 讀取時是否更新檔案或目錄inode上的最後存取時間。
    此欄位只有較新版的才有支援 ,可使用relative自動判斷更新的時間
  • auto/noauto 自動/非自動
    當下達 mount -a 時,此檔案系統是否會被主動掛載。預設為 auto
  • rw/ro 可讀寫/唯讀
  • exec/noexec 可執行/不可執行
  • user/nouser 允許/不允許使用者掛載 (不允許使用者掛載較安全)
  • suid/nosuid 具有/不具有 suid 權限
  • usrquota 啟動 filesystem 支援磁碟配額模式
  • grpquota 啟動 filesystem 對群組磁碟配額模式的支援
  • sw swap專用
  • defaults  時具有 rw, suid, dev, exec, auto, nouser, async 等參數。 基本上,預設情況使用 defaults 設定即可!

<dump>
  • dump 是一個用來做為備份的指令, 0 代表不要做 dump 備份, 1 代表要每天進行 dump 的動作。 2 也代表其他週期的 dump 備份動作,
<pass>
  • 是否以 fsck 檢驗磁區:
  • 0 是不要檢驗, 1 表示最早檢驗(一般只有根目錄會設定為 1), 2 也是要檢驗,不過 1 會比較早被檢驗! 一般來說,根目錄設定為 1 ,其他的要檢驗的 filesystem 都設定為 2 就好了。
  • 某些 filesystem 是不需要檢驗的,例如記憶體置換空間 (swap) ,或者是特殊檔案系統例如 /proc 與 /sys 等等

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


檔案類型
- 一般檔案
d 目錄
l 連結
b block special (設備檔)  如:ls -l /dev/sda2
c character special  如:ls -l /dev/tty0
s socket 如: ls -l /dev/log

file <檔案>  //顯示檔案類型

建立連結
ln A B  //建立硬連結B,直接指到儲存區塊,必須在同一檔案系統下
ln -s A C //建立軟連結C,指到A的檔案名稱,不受檔案系統的限制


系統目錄
  • /bin    放置的是在單人維護模式下還能夠被操作的指令,可被root與一般帳號所使用
  • /boot   放置開機會使用到的檔案,包括Linux核心檔案以及開機選單與開機設定檔。 Linux kernel常用的檔名為vmlinuz,若使用grub開機管理程式, 則會有 /boot/grub/目錄
mount  指令
mount [-l]
mount [-t 檔案系統] [-L Label名] [-o 額外選項] \[-n]  裝置檔名  掛載點

-a  :依 /etc/fstab 的資料將所有未掛載的磁碟都掛載
-l  :輸入 mount 會顯示目前掛載的資訊。加上 -l 可增列 Label 名稱!
-t  :檔案系統種類來指定欲掛載的類型,如:ext2, ext3, vfat, reiserfs, iso9660(光碟格式),
      nfs, cifs, smbfs(此三種為網路檔案系統類型)
-n  :預設系統會將掛載的情況即時寫入 /etc/mtab 中,以利其他程式的運作。但在某些情況下(例如單人維護模式)為了避免問題,會刻意不寫入。此時要使用 -n 選項。
-L  :系統除了利用裝置檔名 (例如 /dev/hdc6) 之外,還可以利用檔案系統的標頭名稱(Label)來進行掛載。
-o  :後面可以接一些掛載時額外加上的參數!比方說帳號、密碼、讀寫權限等:
      ro, rw:       唯讀(ro) 或可讀寫(rw)
      async, sync:  同步寫入 (sync) 或非同步 (async) 的,預設為 async。
      auto, noauto: 允許此 partition 被以 mount -a 自動掛載(auto)
      dev, nodev:   是否允許此 partition 上,可建立裝置檔案? dev 為可允許
      suid, nosuid: 是否允許此 partition 含有 suid/sgid 的檔案格式?
      exec, noexec: 是否允許此 partition 上擁有可執行 binary 檔案?
      user, nouser: 一般來說,mount 僅有 root 可以進行,但下達 user 參數,則可讓一般 user 也能夠對此 partition 進行 mount 。
      defaults:     預設值為:rw, suid, dev, exec, auto, nouser, and async
      remount:      重新掛載
參考資料:鳥哥的linux私房菜














2011年11月13日 星期日

開關機

關機:
init 0
shutdown -h
poweroff

重新啟動
init 6
reboot

linux程序

程序的觀察

ps aux  <==觀察系統所有的程序資料
ps -lA  <==也是能夠觀察所有系統的資料
ps axjf <==連同部分程序樹狀態
選項與參數:
-A  :所有的 process 均顯示出來,與 -e 具有同樣的效用;
-a  :不與 terminal 有關的所有 process ;
-u  :有效使用者 (effective user) 相關的 process ;
x   :通常與 a 這個參數一起使用,可列出較完整資訊。
輸出格式規劃:
l   :較長、較詳細的將該 PID 的的資訊列出;
j   :工作的格式 (jobs format)
-f  :做一個更為完整的輸出。
 
資料來源:鳥哥的Linux私房菜 
 
 
訊號
 
kill -l   系統有哪些訊號
 
終止程序 
ps -ef   //找出PID
kill -9   PID    //終止某一程序 
 
內部程序的溝通(記憶體、號誌陣列、訊息佇列)
觀看 
ipcs   //interprocess communication
刪除  
ipcrm  
 
//若要kill shared memory  共用記憶體資料段
ipcrm -m shared_memory_id
//若要kill semaphore    號誌陣列
ipcrm -s semaphore_id
//若要kill message queue  訊息佇列
ipcrm -q message_queue_id


 

uuid

Universal Unique Identifie
參考資料:使用 UUID 管理檔案系統