1:網卡文件/etc/sysconfig/network-scripts/ifcfg-eth0
[root@Gin scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ## 物理設備名,eth0為第一塊網卡;eth1為第二塊網卡 HWADDR=00:0C:29:84:0C:21 ## 網卡的MAC地址,48位 TYPE=Ethernet ## 以太網 UUID=09ae6890-2925-4ca0-9cbc-e937593624f8 ## 唯一的一個用戶標識,相當於身份證號碼!如查看磁盤設備的UUID使用blkid命令 ONBOOT=yes ## 控制網卡是否開機啟動 NM_CONTROLLED=yes ##是否通過networkmanager管理網卡設備 BOOTPROTO=dhcp ## proto取下列值之一:none,引導時不使用協議;static,靜態分配地址;bootp,使用BOOTP協議;dhcp,使用DHCP協議 IIPADDR=192.168.17.128 ## IP地址 NETMASK=255.255.255.0 ## 子網掩碼,划分網絡位和主機位 DNS2=202.106.0.20 ## DNS是把baidu.com變成了baidu服務器IP。DNS就是域名和IP的解析工具 DNS1=8.8.8.8 GATEWAY=192.168.0.1 ## 網關地址,路由器的地址 USERCTL=no PEERDNS=yes IPV6INIT=no
2:/etc/fstab
fstab - static information about the filesystems
作用:設置文件系統掛載信息的文件,使得開機能夠自動掛載磁盤分區
[root@Gin scripts]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Tue Jan 24 02:46:13 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=91a2efd1-8bf1-42d2-a387-e22e4b665a36 / ext4 defaults 1 1 UUID=3f124651-9d7a-42b4-8cfa-11053a5a8ffc /boot ext4 defaults 1 2 UUID=8cb814f4-f2f4-4bb0-a127-c97092845fcf swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
字段定義
/etc/fstab
文件包含了如下字段,通過空格或 Tab 分隔:
<file system> <dir> <type> <options> <dump> <pass>
#第一列:要被掛載的磁盤設備
#第二列:前面目錄的掛載點(前面的目錄掛載到哪個目錄下)
#第三列:掛載的文件系統類型!支持許多種不同的文件系統:ext2
, ext3
, ext4
, reiserfs
, xfs
, jfs
, smbfs
, iso9660
, vfat
, ntfs
, swap
及 auto
。 設置成auto
類型,mount 命令會猜測使用的文件系統類型,對 CDROM 和 DVD 等移動設備是非常有用的。
#第四列:掛載的選項!注意有些mount 參數是特定文件系統才有的。一些比較常用的參數有
auto
- 在啟動時或鍵入了mount -a
命令時自動掛載。noauto
- 只在你的命令下被掛載。exec
- 允許執行此分區的二進制文件。noexec
- 不允許執行此文件系統上的二進制文件。ro
- 以只讀模式掛載文件系統。rw
- 以讀寫模式掛載文件系統。user
- 允許任意用戶掛載此文件系統,若無顯示定義,隱含啟用noexec
,nosuid
,nodev
參數。users
- 允許所有 users 組中的用戶掛載文件系統.nouser
- 只能被 root 掛載。owner
- 允許設備所有者掛載.sync
- I/O 同步進行。async
- I/O 異步進行。dev
- 解析文件系統上的塊特殊設備。nodev
- 不解析文件系統上的塊特殊設備。suid
- 允許 suid 操作和設定 sgid 位。這一參數通常用於一些特殊任務,使一般用戶運行程序時臨時提升權限。nosuid
- 禁止 suid 操作和設定 sgid 位。noatime
- 不更新文件系統上 inode 訪問記錄,可以提升性能(參見 atime 參數)。nodiratime
- 不更新文件系統上的目錄 inode 訪問記錄,可以提升性能(參見 atime 參數)。relatime
- 實時更新 inode access 記錄。只有在記錄中的訪問時間早於當前訪問才會被更新。(與 noatime 相似,但不會打斷如 mutt 或其它程序探測文件在上次訪問后是否被修改的進程。),可以提升性能(參見 atime 參數)。flush
-vfat
的選項,更頻繁的刷新數據,復制對話框或進度條在全部數據都寫入后才消失。defaults
- 使用文件系統的默認掛載參數,例如ext4
的默認參數為:rw
,suid
,dev
,exec
,auto
,nouser
,async
.
#第五列:是否需要備份磁盤,1表示需要備份,0表示不需要備份
#第六列:開機是否自檢
文件系統標識
在 /etc/fstab
配置文件中你可以以三種不同的方法表示文件系統:內核名稱、UUID 或者 label。使用 UUID 或是 label 的好處在於它們與磁盤順序無關。如果你在 BIOS 中改變了你的存儲設備順序,或是重新拔插了存儲設備,或是因為一些 BIOS 可能會隨機地改變存儲設備的順序,那么用 UUID 或是 label 來表示將更有效。
要顯示分區的基本信息請運行:
[root@Gin scripts]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sr0 iso9660 CentOS_6.6_Final sda ├─sda1 ext4 3f124651-9d7a-42b4-8cfa-11053a5a8ffc /boot ├─sda2 swap 8cb814f4-f2f4-4bb0-a127-c97092845fcf [SWAP] └─sda3 ext4 91a2efd1-8bf1-42d2-a387-e22e4b665a36 /
UUID
所有分區和設備都有唯一的 UUID。它們由文件系統生成工具 (mkfs.*
) 在創建文件系統時生成。
lsblk -f
命令將顯示所有設備的 UUID 值。/etc/fstab
中使用 UUID=
前綴:
手動掛載測試
1:創建一個虛擬的塊設備
[root@Gin scripts]# dd if=/dev/zero of=/dev/sdb1 bs=4096 count=10
2:格式化
[root@Gin scripts]# mkfs.ext4 /dev/sdb1
3:掛載
[root@Gin scripts]# mount -t ext4 -o loop,noatime,noexec /dev/sdb1 /mnt
4:查看掛載設置
[root@Gin scripts]# df -hT
5:寫入/etc/fstab配置文件,開機自動掛載!也可以寫入到/etc/rc.local文件
[root@Gin scripts]# cat /etc/fstab UUID=435a2a45-0f41-49b0-b3f2-5d4a00615339 / ext4 defaults 1 1 UUID=851d3618-fb61-40cb-ba6d-e0879a7d06a3 /boot ext4 defaults 1 2 UUID=91f17110-1462-4327-82ce-474f728f2e62 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sdb1 /mnt ext4 loop,noatime,noexec 0 0
#上面的/dev/sdb1需要掛載的目錄,可以使用UUID來替代,查看UUID命令如下:blkid 或 ls -l /dev/disk/by-uuid
fstab出問題的修復方案:
1)開機提示,輸入密碼 修改
2)救援模式,rescue
修復/etc/fstab只讀狀態:mount -o rw,remount /
3:/etc/passwd
[root@Gin scripts]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin
............................................
從上面的例子我們可以看到,/etc/passwd中一行記錄對應着一個用戶,每行記錄又被冒號(:)分隔為7個字段,其格式和具體含義如下:
root | :x | :0 | :0 | :root | :root | :/bin/bash |
賬號名稱 | 賬號密碼 | 賬號UID | 賬號GID | 用戶說明 | 用戶家目錄 | shell解釋器 |
賬號名稱(login_name):是代表用戶賬號的字符串。通常長度不超過8個字符,並且由大小寫字母和/或數字組成。登錄名中不能有冒號(:),因為冒號在這里是分隔符。為了兼容起見,登錄名中最好不要包含點字符(.),並且不使用連字符(-)和加號(+)打頭。
賬號密碼(passwd):一些系統中,存放着加密后的用戶口令字。雖然這個字段存放的只是用戶口令的加密串,不是明文,但是由於/etc/passwd文件對所有用戶都可讀,所以這仍是一個安全隱患。因此,現在許多Linux系統(如SVR4)都使用了shadow技術,把真正的加密后的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個特殊的字符,例如“x”或者“*”。
賬號UID(UID):是一個整數,系統內部用它來標識用戶。一般情況下它與用戶名是一一對應的。如果幾個用戶名對應的用戶標識號是一樣的,系統內部將把它們視為同一個用戶,但是它們可以有不同的口令、不同的主目錄以及不同的登錄Shell等。取值范圍是0-65535。0是超級用戶root的標識號,1-99由系統保留,作為管理賬號,普通用戶的標識號從100開始。在Linux系統中,這個界限是500。
賬號GID(GID):字段記錄的是用戶所屬的用戶組。它對應着/etc/group文件中的一條記錄。
用戶說明(users):字段記錄着用戶的一些個人情況,例如用戶的真實姓名、電話、地址等,這個字段並沒有什么實際的用途。在不同的Linux系統中,這個字段的格式並沒有統一。在許多Linux系統中,這個字段存放的是一段任意的注釋性描述文字,用做finger命令的輸出。
用戶家目錄(home_directory):也就是用戶的起始工作目錄,它是用戶在登錄到系統之后所處的目錄。在大多數系統中,各用戶的主目錄都被組織在同一個特定的目錄下,而用戶主目錄的名稱就是該用戶的登錄名。各用戶對自己的主目錄有讀、寫、執行(搜索)權限,其他用戶對此目錄的訪問權限則根據具體情況設置。
Shell解釋器(Shell):用戶登錄后,要啟動一個進程,負責將用戶的操作傳給內核,這個進程是用戶登錄到系統后運行的命令解釋器或某個特定的程序,即Shell。Shell是用戶與Linux系統之間的接口。Linux的Shell有許多種,每種都有不同的特點。常用的有sh(BourneShell),csh(CShell),ksh(KornShell),tcsh(TENEX/TOPS-20typeCShell),bash(BourneAgainShell)等。系統管理員可以根據系統情況和用戶習慣為用戶指定某個Shell。如果不指定Shell,那么系統使用sh為默認的登錄Shell,即這個字段的值為/bin/sh。
用戶的登錄Shell可以指定為某個特定的程序(此程序不是一個命令解釋器)。利用這一特點,我們可以限制用戶只能運行指定的應用程序,在該應用程序運行結束后,用戶就自動退出了系統。有些Linux系統要求只有那些在系統中登記了的程序才能出現在這個字段中。
4:/etc/shadow
文件屬性:
[root@Gin scripts]# ll /etc/shadow ---------- 1 root root 964 Jan 26 14:30 /etc/shadow
文件內容:
[root@Gin scripts]# ll /etc/shadow poe:$6$c3hp3bcj$f2i1namN9feDDhgda3mdtVEb5PyWFyw2MCeshWHajq7OJ0.0Bo0Lh0FY2W3BaVOztszOip/D4h5LF9pRLJfe11:12784:0:99999:7:::
以‘:’作為分隔符號,如果數一數,會發現共有九個位啊, 這九個位的用途是這樣的:
1. 帳號名稱:由於密碼也需要與帳號對應啊~因此, 這個檔案的第一欄就是帳號,必須要與 /etc/passwd 相同才行!
2. 密碼:這個才是真正的密碼,而且是經過編碼過的密碼! 你只會看到有一些特殊符號的字母就是了!需要特別留意的是, 雖然這些加密過的密碼很難被解出來,但是‘很難’不等於‘不會’,所以, 這個檔案只有 root 才可以讀寫!你得隨時注意,不要不小心更動了這個檔案的屬性呢!另外, 如果是在密碼欄的第一個字元為‘ * ’或者是‘ ! ’,表示這個帳號並不會被用來登錄的意思。 所以萬一哪一天你的某個使用者不乖時,可以先在這個檔案中,將他的密碼欄位的最前面多加一個 * !他就無法使用該帳號!
3. 最近更動密碼的日期:這個欄位記錄了‘更動密碼的那一天’的日期, 不過,很奇怪呀!在我的例子中怎么會是 12784呢?呵呵,這個是因為計算 Linux 日期的時間是以 1970 年 1 月 1 日作為 1 ,而 1971 年 1 月 1 日則為 366 ! 所以這個日期是累加的!得注意一下這個資料呦!那么最近的 2005 年 1 月 1 日就是 12784 啦,瞭解了嗎?
4. 密碼不可被更動的天數: 第四個欄位記錄了這個帳號的密碼需要經過幾天才可以被變更!如果是 0 的話, 表示密碼隨時可以更動的意思。這樣的限制是為了怕密碼被某些人一改再改而設計的!如果設定為 20 天的話,那么當你設定了密碼之后, 20 天之內都無法改變這個密碼!
5. 密碼需要重新變更的天數: 由於害怕密碼被某些‘有心人士’竊取而危害到整個系統的安全,所以有了這個欄位的設計。 你必須要在這個時間之內重新設定你的密碼,否則這個帳號將會暫時失效。 而如果像上面的 99999 的話,那就表示,密碼不需要重新輸入! 不過,如果是為了安全性,最好可以設定一段時間之后,嚴格要求使用者變更密碼!
6. 密碼需要變更期限前的警告期限:當帳號的密碼失效期限快要到的時候, 就是上面那個‘必須變更密碼’的那個時間時, 系統會依據這個欄位的設定,發出‘警告’言論給這個帳號,提醒他‘再過 n 天你的密碼就要失效了,請盡快重新設定你的密碼!如上面的例子,則是密碼到期之前的 7 天之內,系統會警告該用戶。
7. 密碼過期的受限時間:如果用戶過了警告期限沒有重新輸入密碼, 使得密碼失效了,也就是說,你在‘必須變更密碼的期限前,並沒有變更你的密碼!’ 那么該組密碼就稱為‘失效的密碼’~怎么辦?沒關系,還有這個欄位的天數設計啊~ 意思就是說,當密碼失效后,你還可以用這個密碼在 n 天內進行登入的意思。 而如果在這個天數后還是沒有變更密碼,那么您的帳號就失效了!無法登入!
8. 帳號失效日期:這個日期跟第三個欄位一樣,都是使用 1970 年以來的總日數設定。這個欄位表示: 這個帳號在此欄位規定的日期之后,將無法再使用。 這個欄位會被使用通常應該是在‘收費服務’的系統中, 你可以規定一個日期讓該帳號不能再使用!
9. 保留:最后一個欄位是保留的
舉例:假如系統有一個dmtsai 用戶,它的/etc/passwd文件信息如下所示
dmtsai:$1$8zdAKdfC$XDa8eSus2I7nQL7UjRsIy/:13025:5:60:7:2:13125:
這表示什么呢?要注意的是, 13025 是 2005/08/30 ,所以, dmtsai 這個使用者他的密碼相關意義是:
You must wait longer to change your password passwd: Authentication token manipulation error
Warning: your password will expire in 5 days