1. 用戶配置文件和密碼配置文件
eg. /etc/passwd
每一個用戶一行,新建的用戶會顯示在底端,然後由冒號:分割爲了七段
第一段是用戶名,第二段表示密碼,第三段表示UID,第四段是GID,第五段表示用戶的註釋信息沒有實質作用,第六行表示用戶的家目錄,第七行表示用戶的shell(/bin/bash就是可以登錄的用戶;/sbin/nologin/是不能登陸的)
/etc/shadow (專門用來存密碼)-和用戶的文件是一一對應的
各個段的含義
如何設置用戶密碼
2. 用戶組管理
eg. /etc/group
cat /etc/gshadow
Note:觀察發現,當ls命令式會看到各個文件分別有一個x- (紅框)文件在一起,這是起到備份密碼的作用,當不小心刪除用戶或者shadow/gshadow文件時,可以copy x-(紅框)文件恢復
組創建 / 組刪除
grp 1
grp 1 with ID of 1005 (在centos7裏id要在1000+)
&&&&
groupdel grp1 (只要組內有任何一個成員,你就不能刪除這個組)
3. 用戶管理
創建用戶是同時指定用戶ID,以及所屬組ID
在指定用戶以及所屬組ID的同時設置家目錄以及shell
創建用戶時不創建用戶的家目錄
根據下圖顯示如果不指定的話,grpid會隨着uid依次增加,如果遇到重複grpid時,隨着uid的增加grpid會跳過重複的grpid+1
&刪除用戶
userdel user8
刪除user的時候並不會刪除user的家目錄(用戶的家目錄留給管理員,以免誤刪裏面文件)
如何在刪除用戶的時候直接刪掉家目錄
userdel -r user7
useradd -M 創建用戶時不創建家目錄
3.1 Usermod
usermod 命令:更改用戶屬性的命令
用戶的UID/GID 的更改
usermod -u/-g 111 username
用戶的目錄以及shell的更改
usermod -d /home/123123 username 用戶目錄更改
usermod -s /sbin/nologin username 用戶shell更改
usermod -L username 鎖定用戶 鎖定用戶
useradd -G grp2 fred 擴展組
Note, id username 此命令可以查詢每個用戶的uid gid 以及組
通過以下命令表明,fred 不僅屬於1000組還屬於1005組(擴展組),如果使用同命令G再次添加擴展組時,會替換之前的擴展組
如何同時添加多個擴展組
4. 用戶密碼管理
如果用戶有密碼的話就會有加密的字符串,如果沒有密碼的話,就會是!!
當密碼位表示爲!或者*均表示空密碼,密碼被鎖定不能用並且不能被登錄
鎖定用戶/解鎖用戶 passwd -l/-u username(lock/unlock)
當然也可以用usermod鎖定用戶 user -L username, 解鎖是user -U username
用戶鎖定後就會出現!!
給一個用戶設定密碼
passwd --stdin username
eg. 通過管道服務把前面命令的結果直接傳遞給後面的命令
echo "111222" | passwd --stdin username
echo -e 表示換行服務, \表示換行符號,如下
*stdin 同理於 passwd username, 但是passwd username 需要提示兩次來確認密碼的更改,這時可以用上述 echo -e 以及管道命令,一行輸入便可以更改,如下:
mkpasswd命令
生成密碼的工具,此命令可以隨機生成字符串作爲密碼, 要通過 yum install -y expect 先安裝
常用語寫shell腳本是批量創建用戶隨機生成密碼並導出的時候
5. SU & SUDO
5.1 SU命令
用於用戶間的切換
su - username & su uername(不加-的時候你會發現你當前目錄還是在之前用戶下)
&
同時在SU也可以以用戶身份去執行命令
su - -c "touch /tmp/fred.111" username
當然也可以用戶之間切換如下(鑑定故障的原因爲我們之間鎖定了用戶)
如下圖,用戶切換後會產生的是-bash(行開頭)而非user5@fred-01,表示user5家目錄不存在,並且沒有配置文件
Solutions:
首先在root創建/home/user並更改所有者以及所屬組到user5下,對於配置文件的添加,要從系統配置文件skel中拷貝cp /etc/skel/.bash*(*符號是統配,表示所有以bash靠頭的文件),並設置所有者和所有組
Note: .bash都是配置文件
$!上一條能命令的最後一個參數
$?上一條命令的執行結果
5.2 SUDO命令
通常情況下是給普通用戶授權root的身份
首先要進入visudu下進行更改
指爲了讓fred這個用戶擁有root這個身份去執行XX命令(etc cat,ls,mv)
在visudo會自動排查語法錯誤,如下
再次進入編輯頁面後先“:ser nu” 來查找錯誤行,確定command下用絕對路徑並且用“, ”分開
通過以上設置,本沒有ls權限的fred用戶,在sudo命令下就可以有ls權限,cat mv同理
同樣賦予user5此權限並不設置密碼
在visudo裏面也可以設置別名
Cmnd_Alias Fred_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
關於用戶組的用法
6. 允許、限制root遠程登錄
將fred用戶移入設置無密碼登入root中
如何限制root遠程登錄
首先進入 vi /etc/ssh/sshd_config更改遠程登錄permission
然後重啓服務 systemctl restart sshd.service
存儲基礎
存在於物理服務器和存儲設備間的集中存儲方式
&DAS= Direct Attached Storage 直連,通過iscsi協議直接掛到物理服務器上
&SAN=Storage area network 中間有一個交換機(SWICH/普通交換機光纖以及網絡交換機),如果通過光纖交換機,走的便是FC協議;如果走的是網絡交換機便是iscsi協議(san 走isici或者fc協議)
&NAS= Network attached storage 網絡附加存儲,類似於百度雲盤
磁盤管理
命令df
如何看/swap 容量情況,因無法通過df -h 查看,用free命令查看
查看分區下都有少個inode以及inode使用情況(如果磁盤空間未滿卻依舊無法存儲要查看df -i看inode是否滿了)
命令du
du是用來查看一個文件大小的
du -sh 指查看當前目錄的總大小
du -sh ./* 查看目錄下文件的大小
爲什麼ls 和du命令顯示的大小不一樣,是因爲ls顯示的實際大小,每個塊只能放一個文件,不足4k的在du命令下也顯示4k
如果直接用du的話會顯示/root/下分別內容的容量
磁盤分區
查看磁盤分區情況: lsblk
顯示每一個分區的文件系統格式 :df -T
添加硬盤: 虛擬機-設置-添加硬盤
運行fdisk -l命令查詢是否識別新硬盤
fdisk /dev/disk name(sdb)
主分區和擴展分區最大值爲4
當依次創建四個分區後,會發現以下提示
同時我們刪除第四個主分區,建立第四個爲擴展分區,如下圖
當地四個分區添加爲擴展分區是我們仍舊可以添加,會發現sdb5和sdb6邏輯分區的起始扇區和sdb4差不多,是sdb4的構成部分
**擴展分區本身不支持格式化,不能在擴展分區直接寫數據,他只是一個殼子,裝着邏輯分區,真正寫數據的是邏輯分區
Note MBR &GPT
MBR
MBR(Master Boot Record)是傳統的分區機制,應用於絕大多數使用BIOS引導的PC設備(蘋果使用EFI的方式);很多Server服務器即支持BIOS也支持EFI的引導方式
MBR的特點
優點:MBR支持32bit和64bit系統;
缺點:1) MBR支持的分區數量有限制;2)MBR只支持不超過2TB的硬盤,超過2TB的硬盤只能使用2TB的空間(但是有第三方解決方法),應爲MBR的尋址空間只有32bit長;
MBR結構:佔用硬盤最開頭的512字節
前446字節爲:引導代碼(Bootstrap Code Area)(引導不同的操作系統;不同操作系統,引導代碼是不一樣的)
接下來的爲4個16字節:分別對應4個主分區表信息(Primary Partition Table)
最後2個字節:爲啓動標示(Boot Signature),永遠都是55和AA;55和AA是個永久性的標示,代表這個硬盤是可啓動的。
609083065041.png
MBR分區
MBR分區分爲:主分區、擴展分區、邏輯分區
主分區:一塊硬盤最多隻能創建4個主分區(因爲在MBR分區表結構中中最多可以創建4個主分區表信息,也就是4個16字節的空間,如上圖)
擴展分區:一個擴展分區會佔用一個主分區的位置
邏輯分區:
1)是基於擴展分區創建出來的,先有擴展分區,然後在擴展分區的基礎上再創建邏輯分區;也就是說我們要使用邏輯分區,必須先要創建擴展分區;
2)擴展分區的空間是不能被直接使用的,我們必須在擴展分區的基礎上去建立邏輯分區,才能夠被使用;
3)Linux最多支持63個IDE分區和15個SCSI分區
PEL:Primary Partition;Extended Partition;Logical Partition
GPT
GPT(GUID Partition Table):是一個較新的分區機制,解決了MBR的很多缺點
1)支持超過2TB的磁盤:GPT有64bit尋址空間;而MBR對硬盤空間地址尋址最多隻支持32bit,2的32次方,硬盤空間是以地址方式來被識別的,所以MBR只支持容量爲2TB以內的磁盤
2)向後兼容MBR
3)但是底層硬件必須支持UEFI(Intel提出的取代BIOS的新一代的引導系統)才能使用,也就是底層硬件必須使用UEFI
4)必須使用64位操作系統
5)Mac、LInux系統都能支持GPT分區格式
6)Windows 7 64bit、Windows Server2008 64bit支持GPT
磁盤格式化
Centos所支持的文件系統格式
Centos6以前使用的都是ext格式的文件系統ext4, ext3, ext2;centos 7之後改成了xfs
格式化命令:
mkfs/mke2fs -t ext3/4/xfs (指定成什麼樣格式的文件)
如下例,格式化成ext4的格式的文件系統(當已存在文件系統時mkfs命令要加-f overide )
&
mke2fs -b (指定塊的大小)
如何查看一個還沒有掛載的分區?
blkid
實際上每個塊大小是4k,所以格式化後的每個塊如果大於4096就會出現以下提示(如果當你存儲視頻圖片之類的,爲了更快的讀取,可以塊設置大一點)
mke2fs -m /dev/sdb1 指定這個磁盤預留的空間大小
blkid /dev/sdb1不指定格式化
mke2fs -i 指定多少個字節對應一個inode
如下例設置兩個塊8192對應一個inode(最低是一個塊對應一個inode)
磁盤掛載
無論有沒有分區都可以格式化,只有格式化後才能掛載文件系統,linux裏面磁盤要像訪問必須掛在道掛載點上,掛載點就是目錄,掛載點的命令就是“mount”
如何掛載
首先要先格式化sdb硬盤
mkfs.xfs -f /dev/sdb
然後確認格式化成功
blkid /dev/sdb
然後將sdb臨時掛載到/mnt 目錄下
刪除掛載,用umount命令
如下例,先在/mnt 下創建目錄以及文件,但是首先要推出/mnt目錄才能對掛載進行刪除
當然,也可以通過umount -l 進行懶人模式刪除,不退出/mnt
mount -o 常用命令
mount -o ro/rw/remount
/etc/fstab
note. 每一個分區都有一個uuid, 可以通過blkid查看
手動增加swap
dd命令用來操作磁盤(rw),if指定從哪裏去讀,/dev/zero是linux內核裏的一個盜0器,可以產生源源不斷的0,of指定將這些0寫在哪裏去,bs指定每一個塊的大小,count指數量
上例中,首先通過dd命令增加newdisk,然後再通過mkswap進行格式化(swap格式化特殊命令),再通過swapon命令將newdisk掛到系統swap上,儘管提示安全問題,但是仍能掛到swap上,最後 爲了系統安全,將權限更改
如何移除swap
swapoff命令
lvm
理論上講,一共三步,先創建物理卷,然後再形成一個卷組,然後再變成邏輯卷,然後進行格式化掛載使用
首先磁盤分區,新建的分區id爲83,command t 改參數爲8e便得到了linux lvm(在添加中如果輸入錯誤,delete是無效的,要用ctrl+u)
1.創建物理卷 (pvcreate)
note. 當yum命令安裝時找不到時,可以嘗試 yum provides "/*/command"
一般情況下創建完分區會自動生成,如果不生成用以下命令
當物理卷創建完成後,用命令pvdisplay/pvs查看一下
2. 創建卷組 vgcreate(vgremove刪除卷組)
3.創建邏輯卷 lvcreate
創建一個大小100m名字lv1 從vg1組的邏輯卷
4. 格式化: mkfs.ext4 /dev/lv1/vg1/lv1
掛載: mount /dev/vg1/lv1 /mnt/
擴容邏輯卷
lvresize
第三步是更新邏輯卷信息,如果不去更新無法識別新的大小。之後進行重新掛載
縮容邏輯卷:
XFS如何去擴容(必須是掛載狀態)
lv resize -L 300M /dev/vg1/lv1
xfs_growfs /dev/vg1/lv1
擴展卷組