1.Linux的文件系統(tǒng)層級結(jié)構(gòu)標(biāo)準(zhǔn)(FHS)
?????? Filesystem Hierarchy Standard(文件系統(tǒng)層級結(jié)構(gòu)標(biāo)準(zhǔn))工秩,多數(shù)的Linux版本采用這種文件組織形式炭晒,類似于Windows操作系統(tǒng)中c盤的文件目錄搭儒,F(xiàn)HS采用樹狀結(jié)構(gòu)組織文件挣输,F(xiàn)HS定義了系統(tǒng)中每個(gè)區(qū)域的用途咳蔚,所需要的最小構(gòu)成的文件和目錄刃滓。
?????? 其中部分常見如下:
???????????????? /bin:所有用戶可以使用的基本命令程序
???????????????? /sbin:供系統(tǒng)管理使用的工具程序
???????????????? /boot:引導(dǎo)加載器必須用到的各種靜態(tài)文件:kernel狂票,initramfs(initrd),grub等
???????????????? /dev:存儲特殊文件或設(shè)備文件:
????????????????????????????????? 設(shè)備有兩種類型:字符設(shè)備:線性設(shè)備
????????????????????????????????????????????????????????????????? 塊設(shè)備:隨機(jī)設(shè)備
???????????????? /etc:系統(tǒng)程序的配置文件,只能為靜態(tài)
???????????????? /home:普通用戶的家目錄的集中位置蚊锹,一般每個(gè)普通的家目錄默認(rèn)為此目錄下與用戶同名的子目錄
???????????????? /lib:為系統(tǒng)啟動后或根文件系統(tǒng)上的應(yīng)用程序(/bin,/sbin等)提供共享庫瞳筏,以及為內(nèi)核提供內(nèi)核模塊
???????????????? /lib64:64位系統(tǒng)特有的存放64為共享庫的路徑
??????????????? /media:便攜式設(shè)備掛載點(diǎn),cdrom,floppy
??????????????? /mnt:其他文件系統(tǒng)的臨時(shí)掛載點(diǎn)
??????????????? /opt:附加應(yīng)用程序的安裝位置:可選路徑
??????????????? /root:管理員的家目錄:可選路徑
??????????????? /srv:當(dāng)前主機(jī)為服務(wù)提供的數(shù)據(jù)
??????????????? /tmp:為那些會產(chǎn)生臨時(shí)文件的程序提供的用于存儲臨時(shí)王文建的目錄:可供所有用戶執(zhí)行寫入操作:有特殊權(quán)限
??????????????? /usr:全局共享的只讀數(shù)據(jù)路徑
????????????????????????????? /include:存放C程序頭文件
????????????????????????????? /share:命令手冊牡昆,自帶文檔等架構(gòu)特有文件的存儲位置
????????????????????????????? /local:讓系統(tǒng)管理員安裝本地應(yīng)用程序姚炕,也通常用于安裝第三方程序
????????????????????????????? /XllR6:X-windows程序的安裝位置
????????????????????????????? /src:程序源碼的存放位置
??????????????? /var:存儲經(jīng)常會發(fā)生變化數(shù)據(jù)的目錄
??????????????? /proc:為內(nèi)核進(jìn)程存儲相關(guān)信息,它們多是內(nèi)核參數(shù)丢烘,例如net.ipv4.ip_forward柱宦,可虛擬化成net/ipv4/ip_forward,存儲在/proc/sys中,因此完整路徑為/proc/sys//net/ipv4/ip_forward
??????????????? /sys:sysfs虛擬文件系統(tǒng)提供了一種比proc更為理想的訪問內(nèi)核數(shù)據(jù)的途徑:其主要作用在于管理Linux設(shè)備提供可一種統(tǒng)一模型的接口
2.Linux系統(tǒng)上文件的類型
Linux系統(tǒng)上的文件類型:
?????? ? ? ? ? ? ? ? ? -:常規(guī)文件播瞳,及f
? ? ? ? ? ? ? ? ? ? ?? d:directory掸刊,目錄文件
? ? ? ? ? ? ? ? ? ? ?? b:block device,塊設(shè)備文件赢乓,以'block'為單位忧侧,進(jìn)行隨機(jī)訪問
? ? ? ? ? ? ? ? ? ? ?? c:character device,字符設(shè)備文件牌芋,支持以‘c’為單位苍柏,進(jìn)行線性訪問
????????????????????????????????????????????????? major number:主設(shè)備號,用于標(biāo)識設(shè)備類型姜贡,進(jìn)而確定要加載的驅(qū)動程序
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? minor number:次設(shè)備號:用于標(biāo)識統(tǒng)一類型中的不同的設(shè)備
? ? ? ? ? ? ? ? ? ? ?? l:sysmbolic link试吁,符號鏈接文件
? ? ? ? ? ? ? ? ? ? ?? p: pipe,命令管道
? ? ? ? ? ? ? ? ? ? ?? s:? socker楼咳,套接字文件
3.bash特性:命令補(bǔ)齊熄捍、查看用戶,查看命令路徑等
命令補(bǔ)齊:
?????? shell程序在接收到用戶執(zhí)行命令的請求母怜,分析完成之后余耽,最左側(cè)的字符會被當(dāng)做命令。
???????? 命令處理機(jī)制:
????????????????? 查找內(nèi)部命令:
????????????????????????? 根據(jù)PATH環(huán)境變量中設(shè)定的目錄苹熏,自左向右逐個(gè)搜索目錄下的文件名:
??????????????????????????????? 給定的打頭字符串如果能唯一標(biāo)識某命令程序文件碟贾,則直接補(bǔ)全
??????????????????????????????? 如果不能唯一標(biāo)識某命令程序文件,再擊一次tab鍵轨域,會給出列表
路徑補(bǔ)全:
??????? 根據(jù)給定的起始路徑下:以對應(yīng)路徑下的打頭字串來逐一匹配起始路徑下的每個(gè)文件
????????????? tab:如果能唯一標(biāo)識袱耽,直接補(bǔ)全
???????????????????? 如果不能唯一標(biāo)識,再次tab一次干发,給出列表
查看用戶:who命令朱巨,w命令
?????? who -show who is log on
?? who用法:
???????? who [OPTIONS] ...
?????????????? -b:系統(tǒng)此次啟動時(shí)間
?????????????? -d:print dead process
?????????????? -u:顯示登陸用戶
?????????????? -r:顯示當(dāng)前運(yùn)行等級
w命令:
?????? w -show who is logged on and what they are doing
查看命令路徑:which命令
??????? which -shows the full path of commands
?? which用法:
??????? which [OPTION] programname [...]
???? ? ? ? ? ?? --skip -alias:忽略別名
4.bash特性:別名alias、命令歷史history
別名:alias
??? 獲取所有可用的別名定義:
???? ? ? ? ? ~]#alias
???? 定義別名:
????????????? ~]#alias NAME='COMMAND'? =>僅對當(dāng)前shell進(jìn)程有效
???? 撤銷別名:
????????????? ~]#unalias NAME
命令歷史:history枉长,shell進(jìn)程會保存此前用戶提交執(zhí)行的命令
??????? ~]#history
?? 定制history的功能冀续,可通過環(huán)境變量實(shí)現(xiàn)
????????????? HISTSIZE:命令歷史的條數(shù)(默認(rèn)1000)
???????????? HISTFILE:持久保持命令歷史的文件:.bash_history
????????????? HISTFILESIZE:持久保持命令歷史文件的條數(shù)
??? 命令用法:
????????????? history [-c] [-d offset] [n]
????????????? history -anrw [filename]
?????????????? history -psarg [arg...]
???????????????????? -c:清空命令歷史
???????????????????? -d offset:清除指定行的命令歷史
???????????????????? -r:從文件讀取命令歷史到命令列表中
???????????????????? -w:把歷史列表中的命令追加到歷史文件中
????????????????????? #:顯示最近的#條命令
??? 調(diào)用命令歷史列表中的命令
?????????? !#:再一次執(zhí)行歷史列表中的第#條命令
?????????? !!:再一次執(zhí)行上次命令
??????????? !STRING:再次執(zhí)行命令歷史列表中最近一個(gè)以STRING開頭的命令
??? 調(diào)用上一條命令的最后一個(gè)參數(shù)
?????????? 快捷鍵:ESC .或者字符串: !$
控制命令歷史的方式:
???????? 環(huán)境變量:HISTORY
?????????????? ignoredups:忽略重復(fù)的命令
?????????????? ignorespace:忽略空白符開頭的命令
?????????????? ignoreboth:以上兩者同時(shí)生效
?????????????? 修改變量的值:
?????????????????????? NAME='VALUE'
5.目錄管理類命令講解琼讽,mkdir,rmdir,tree
mkdir:創(chuàng)建目錄
用法:mkdir [OPTION]... DIRECTORY...
??????? 注意:路徑基名是命令的作用對象,基名前的目錄名必須存在
????????????? -p:自動按需創(chuàng)建父目錄
????????????? -v:顯示詳細(xì)過程
???????????? -m:直接給定權(quán)限
rmdir:用于刪除空目錄
?用法:rmdir [OPTION].... DIRECTORY
?????? -p:刪除某目錄后洪唐,如果其父目錄為空钻蹬,則一并刪除
?????? -v:顯示過程
tree命令:樹狀結(jié)構(gòu)來顯示層級結(jié)構(gòu)
????? tree [OPTIONS] [DIRECTORY]
??????????? -L level:顯示層級
6.bash的基礎(chǔ)特性:命令行展開,以及常用快捷鍵
命令行展開:
???? ~:自動展開為用戶的家目錄凭需,或指定用戶的家目錄
???? { }:可承載一個(gè)以逗號分割的路徑列表问欠,并能夠?qū)⑵湔归_成多個(gè)路徑
????????????? 例如:/tmp/{a,b}相當(dāng)于/tmp/a?? /tmp/b
常用快捷鍵:
? ? ? ?? ctrl + a:跳轉(zhuǎn)至命令行首
? ? ? ?? ctrl + e: 跳轉(zhuǎn)至命令行尾
???????? ctrl + v:刪除行首至光標(biāo)所在之間的所有字符
???????? ctrl +k:刪除行尾至光標(biāo)所在之間的所有字符
???????? ctrl +l:清屏,相當(dāng)于clear
7.bash特性:強(qiáng)引用功炮,弱引用溅潜,命令引用术唬,命令執(zhí)行狀態(tài)結(jié)果
??? 強(qiáng)引用:'??? '
??? 弱引用:"?? "
??? 命令引用:`????? `
??? 命令執(zhí)行結(jié)果:
? ? ? ??? bash通過狀態(tài)返回值來輸出此結(jié)果
??????????????? 成功:0
??????????????? 失斝椒:1-255
??? 命令執(zhí)行完成后,其返回值保存于bash的特殊變量$?中
??? 命令正常執(zhí)行時(shí)粗仓,有的還會有命令返回值
? ?? ????? 根據(jù)命令及其功能不同嫁怀,結(jié)果各不相同
???? 引用命令及其功能不同,結(jié)果各不相同:$(COMMAND)借浊、`COMMAND`
8.文件常用命令cat塘淑、tac、more蚂斤、less存捺、head、tail曙蒸、stat捌治、touch
????????? cat:concatenate,文本和文件的查看工具,將文件內(nèi)容在屏幕上順序顯示
??????????????? cat [OPTION]... [FILE]...
??????????????????? -n:給顯示的文本行編號
??????????????????? -E:顯示行結(jié)束符
??? ? ? ? tac:文本和文件的查看工具纽窟,將文件內(nèi)容反序顯示在屏幕上
??????????? ?? tac [OPTION]... [FILE]...
??????????????????? -n:給顯示的文本行編號
??????????????????? -E:顯示行結(jié)束符
????????? more:
?????????????? more FILE
??????????????????? 特點(diǎn):翻屏至文件尾部自動退出
????????? less:
?????????????????? less FILE
????????? head:查看文件的前n行肖油,默認(rèn)為10行
????????????????? -n #:查看文件的#行
????????????????? -#:查看文件#行
?????????????????? -f:查看文件尾部內(nèi)容,結(jié)束后不退出臂港,跟隨顯示新追加內(nèi)容
????????? tail:查看文件的最后n行森枪,默認(rèn)為10行
????????????????? -n #:查看文件的#行
????????????????? -#:查看文件#行
?????????????????? -f:查看文件尾部內(nèi)容,結(jié)束后不退出审孽,跟隨顯示新追加內(nèi)容
????????? stat:
???????????????? stat -display file or file system status
???????????????? stat FILE...
???????????????????? 時(shí)間戳:
??????????????????????????? 最近訪問:access time
??????????????????????????? 最近更改:modify time
??????????????????????????? 最近改動:change time
????????? touch: -change file time stamps
????????????????? touch [OPTIONS].. FILENAME
?????????????????????????? -c:指定文件路徑不存在時(shí)县袱,不創(chuàng)建
?????????????????????????? -a:僅修改最近訪問時(shí)間
?????????????????????????? -m:僅修改最近更改時(shí)間
?????????????????????????? -t stamp:同時(shí)修改文件的訪問和更改時(shí)間,但是改動時(shí)間與系統(tǒng)時(shí)鐘同步
9.文件時(shí)間戳atime佑力、ctime显拳、mtime
????????????????? atime:最近訪問時(shí)間
????????????????? ctime:最近改動時(shí)間(文件屬性上的修改)
????????????????? mtime:最近修改時(shí)間(內(nèi)容上的修改)
10.文件管理工具:cp、mv搓萧、rm
???????? cp:copy
????????????? cp用法:
??????????????????? 單源復(fù)制:
?????????????????????????? cp [OPTION]...[-T]? source DEST
??????????????????? 多源復(fù)制: ?????????????????????????
?????????????????????????? cp [OPTION]... source... DIRECTORY
?????????????????????????? cp [OPTION]... -T DIRECTORY? source...
?????????? 單源復(fù)制:
????????????????????? 如果DEST不存在:錯(cuò)誤
????????????????????? 如果DEST存在:
????????????????????????????????????? 如果DEST是非目錄文件:則會復(fù)制源文件覆蓋目標(biāo)文件
?????????????????????????????????????? 如果DEST是目錄文件杂数;則先在DEST目錄下創(chuàng)建一個(gè)與源文件同名的文件宛畦,并復(fù)制其數(shù)據(jù)流
?????????? 多源復(fù)制:
????????????????????? 如果DEST不存在:錯(cuò)誤
?????????????????????? 如果DEST存在:
?????????????????????????????????? 如果DEST是非目錄文件:錯(cuò)誤
?????????????????????????????????? 如果DEST是目錄文件,分別復(fù)制每個(gè)文件至目錄中揍移,并保持原名
????????? 常用選項(xiàng):
?????????????????? -i:交互式復(fù)制次和,即覆蓋前提醒用戶確認(rèn)
???????????????? ? -f:強(qiáng)制覆蓋目標(biāo)文件
?????????????????? -r:遞歸復(fù)制目標(biāo)文件
?????????????????? -d:復(fù)制符號鏈接本身,而非其指向的源文件
?????????????????? -a: --DR --preserve =all
??????????????????? --preserv
??????????????????????????? mode:權(quán)限
??????????????????????????? ownership:屬主屬組
??????????????????????????? timestamps:時(shí)間戳
??????????????????????????? context:安全標(biāo)簽
???????????????????????????? xattr:擴(kuò)展屬性
???????????????????????????? links:符號鏈接
???????????????????????????? all:上述所有
???????? mv:move
??????????? 用法:
?????????????????? mv [OPTION]... [-T] source DEST
??????????????????? mv [OPTION]... source... DIRECTORY
?????????????????? mv [OPTION]... -t DIRECTORY SOURCE...
???????? 常用選項(xiàng):
??????????????? -i:交互式
??????????????? -f:強(qiáng)制
???????? rm:remove
????????????? rm [OPTION]... FILE...
??????????? 常用選項(xiàng):
?????????????????? -i:交互式
?????????????????? -f:強(qiáng)制
?????????????????? -r:recursive(遞歸)
?????????????? 注意:rm -rf /*是危險(xiǎn)操作那伐,建議所有用不到的文件不要直接刪除踏施,而是移動到某個(gè)專用的目錄(充當(dāng)回收站)
11.bash特性:本地變量、環(huán)境變量罕邀。局部變量畅形、位置參數(shù)變量
?變量類型:根據(jù)作用的范圍劃分
??????????? 本地變量:作用域僅僅是當(dāng)前shell
??????????? 環(huán)境變量:當(dāng)前shell及其子shell
?????????? 局部變量:當(dāng)前shell的某一代碼片段
?????????? 位置參數(shù)變量:當(dāng)執(zhí)行腳本的shell進(jìn)程傳遞的參數(shù)
??????????? 特殊變量:shell內(nèi)置的有特殊功用的變量
12.Globbing文件匹配
bash的特性之一:文件名通配(整體文件名匹配)
?????? 匹配模式:元字符
???????????????? *:匹配任意長度的任意字符;例:pa*诉探、*pa*日熬、*pa、*p*a*
??????????????? ?:匹配任意單個(gè)字符肾胯;例:pa?竖席、p?a、?pa敬肚、p?a?毕荐、??pa
??????????????? []:匹配指定范圍內(nèi)的任意單個(gè)字符:不區(qū)分大小寫
??????????????????????? 有幾種特殊格式:
????????????????????????????????? [a-z],[A-Z].[0,9],[a-z 0-9]
????????????????????????????????? [[:upper:]]:所有大寫字母
????????????????????????????????? [[:lower:]]:所有小寫字母
????????????????????????????????? [[:alpha:]]:所有字母
????????????????????????????????? [[:digit:]]:所有數(shù)字
????????????????????????????????? [[:alnum:]]:所有字母和數(shù)字
????????????????????????????????? [[:space:]]:所有空白符
????????????????????????????????? [[:punct:]]:所有標(biāo)點(diǎn)符號
????????????????????????????????? [^]:匹配指定范圍之外的任意單個(gè)字符:
??????????????????????????????????????????????? 例:[^[:upper:]]:除大寫字母之外的任意字符
13.I/O重定向、輸出重定向艳馒、錯(cuò)誤輸出重定向
I/O重定向:
??????? 程序:指令+數(shù)據(jù)化
???????? 可用的輸入的設(shè)備:文件
??????????????????? 鍵盤設(shè)備诊笤、文件系統(tǒng)的常規(guī)文件召川,網(wǎng)卡等
???????? 可用的輸出設(shè)備:文件
????????????????????? 顯示器、文件系統(tǒng)上的常規(guī)文件,網(wǎng)卡等
???? 程序的數(shù)據(jù)流有三種:
???????????????? 輸出的數(shù)據(jù)流: <--標(biāo)準(zhǔn)輸入(stdin),鍵盤
???????????????? 輸出的數(shù)據(jù)流:-->標(biāo)準(zhǔn)輸出(stdout),顯示器
???????????????? 錯(cuò)誤輸出流:-->錯(cuò)誤輸出(stderr)薪寓,顯示器
fd:file descripter 文件描述件
?????????? 標(biāo)準(zhǔn)輸入:0
?????????? 標(biāo)準(zhǔn)輸出:1
?????????? 錯(cuò)誤輸出:2
輸出重定向:>?????? 特性:覆蓋輸出
???????????????????? >>????? 特性:追加輸出
其中#set -C?? 禁止做覆蓋輸出重定向已存在的文件?? (僅對當(dāng)前shell有效)半醉、
?????????????????????? 可以使用強(qiáng)制重定向覆蓋輸出: >|
??????? #set +C? 關(guān)閉上述特性
錯(cuò)誤輸出重定向: 2>??? 2>>
合并正常輸出流和錯(cuò)誤輸出流
?? 1)&>,&>>
?? 2)? COMMAND > /PATH/TO/SOMEFILE? 2>&1
?? 3) COMMAND >> /PATH/TO/SOMEFILE 2>&1
輸入重定向:<
tr命令:
??? 語法:tr [ OPTION]... SET1[SET2]
?????????? 把輸出的數(shù)據(jù)當(dāng)中的字符谚中,凡是在SET1第一范圍內(nèi)出現(xiàn)的統(tǒng)統(tǒng)轉(zhuǎn)換為SET2出現(xiàn)的字符
用法1:
??????? tr SET1 SET2 < /path/to/somefie
?用法2:
??????? tr -d SET1 < /path/to/somefile
??????????????? 注意:不修改原文件
14.多命令執(zhí)行管道
管道:連接程序?qū)崿F(xiàn)將前一個(gè)命令的輸出直接定向后一個(gè)程序當(dāng)做輸入數(shù)據(jù)流
?? tee命令:輸出到屏幕并且保存
??????? COMMAND | tee /PATH/TO/SOMEFILE
15.linux的用戶饰恕、組、權(quán)限基礎(chǔ)概念
multi-tasks墓陈,multi-user
每個(gè)使用者:
?????????????? 用戶標(biāo)識恶守,密碼
????????????????????? 3A :
??????????????????????? 認(rèn)證/Authentication
???????????????????????? 授權(quán)/Authorization
???????????????????????? 審計(jì)/Audition
??????????????????? 組:用戶組,用戶容器
??????????? ? 用戶類別
????????????????????? 用戶標(biāo)識:UserID贡必,UID兔港,16bits二進(jìn)制數(shù)字,有效范圍0-65535
?????????????????????????????????????? 管理員:0
?????????????????????????????????????? 普通用戶:1-65535仔拟,CentOS來講衫樊,一般只到6萬
????????????????????????????????????? 系統(tǒng)用戶:1-499(CentOS6),1-999(CentOS7)
????????????????????????????????????? 普通用戶:500-60000(CentOS6),1000-60000(CentOS7)
??????????? 用戶解析:名稱轉(zhuǎn)換科侈;
????????????????????? UserName<-->UID 根據(jù)名稱解析庫進(jìn)行:/etc/passwd
? 組 :
?????? 組類別1:
???????????????? 管理員組:0
???????????????? 普通用戶組:1-65535
????????????????????????? 系統(tǒng)用戶組 :1-499(centos6)1-999(centos7)
???????????????? ? ? ? ?? 登陸用戶組:500-60000(centos6)? 1000-60000(centos7)
???????????????? 組標(biāo)識:GroupID载佳,GID,16bits二進(jìn)制數(shù)字臀栈,有效范圍0-65535
? ? ? ? ? ? ?? ? 名稱解析 GroupName<-->GID 根據(jù)名稱解析庫進(jìn)行:/etc/group
???? ?? 組類別2:
????????????????? 用戶的主組/基本組
?????????????????? 用戶的附加組
??????? 組類別3
?????????????????? 私有組:組名同用戶名蔫慧,且只包含一個(gè)用戶
?????????????????? 公共組:組內(nèi)包含多個(gè)用戶
? ? Linux的文件權(quán)限主要針對三類對象:屬主(u),屬組(g)权薯,其他(o)
??????????? 每個(gè)文件針對每類訪問者都定義了三類權(quán)限:讀r,寫w,執(zhí)行x,空-
16.用戶認(rèn)證姑躲、組認(rèn)證機(jī)制以及常見加密算法詳解
認(rèn)證信息:
?????? 通過比對事先存儲的,與登陸時(shí)提供的信息是否一致
?????? 密碼存放文件:
????? ? ? ? ? 用戶密碼:/etc/shadow
???? ? ? ? ?? 組密碼:/etc/gshadow
??????? 密碼的使用策略:
????? ? ? ? ?? 使用隨機(jī)密碼
???? ? ? ? ?? ? 最短長度不要低于8位
???? ? ? ? ? ?? 使用大寫字母盟蚣,小寫字母黍析,數(shù)據(jù),標(biāo)點(diǎn)四類字符中的最少三種
?? ? ? ? ? ?? ?? 定期更換
???????? 加密算法:
???????????????? 對稱加密:加密和解密使用同一個(gè)密鑰
???????????????? 非對稱加密:加密和解密使用一對兒密鑰:共鑰/pubic key屎开,私鑰/private key
???????????????? 單向加密:只能加密阐枣,不能解密;提取數(shù)據(jù)特征碼
?????????????????????????? 定長輸出牍戚,無論源明文有多長
?????????????????????????? 有雪崩效應(yīng)侮繁,初始條件的微小變化將會導(dǎo)致結(jié)果的巨大改變
?????????? ?? ?? 加密算法:
?????????????????????????? md5:消息摘要/Message Digest虑粥,5是版本號如孝,定長輸出128位
?????????????????????????? sha:安全哈希算法/secure hash algorithm,定長輸出160位
?????????????????????????? sha224娩贷,sha256第晰,sha384,sha512
?????? ? ? ? ? ? ? ? ??????????????? echo "How are you?" | md5sum
? ?? ???????????????????????????????? echo "How are you?" | sha512sum
?????????????????????????? 在計(jì)算之時(shí)彬祖,加salt茁瘦,添加隨機(jī)數(shù),所以在shadow文件中储笑,即使兩個(gè)用戶的密碼一樣甜熔,顯示的字串也不一樣,從而方式密碼泄漏
?????????????????????????? 因?yàn)榧用懿豢赡嫱槐叮悦看斡脩舻顷憰r(shí)腔稀,系統(tǒng)都會對用戶的輸入進(jìn)行加密,然后比較加密后的結(jié)果
17.用戶信息庫/etc/passwd羽历,用戶密碼/etc/shadow焊虏,用戶組/etc/group等
用戶信息庫文件的存儲格式
??????? /etc/passwd
?????????????? name:password:UID:GID:GECOS:directory:shell
??????????????????????? name:用戶名
??????????????????????? password:可以是加密后的密碼,也可以是占位符x秕磷,(命令pwconv)
??????????????????????? UID:用戶id
??????????????????????? GID:用戶所屬的主組的ID號
??????????????????????? GECOS:注釋信息等
??????????????????????? directory:用戶的家目錄
??????????????????????? shell:用戶登陸時(shí)默認(rèn)打開的shell
????? /etc/shadow
??????????? 用戶名:加密的密碼:最后一次修改密碼的時(shí)間:最短使用期限:最長使用期限:警告期限:過期期限:賬號失效時(shí)間:保留字段
??????????????? ? ? 用戶名
??????????????????? 加密的密碼:第一個(gè)$符號后面的數(shù)字表示加密算法诵闭,1表示md5,然后依次類推,第二個(gè)$符號后面表示添加的隨機(jī)數(shù)疏尿,第三個(gè)$符號后面是真正的加密后的密碼
??????????????????? 最后一次更改密碼的日期:相對時(shí)間計(jì)時(shí)法瘟芝,從1970年1月1日到更改密碼那一天所經(jīng)歷的天數(shù);0表示用戶在下次登陸的時(shí)候必須修改密碼褥琐;空表示密碼的年齡功能被禁用
???????????????????? 最短使用期限:兩次修改密碼的最小間隔
????????????????????最長使用期限:密碼必須修改的時(shí)間間隔
???????????????????? 警告期限:提醒用戶修改密碼的時(shí)間間隔
???????????????????? 過期期限:最大年齡之后的寬限期
???????????????????? 賬號失效時(shí)間:自? 1970 年 1 月 1 日以來的總天數(shù)作為賬戶的失效時(shí)間
????????????????????? 保留字段
18.用戶組管理命令groupadd,groupmod,groupdel
?groupadd:添加組
?????????? groupadd [選項(xiàng)] group_name
?????????????????? -g GID:自定義GID模狭,默認(rèn)是上一個(gè)組的GID加1
?????????????????? -r:創(chuàng)建系統(tǒng)組
?groupmod:修改組
?????????? groupmod [選項(xiàng)] group_name
??????????????????? -g GID:修改GID
??????????????????? -n New_Name:修改組名
?groupdel:刪除組
?????????? groupdel [選項(xiàng)] group_name
19.用戶管理命令useradd,usermod,userdel
useradd:創(chuàng)建用戶
??? useradd?[選項(xiàng)] User_Name
?????????? -u/--uid UID:自定義UID,默認(rèn)使用上一個(gè)用戶的UID加1
?????????? -g/--gid Group:自定義基本組踩衩,此組必須事先存在嚼鹉,否則會出錯(cuò);
?????????? -G/--groups Group1[,Group2...[,GroupN]]:指明用戶所屬的附加組驱富,多個(gè)組之間用逗號分隔
??????????? -c/--comment Comment:指明注釋信息
??????????? -d/--home home_dir:自定義用戶家目錄锚赤,家目錄的創(chuàng)建過程是復(fù)制/etc/skel,然后重命名褐鸥,指定的家目錄路徑如果事先存在线脚,則不會為用戶復(fù)制環(huán)境配置文件
??????????? -s/--shell Shell:指定用戶的默認(rèn)shell〗虚牛可用的所有shell列表存儲在/etc/shells文件
??????????? -r/--system:創(chuàng)建系統(tǒng)用戶浑侥,創(chuàng)建用戶時(shí)的諸多默認(rèn)設(shè)定配置文件為 /etc/login.defs
????? useradd -D:用于顯示創(chuàng)建用戶的默認(rèn)配置
????? useadd -D 選項(xiàng):修改默認(rèn)選項(xiàng)的值
???????????????? 修改的結(jié)果保存于/etc/default/useradd文件中,也可以直接編輯此文件
usermod:修改用戶屬性
???? ? ? -u/--uid UID:修改用戶的UID
??????? -g/--group Group:修改用戶的基本組晰绎,這個(gè)組事先必須存在
??????? -G/--groups Group1[,Group2...[,GroupN]]:修改用戶的附加組寓落,原來的附加組會被覆蓋
??????????? -a/--append:追加附加組,和-G一起使用
???????? -c/--comment Comment:修改注釋信息
???????? -d/--home home_dir:修改用戶家目錄荞下,用戶原有的文件不會被轉(zhuǎn)移至新位置
???????????????? -m/--move-home:移動家目錄到新位置伶选,只有與-d結(jié)合使用才有效
???????? -l/--login New_Name:修改用戶名
???????? -s/--shell Shell:修改用戶的默認(rèn)shell
???????? -L/--lock:鎖定用戶密碼,禁止用戶登陸尖昏,即在用戶原來的密碼字符串之前添加一個(gè)“仰税!”
???????? -U/--unlock:解鎖用戶密碼
userdel:刪除用戶
??????? userdel [選項(xiàng)] User_Name
?????????????????? -r:刪除用戶時(shí),一并刪除其家目錄抽诉,默認(rèn)不刪除
20.用戶認(rèn)證及組認(rèn)證機(jī)制及passwd,gpasswd,newgrp,chage
passwd:修改密碼
???????? 單獨(dú)使用表示修改用戶自己的密碼
???? passwd UserName:修改指定用戶的密碼陨簇,默認(rèn)情況下,僅root用戶有此權(quán)限迹淌。root用戶修改別人密碼的時(shí)候河绽,不需要知道原密碼。
??????????? ? ???? -l/-u:鎖定和解鎖用戶
????????????? ? ??? -d:清除用戶密碼
??????????????????? -e Date:過期期限巍沙,日期
??????????????????? -i Days:非活動期限葵姥,密碼過期以后還能活動幾天
??????????????????? -n Days:修改密碼的最小間隔
??????????????????? -x Days:修改密碼的最長使用期限
?????????????????? -w Days:警告期限
???????? echo "PASSWORD" | passwd --stdin docker,在腳本中通常如此使用
gpasswd:修改組密碼句携,或者添加刪除用戶
??? gpasswd [OPTION] group
???????????? -a UserName:向組中添加用戶榔幸,用戶將以此組為附加組
???????????? -d UserName:從組中移除用戶,用戶將不再以此組為附加組
???????? 給組添加密碼的作用
? ? ? ? ? ???? 如果組沒有密碼,其他人無法把主組切換為此組
? ? ? ?? ????? 如果組有密碼削咆,如果其他人的附加組包括該組牍疏,切換過來不需要密碼
?????????????? 如果組有密碼,如果其他人的附加組不包括該組拨齐,切換過來需要密碼
?????????????? 設(shè)置密碼的方法是:gpasswd GroupName鳞陨,之后便會提示輸入兩次密碼
newgrp:臨時(shí)切換指定的組為基本組
????????? -:加橫行表示模擬用戶重新登陸,重新初始化其工作環(huán)境
????????? exit退出
chage:修改密碼的過期信息瞻惋,選項(xiàng)和上面一樣
???? 語法:chage [OPTION]? NAME
21.id及su切換用戶詳解
id:顯示用戶的真實(shí)和有效ID信息
????????? 直接用表示顯示自己的
????????? id UserName:顯示別人的
????????? -u:僅顯示有效的UID
????????? -g:僅顯示基本組id厦滤,不顯示附加組的
???????? -G:顯示所有組的,基本組和附加組
???????? -n:顯示名字而非Id歼狼,可以和上面的選項(xiàng)結(jié)合使用
su:switch user/切換用戶
???????????? 登陸式切換/完全切換:仿佛重新登陸掏导,重新初始化用戶的工作環(huán)境
????????????????????????? su - UserName或者su -l UserName
??????????? 非登錄式切換/半切換:不會重新初始化用戶的工作環(huán)境,
?????????????????????????? su UserName
??????????? root用戶切換至其它任何用戶不需要密碼羽峰,非root用戶需要給出目標(biāo)用戶的密碼
???????????????????????????? -c:不切換用戶趟咆,僅以用戶身份執(zhí)行命令,
????????????????????????????? 例如:su - docker -c 'whoami'
其他幾個(gè)命令
chsh:修改shell
chfn:修改用戶信息
finger:顯示用戶信息
whoami:顯示自身用戶名
pwck:檢查用戶認(rèn)證文件的內(nèi)容和格式的完整性
grpck:檢查組文件內(nèi)容和格式的完整性
22.進(jìn)程安全上下文及用戶和權(quán)限應(yīng)用管理模型
ls -l:rwxrwxrwx
???????? 左三位:屬主權(quán)限
???????? 中三位:屬組權(quán)限
???????? 右三位:其它權(quán)限
進(jìn)程安全上下文
????????? 進(jìn)程對文件的訪問權(quán)限應(yīng)用模型:
??????????????????? 檢查進(jìn)程的屬主與文件的屬主是否相同梅屉。如果相同值纱,則應(yīng)用屬主權(quán)限(左三位)。
??????????????????? 否則坯汤,檢查進(jìn)程的屬主是否屬于文件的屬組虐唠。如果屬于,則應(yīng)用屬組權(quán)限(中三位)玫霎。
???????????????????? 否則凿滤,則應(yīng)用其它權(quán)限(右三位)妈橄。
權(quán)限:
??????? r:readable庶近,讀
??????? w:writable,寫
??????? x:executable眷蚓,執(zhí)行
23.Linux文件權(quán)限r(nóng)wx及文件屬性
文件:
???????? r:可獲取文件的數(shù)據(jù)
???????? w:可修改文件的數(shù)據(jù)
????????? x:可將此文件運(yùn)行為進(jìn)程鼻种,文件內(nèi)部需要寫指令
目錄:
?????????? r:可使用ls命令獲取其下的所有文件列表
?????????? w:可修改此目錄下的文件列表,即創(chuàng)建或者刪除文件
??????????? x:可cd至此目錄中沙热,并且可以使用ls -l命令
???????? 注意:
??????????????? 目錄的讀權(quán)限僅允許我們讀目錄叉钥,獲得在該目錄中所有文件名的列表,但無法查看目錄中文件的內(nèi)容
??????????????? 目錄的執(zhí)行權(quán)限不允許我們讀取目錄的文件列表篙贸,但可以查看目錄中文件的內(nèi)容投队。當(dāng)一個(gè)目錄是我們要訪問文件的路徑名的一個(gè)組成部分時(shí),對該目錄的執(zhí)行權(quán)限使我們可通過該目錄
???????????????? 要修改目錄中的文件內(nèi)容爵川,不僅僅需要目錄的寫權(quán)限敷鸦,還需要目錄的執(zhí)行權(quán)限
???????????????? cp一個(gè)目錄中的文件需要對目錄具有執(zhí)行權(quán)限
24.Linux文件權(quán)限表示法:賦權(quán)表示、授權(quán)表示、數(shù)值表示法
? 賦權(quán)表示:直接操作一類用戶的所有權(quán)限位
? ? ?? 其表現(xiàn)形式如下:
? ? ? ? ?? ? ?????? u=
? ? ? ? ? ? ? ?????? o=
? ? ? ? ? ? ?? ?????? g=
? ? ? ? ? ? ?? ?????? a=
?授權(quán)表示:直接操作一類用戶的一位權(quán)限位
???????? 其表現(xiàn)形式如下
????????????? u+,u-
????????????? g+,g-
????????????? o+,o-
????????????? a+,a-
數(shù)值表示:直接操作所有用戶的所有權(quán)限位
??? 其中權(quán)限組合
????????? ---:000?? 0
????????? --x:001?? 1
????????? -w-:010?? 2
????????? -wx:011?? 3
?????????? r--:100??? 4
?????????? r-x:101??? 5
?????????? rw-:110??? 6
?????????? rwx:111??? 7
?? 其表現(xiàn)形式如下:
???????? 774扒披,660值依,544
25.Linux文件權(quán)限管理命令:chmod,chown碟案,chgrp
chmod
??? 語法:chmod [OPTION]... MODE[,MODE]... FILE
?????????????? chmod [OPTION]... OCTAL-MODE FILE
?????????????? chmid [OPTION]... --reference=RFILE FILE...
???? 選項(xiàng)
? ? ?? ??? -R/--recursive:對于目錄來說愿险,如果不加-R則只修改目錄本身的權(quán)限。
????? 注意:用戶僅能修改那些屬主為自己的那些文件的權(quán)限
chown:修改屬主和屬組
? 語法:chown [OPTION]../ [owner][:[Group]]? FILE
?????????? chown [OPTION]... --reference=RFILE FILE...
????????????? -R:遞歸修改价说,例如:chown -R docker /tmp/skel
????????? ? ? :號用來分隔屬主和屬組辆亏,例如:chown docker:mygrp /tmp/skel。也可以使用“.”
?????????? ? ?? --reference鳖目,例如:chown --reference=/tmp/moosefs /tmp/skel
?chgrp:修改屬組褒链,等于chown :group FileName。用法和chown一樣
?????? 注意:僅管理員可以修改文件的屬主和屬組
26.Linux文件權(quán)限反向掩碼umask
umask:文件權(quán)限的反向掩碼疑苔,遮罩碼甫匹。創(chuàng)建時(shí):
??????????? 文件:666-umask
??????????? 目錄:777-umask
注:之所以文件用666去減,表示文件默認(rèn)不能擁有執(zhí)行權(quán)限惦费,如果減得的結(jié)果中有執(zhí)行權(quán)限兵迅,則需要將其加1
umask命令:
????????? 單獨(dú)使用,用來查看umask的值薪贫,默認(rèn)值是022
????????? umask MASK:用來設(shè)置umask恍箭,但是僅對當(dāng)前的shell進(jìn)程有效