国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
Linux基礎(chǔ)學(xué)習(xí)3
鳥哥私房菜第十一章
read
用來讀取鍵盤輸入的變量,常被用在shell script的交互當(dāng)中
[root@www ~]# read [-pt] variable選項不參數(shù):-p :后面可以接提示字符!-t :后面可以接等待的秒數(shù)!范例:提示使用者15 秒內(nèi)輸入自己的大名,將輸入的字符串作為named的變量內(nèi)容zhenxiang@ubuntu:~$ read -p 'please keyin your name:' -t 15 namedplease keyin your name:zhenxiangzhenxiang@ubuntu:~$ echo $namedzhenxiang

 

ulimit 
文件系統(tǒng)及程序;限制用戶的某些系統(tǒng)資源,包括可以開啟的檔案數(shù),可以使用cpu的時間,可以使用的內(nèi)存總量等等;
一般使用設(shè)定檔案大小,只能縮小不能擴(kuò)大;
變量內(nèi)容的刪除
#:從左往右刪除第一個匹配;且是刪除符合條件的最短的哪一個
注意:僅將匹配字符刪除而不是按目錄來刪除的
1
2
3
4
5
6
zhenxiang@ubuntu:~$ echo $path
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
zhenxiang@ubuntu:~$ echo ${path#*lig*}
htdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
zhenxiang@ubuntu:~$ echo ${path#*dm:}
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
##:從左往右刪除第一個匹配;且是刪除符合條件的最長的哪一個
#和##比較:
zhenxiang@ubuntu:~$ echo $path/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gameszhenxiang@ubuntu:~$ echo ${path##/*:}/usr/gameszhenxiang@ubuntu:~$ echo ${path#/*:}/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

 

%:從右往左刪除第一個匹配,且是刪除符合條件的最短的哪一個
 
zhenxiang@ubuntu:~$ echo $path/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gameszhenxiang@ubuntu:~$ echo ${path%:*}/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
%%:從右 往左 刪除第一個匹配;且是刪除符合條件的最長的哪一個
%和%%比較:
zhenxiang@ubuntu:~$ echo $path/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gameszhenxiang@ubuntu:~$ echo ${path%:*}/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binzhenxiang@ubuntu:~$ echo ${path%%:*}/usr/lib/lightdm/lightdm

 

變量的取代:
${變量/舊字符串/新字符串}: 若變量內(nèi)容符合『舊字符串』則『第一個舊字符串會被新字符串取代』
${變量//舊字符串/新字符串}: 若發(fā)量內(nèi)容符合『舊字符串』則『全部的舊字符串會被新字符串取代』
兩種比較范例:
zhenxiang@ubuntu:~$ echo $path/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gameszhenxiang@ubuntu:~$ echo ${path/lightdm/mm}/usr/lib/mm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gameszhenxiang@ubuntu:~$ echo ${path//lightdm/mm}/usr/lib/mm/mm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

 

#和/匹配區(qū)別:
#刪除第一個匹配的,且刪除最短的那個;
/替換第一個匹配的,且匹配最長的那個;
兩種范例比較zhenxiang@ubuntu:~$ echo $path/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gameszhenxiang@ubuntu:~$ echo ${path/*lightdm/mm}mm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gameszhenxiang@ubuntu:~$ echo ${path#*lightdm}/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

總結(jié):對變量的修改格式:${變量|操作符|匹配字符};其中“|”是沒有的;操作符有:匹配最少字符的 從左到右刪除"#",從右到左刪除"%",和匹配最多字符的 "##“  ”%%“ ;和只替換一個的 ”/“  全部替換的 "http://"

history
[root@www ~]# history [-raw] histfiles
選項與參數(shù):
n :數(shù)字,意思是『要列出最近的 n 筆命令行表』
-c :將目前的 shell 中的所有 history 內(nèi)容全部消除
-a :將目前新增的history 指令新增入 histfiles 中,若沒有加 histfiles ,
則預(yù)設(shè)寫入 ~/.bash_history
-r :將 histfiles 的內(nèi)容讀取到目前這個 shell 的 history 記憶中;
-w :將目前的 history 記憶內(nèi)容寫入 histfiles 中!
必須要記好 -c,shell中將沒有history內(nèi)容噢;
HISTSIZE
shell 記錄的命令的條數(shù),也是~/.bash_history記錄命令的筆數(shù)
在用戶注銷退出shell時將最近的命令更新到~/.bash_history當(dāng)中;
用!command 執(zhí)行history中最近的指令;比較有效率
用!number    執(zhí)行第number行的history指令;
 
這個!command 甚是好用啊,在同一段時間內(nèi)有的時候因為種種原因,老要輸入同一條命令,比如說博主之前,要程序燒寫到板子到中去 make install ttyusb3 ,但是會因為各種原因而燒寫不成功,比如說燒寫文件權(quán)限問題等等,反正當(dāng)修改好了再次燒寫時,對,沒錯就又要苦逼的 寫同樣的命令 make install ttyusb3 好煩,有了 !command 這個就好了 直接 !make 后面的事情就交給 history吧;
~/.bash_logout
當(dāng)注銷時系統(tǒng)自動完成的一些任務(wù),如清屏;當(dāng)然也可以根據(jù)自己的需求定制:如自動備份一些關(guān)鍵文檔,或者清空暫存盤之類的工作;
通配符
*        代表[0個到無窮多個]任意字符
?        代表[一定有一個]任意字符
[]       同樣代表[ 一定有一個在括號內(nèi)]的字符(非任意字符),例如[abdc]代表【一定有一個字符,可能是abcd這四個任何一個】
[-]     代表在編碼順序內(nèi)的所有字符,如[0-9]代表0到9之間的所以數(shù)字
[^]    表示[反向選擇],例如[^abc]代表一定有一個字符,只要是非abc的其他字符
通配符還是很重要的啦,最常用了;可惜博主,還只是最熟悉*,因為他好記嘛,就是任意配就好;
還是得總結(jié)一下:?  []  ^  均是針對一個字符來講的啦,? 問號當(dāng)然是隨意了,就是任意一個字符,[]任意一個中括號里面的字符  [^]與[]相對是任意一個不是中括號內(nèi)的字符了;
        -   還是好理解的0-9 很顯然的;
范例一:找出 /etc/ 底下以 cron 為開頭的檔名[root@www ~]# ll -d /etc/cron* <==加上 -d 是為了僅顯示目錄而已 范例二:找出 /etc/ 底下文件名『剛好是五個字母』的文件名[root@www ~]# ll -d /etc/????? <==由于 ? 一定有一個,所以五個 ? 就對了 范例三:找出 /etc/ 底下文件名中有數(shù)字的文件名[root@www ~]# ll -d /etc/*[0-9]* <==記得中括號左右兩邊均需 * 范例四:找出 /etc/ 底下,檔名開頭非為小寫字母的文件名:[root@www ~]# ll -d /etc/[^a-z]* <==注意中括號左邊沒有 * 范例五:將范例四找到的檔案復(fù)制到 /tmp 中[root@www ~]# cp -a /etc/[^a-z]* /tmp

 

其他不熟悉特殊符號
|      管道:分隔兩個管線命令的界定
;      連續(xù)指令下達(dá)的分隔符:與管道并不相同
兩者區(qū)別:
管線命令僅會處理 standard output,對與 standard error output 會予以忽略
管線命令必須要能夠接受來自前一個指令的數(shù)據(jù)成為 standard input 繼續(xù)處理才行。
如:less,cat,head;等可以接受前一個指令數(shù)據(jù)的是管道命令,而ls cd 等就不是
> ;  >>(standard output)
數(shù)據(jù)重定向 覆蓋與累加
2> ;2>>(standard error)
錯誤數(shù)據(jù)重定向 覆蓋與累加
犯了錯誤俗稱2啦,所以以2開頭的重定向當(dāng)然是錯誤數(shù)據(jù)的重定向啦;
<;<<(standard input)
范例一:用 cat 指令來建立一個檔案的簡單流程[root@www ~]# cat > catfiletestingcat file test<==這里按下 [ctrl]+d 來離開[root@www ~]# cat catfiletestingcat file test

 

范例二:用 stdin 來代鍵盤的輸入以建立新檔案的簡單流程[root@www ~]# cat > catfile < ~/.bashrc[root@www ~]# ll catfile ~/.bashrc-rw-r--r-- 1 root root 194 Sep 26 13:36 /root/.bashrc-rw-r--r-- 1 root root 194 Feb 6 18:29 catfile# 注意看,這兩個檔案的大小會一模一樣!幾乎像是使用 cp 來復(fù)制一般!

 

<< 這個連續(xù)兩個小于的符號了。 他代表的是『結(jié)束的輸入字符』的意思!舉例來講:『我要用 cat 直接將輸入的訊息輸出到 catfile 中, 且當(dāng)由鍵盤輸入 eof 時,該次輸入就結(jié)束』,那我可以這樣做:
[root@www ~]# cat > catfile << "eof"
> This is a test.
> OK now stop
> eof <==輸入這關(guān)鍵詞,立刻就結(jié)束而不需要輸入 [ctrl]+d
[root@www ~]# cat catfile
This is a test.
OK now stop <==只有這兩行,不會存在關(guān)鍵詞那一行!
雙小于號表示結(jié)束的輸入字符,還是很有意思的;在文檔分析的時候也許會用到;
cut
[root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符
[root@www ~]# cut -c 字符區(qū)間 <==用于排列整齊的訊息
選項與參數(shù):
-d :后面接分隔字符。與 -f 一起使用;
-f :依據(jù) -d 癿分隔字符將一段訊息分割成為數(shù)段,用 -f 取出第幾段的意思;
-c :以字符 (characters) 的單位取出固定字符區(qū)間;
grep
[root@www ~]# grep [-acinv] [--color=auto] '搜尋字符串' filename
選項與參數(shù):
-a :將 binary 檔案以 text 檔案的方式搜尋數(shù)據(jù)
-c :計算找到 '搜尋字符串' 的次數(shù)
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字符串' 內(nèi)容的那一行!
--color=auto :可以將找到的關(guān)鍵詞部分加上顏色的顯示喔!
重點是-i 這個選項哦,有的時候博主還是常用了;
雙向重導(dǎo)向:tee
tee 會同時將數(shù)據(jù)流分送到檔案與屏幕,其實就是stdout,可以讓下一個指令繼續(xù)處理
[root@www ~]# tee [-a] file
選項與參數(shù):
-a :以累加 (append) 的方式
注意:file指的是數(shù)據(jù)保存的文檔哦,不是數(shù)據(jù)流;數(shù)據(jù)流從標(biāo)準(zhǔn)輸入輸出中接受;
在調(diào)試代碼當(dāng)中會有需求用到,即想將輸出保存下來,又想輸出的時候;也許在這種場景會很實用:無線傳感網(wǎng)絡(luò)SINK點回收數(shù)據(jù)的時候,監(jiān)聽串口數(shù)據(jù),即想保存下來,又想實時在屏幕中查看。
范例:[root@localhost ~]# who | tee who.outroot     pts/0        2009-02-17 07:47 (123.123.123.123)[root@localhost ~]# cat who.outroot     pts/0        2009-02-17 07:47 (123.123.123.123)

 

使用者賬號登錄
登陸流程
1. 先找尋 /etc/passwd 里面是否有你輸入的賬號?如果沒有則跳出,如果有的話則將該賬號對應(yīng)的UID 與GID (在 /etc/group 中) 讀出來,另外,該賬號的家目錄與 shell 設(shè)定也一并讀出;
2. 再來則是核對密碼表啦!這時 Linux 會進(jìn)入 /etc/shadow 里面找出對應(yīng)的賬號與 UID,然后核對一下你剛剛輸入的密碼與里頭的密碼是否相符?
3. 如果一切都 OK 的話,就進(jìn)入 Shell 控管的階段啰!
/etc/passwd檔案結(jié)構(gòu)
[root@www ~]# head -n 4 /etc/passwdroot:x:0:0:root:/root:/bin/bash <==等一下做為底下說明用bin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologin

 

每一行使用 :分隔共有七個東東分別是:
1. 賬號名稱:就是賬號啦!用來對應(yīng) UID 的。例如 root 的UID 對應(yīng)就是 0 (第三字段);
2. 密碼:早期 Unix 系統(tǒng)的密碼就是放在這字段上!但是因為這個檔案的特性是所有的程序都能夠讀取,這樣一來很容易造成密碼數(shù)據(jù)被竊取, 因此后來 就將這個字段的密碼數(shù)據(jù)給他改放到
/etc/shadow 中了。所以這里你會看到一個『x 』。
3. UID:
0             當(dāng)UID是0時,代表這個賬號是系統(tǒng)管理員,所以當(dāng)你要讓其他的賬號名稱也具有root的權(quán)限時,將該賬號的UID改為0即可;
1-99        由distribution自行建立的系統(tǒng)賬號
100-499   當(dāng)用戶有系統(tǒng)賬號需求時,可以用的UID
500-65535  給一般使用者用的
4. GID:
這個與 /etc/group 有關(guān)!其實 /etc/group 的觀念與 /etc/passwd 差不多,只是他是用來規(guī)范組名與 GID 的對應(yīng)而已!
5.用戶信息說明:
用戶信息說明欄:這個字段基本上幵沒有什么重要用途,只是用來解釋這個賬號的意義而已
6. 家目錄:
這是用戶的家目錄,以上面為例, root 的家目錄在 /root ,所以當(dāng) root 登入之后,就會立刻跑到 /root 目錄里頭啦!呵呵! 如果你有個賬號的使用空間特別的大,你想要將該賬號的家目錄移動到其他的硬盤去該怎么做? 沒有錯!可以在這個字段進(jìn)行修改呦!默認(rèn)的用戶家目錄在/home/yourIDname
7. Shell:
那為何預(yù)設(shè)shell 會使用 bash 呢?就是在這個字段指定的啰! 這里比較需要注意的是,有一個 shell 可以用來替代成讓賬號無法取得 shell 環(huán)境的登入動作!那就是/sbin/nologin 這個東西!
/etc/shadow
[root@www ~]# head -n 4 /etc/shadowroot:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7::: <==底下說明用bin:*:14126:0:99999:7:::daemon:*:14126:0:99999:7:::adm:*:14126:0:99999:7:::

 

shadow同樣以【:】分隔,共有九個字段分別是:
1.賬號名稱
2.密碼
3. 最近更動密碼的日期:
值得注意的是日期時間從1970年1月1日作為1,到1971年1月1日為366
4.密碼不可被更動的天數(shù):
(與第 3 字段相比)第四個字段讓錄了:這個賬號的密碼在最近一次被更改后需要經(jīng)過幾天才可以再被變更!如果是0 的話, 表示密碼隨時可以更動的意思。
5. 密碼需要重新變更動天數(shù):
(與第 3 字段相比) 你必須要在這個天數(shù)內(nèi)重新設(shè)定你的密碼,否則這個賬號的密碼將會『變?yōu)檫^期特性』 。
6.密碼需要變更期限前的警告天數(shù):
(與第 5 字段相比)當(dāng)賬號的密碼有效期限快要到的時候 (第 5 字段),系統(tǒng)會依據(jù)這個字段的設(shè)定,發(fā)出『警告』給這個賬號,提醒他『再過 n 天你的密碼就要過期了,請盡忚重新設(shè)定你的密碼』
7. 密碼過期后的賬號寬限時間(密碼失效日)
8. 賬號失效日期:
將數(shù)據(jù)加入 file 當(dāng)中!
9. 保留:
注意密碼過期與失效有差異,密碼過期其實仍能使用,且在登錄的時候系統(tǒng)強(qiáng)行要求更改密碼;而密碼失效則無法再使用;
所以學(xué)校那些登陸之后,強(qiáng)制要求更改密碼的,就是利用密碼過期強(qiáng)行要求更改密碼這個效果,下面做個小實驗:
1.創(chuàng)建一個賬戶,并設(shè)置初始密碼為000000;2.當(dāng)用戶登陸時,強(qiáng)制用戶更改密碼;
范例一:建立一個名為 agetest的賬號,該賬號第一次登入后使用默認(rèn)密碼,但必須要更改過密碼后,使用新密碼才能夠登入系統(tǒng)使用 bash 環(huán)境[root@www ~]# useradd agetest[root@www ~]# echo "000000" | passwd --stdin agetest[root@www ~]# chage -d 0 agetest# 此時此賬號的密碼建立時間會被改為 1970/1/1 ,所以會有問題!范例二:嘗試以 agetest 登入的情況You are required to change your password immediately (root enforced)WARNING: Your password has expired.You must change your password now and login again!Changing password for user agetest.Changing password for agetest(current) UNIX password: <==這個賬號被強(qiáng)制要求必須要改密碼!

問題:

要使用戶登陸,則立刻需要更改密碼;用到密碼過期系統(tǒng)強(qiáng)行要求更改密碼;這樣自然想到更改第5個字段,密碼需要重新變更的天數(shù)到了天數(shù)就會過期,那么為什么將第五字段設(shè)置為與第三字段一樣,達(dá)不到立即失效的效果呢?

關(guān)于群組
/etc/group檔案結(jié)構(gòu)
[root@www ~]# head -n 4 /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
每一行代表一個群組,以:作為字段分隔符,總共四欄:
1. 組名
2. 群組密碼
3. GID
就是群組的 ID 我們 /etc/passwd 第四個字段使用的GID 對應(yīng)的群組名,就是由這里對應(yīng)出來的!
4.次群組支持的賬號名稱
我們知道一個賬號可以加入多個群組,那某個賬號想要加入此群組時,將該賬號填入這個字段即可。 如果我想要將 dmtsai 也加入 root 這個群組,那舉在第一行的最后面加上『 ,dmtsai』,注意不要有空格, 使成為『root:x:0:root,dmtsai 』就可以啰~
每個使用者都可以擁有多個支持的群組,那么在操作時以哪個群組為準(zhǔn)呢?
那么就涉及到   有效群組的概念
有效群組(effective group)與初始群組(initial group)
每個使用者在他的 /etc/passwd 里面的第四欄有所謂的 GID 吧?那個 GID 就是所謂的『初始群組 (initial group) 』!也就是說,當(dāng)用戶一登入系統(tǒng),立刻就擁有這個群組的相關(guān)權(quán)限的意思
初始群組即 在 /etc/passwd中第四個字段設(shè)定的群組ID,也就是GID;
在 /etc/group中在某個群組中增加了,組員,組員也獲得群組號;
[dmtsai@www ~]$ groups
dmtsai users
第一個便是有效群組,
newgrp:有效群組的切換
想要切換的群組必須是你已經(jīng)有支持的群組;
范例:
[dmtsai@www ~]$ newgrp users
[dmtsai@www ~]$ groups
users dmtsai
賬號管理
useradd:
[root@www ~]# useradd [-u UID] [-g 初始群組] [-G 次要群組] [-mM] [-c 說明欄] [-d 家目錄絕對路徑] [-s shell]  使用者賬號名
可以指定 UID  GID 及次要群組,有沒有家目錄及家目錄是什么,
范例一:完全參考默認(rèn)值建立一個用戶,名稱為 vbird1
[root@www ~]# useradd vbird1
范例二:假設(shè)我已知道我的系統(tǒng)當(dāng)中有個組名為 users ,且UID 700 不存在
請用 users 為初始群組,以及 uid 為 700 來建立一個名為 vbird2 的賬號
[root@www ~]# useradd -u 700 -g users vbird2[root@www ~]# ll -d /home/vbird2drwx------ 4 vbird2 users 4096 Feb 25 09:59 /home/vbird2[root@www ~]# grep vbird2 /etc/passwd /etc/shadow /etc/group/etc/passwd:vbird2:x:700:100::/home/vbird2:/bin/bash/etc/shadow:vbird2:!!:14300:0:99999:7:::
  # 看一下,UID 與 initial group 確實改變成我們需要的了!
  /home/vbird1
范例三:建立一個系統(tǒng)賬號,名稱為 vbird3
[root@www ~]# useradd -r vbird3
[root@www ~]# ll -d /home/vbird3
ls: /home/vbird3: No such file or directory <==不會主動建立家目錄
[root@www ~]# grep vbird3 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird3:x:100:103::/home/vbird3:/bin/bash
/etc/shadow:vbird3:!!:14300::::::
那么useradd默認(rèn)參考值從來哪呢?
useradd參考檔案 /etc/default/useradd
[root@www ~]# useradd -D
GROUP=100 <==預(yù)設(shè)的群組
HOME=/home <==默認(rèn)的家目錄所在目錄
INACTIVE=-1 <==密碼失效日,在 shadow 內(nèi)的第 7 欄
EXPIRE= <==賬號失效日,在 shadow 內(nèi)的第 8 欄
SHELL=/bin/bash <==預(yù)設(shè)的 shell
SKEL=/etc/skel <==用戶家目錄的內(nèi)容數(shù)據(jù)參考目錄
CREATE_MAIL_SPOOL=yes <==是否主勱幫使用者建立郵件信箱(
GROUP=100 mailbox)
新建用戶初始群組的兩種不同機(jī)制:
私有群組機(jī)制:系統(tǒng)會建立一個與賬號一樣的群組給使用者作為初始群組。 這種群組設(shè)訓(xùn)定機(jī)制會比較有保密性,這是因為使用者都有自己的群組,而且家目錄權(quán)限將會設(shè)定為700 (僅有自己可進(jìn)入自己的家目錄)。使用這種機(jī)制將不會參考 GROUP=100 這個設(shè)定值。代表性的 distributions 有 RHEL, Fedora, CentOS 等;
公共群組機(jī)制:就是以 GROUP=100 這個設(shè)定值作為新建賬號的初始群組,因此每個賬號都屬于 users 這個群組, 但默認(rèn)家目錄通常的權(quán)限會是『drwxr-xr-x ... usernameusers ... 』,由于每個賬號都屬亍 users 群組,因此大家都可以互相分享家目錄內(nèi)的數(shù)據(jù)。代表 distributions 如 SuSE 等。
SKEL=/etc/skel 
若在 該目錄下 增加www這個目錄,則之后創(chuàng)建的用戶家目錄中均會有www這個目標(biāo);
除了基本的賬號設(shè)定值外,UID/GID密碼參數(shù),范圍參數(shù)就是參照
/etc/login.defs 
所以使用useradd程序建立Linux上的賬號時,至少會參照:
/etc/default/useradd
/etc/login.defs
/etc/skle/*
passwd
兩種情況:root 幫忙設(shè)定密碼;自己設(shè)定自己密碼;
自動化腳本中使用
范例三:使用 standard input 建立用戶的密碼[root@www ~]# echo "abc543CC" | passwd --stdin vbird2Changing password for user vbird2.passwd: all authentication tokens updated successfully.

 

這個動作會直接更新用戶的密碼而不用再次的手動輸入!好處是方便處理,缺點是這個密碼會保留在指令中, 未來若系統(tǒng)被攻破,人家可以在 /root/.bash_history 找到這個密碼呢!所以這個動作通常僅用在 shell script 的大量建立使用者賬號當(dāng)中!要注意的是,這個選項并不存在所有 distributions 版本中。
當(dāng)然passwd,可以規(guī)定密碼變更,失效的天數(shù);也可以立即失效于立即恢復(fù),詳細(xì)當(dāng)然要看 man passwd;
 
chage
除了使用 passwd -S 之外,有沒有更詳細(xì)的密碼參數(shù)顯示功能呢?有的!那就是 chage 了! 具體方法參照man chage;
不錯的功能:
使用者在第一次登陸之后,強(qiáng)制一定要更改密碼之后才能夠使用系統(tǒng)資源;
范例一:建立一個名為 agetest 的賬號,該賬號第一次登入后使用默認(rèn)密碼,
但必須要更改過密碼后,使用新密碼才能夠登入系統(tǒng)使用 bash 環(huán)境
[root@www ~]# useradd agetest
[root@www ~]# echo "agetest" | passwd --stdin agetest
[root@www ~]# chage -d 0 agetest
# 此時此賬號的密碼建立時間會被改為 1970/1/1 ,所以會有問題!
范例二:嘗試以 agetest 登入的情況
You are required to change your password immediately (root enforced)
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user agetest.
Changing password for agetest
(current) UNIX password: <==這個賬號被強(qiáng)制要求必須要改密碼!
 
userdel
[root@www ~]# userdel [-r] username
選項不參數(shù):
-r :連同用戶的家目錄也一起刪除
finger
這個 finger 可以查閱很多用戶相關(guān)的信息喔! 大部分都是在 /etc/passwd 這個檔案里面的信息啦!
范例一:觀察 vbird1 的用戶相關(guān)賬號屬性
[root@www ~]# finger vbird1
Login: vbird1 Name: (null)
Directory: /home/vbird1 Shell: /bin/bash
Never logged in.
No mail.
No Plan.
范例三:找出目前在系統(tǒng)上面登入的用戶與登入時間
[vbird1@www ~]$ finger
chsh
change shell 的縮寫
[vbird1@www ~]$ chsh [-ls]
選項不參數(shù):
-l :列出目前系統(tǒng)上面可用的 shell ,其實就是 /etc/shells 的內(nèi)容!
-s :設(shè)定修改自己的 Shell 啰
不論是 chfn 或 chsh ,都是能夠讓一般用戶修改 /etc/passwd 這個系統(tǒng)文件的!所以你猜猜,這兩個檔案的權(quán)限是什么? 一定是 SUID 的功能啦
新增與移除群組:
基本上兩個文檔的事情:/etc/group  ;/etc/gshadow
[root@www ~]# groupadd [-g gid] [-r] 組名
選項與參數(shù):
-g :后面接某個特定的 GID ,用來直接給予某個 GID ~
-r :建立系統(tǒng)群組啦!與 /etc/login.defs 內(nèi)的 GID_MIN 有關(guān)。
groupadd
范例一:新建一個群組,名稱為 group1
[root@www ~]# groupadd group1
[root@www ~]# grep group1 /etc/group /etc/gshadow
/etc/group:group1:x:702:
/etc/gshadow:group1:!::
不加參數(shù)默認(rèn):GID由500以上最大的GID+1;
groupmod
[root@www ~]# groupmod [-g gid] [-n group_name] 群組名
選項與參數(shù):
-g :修改既有的 GID 數(shù)字;
-n :修改既有的組名
范例一:將剛剛上個指令建立的 group1 名稱改為 mygroup,GID 為 201[root@www ~]# groupmod -g 201 -n mygroup group1[root@www ~]# grep mygroup /etc/group /etc/gshadow/etc/group:mygroup:x:201:/etc/gshadow:mygroup:!::

 

groupdel
范例一:將剛剛的 mygroup 刪除!
[root@www ~]# groupdel mygroup
gpasswd:群組管理員功能
# 關(guān)于系統(tǒng)管理員(root)做的動作:
[root@www ~]# gpasswd groupname
[root@www ~]# gpasswd [-A user1,...] [-M user3,...] groupname
[root@www ~]# gpasswd [-rR] groupname
選項與參數(shù):
:若沒有任何參數(shù)時,表示給予 groupname 一個密碼(/etc/gshadow)
-A :將 groupname 的主控權(quán)交由后面的使用者管理(該群組的管理員)
-M :將某些賬號加入這個群組當(dāng)中!
-r :將 groupname 的密碼移除
-R :讓 groupname 的密碼欄失效
 
# 關(guān)于群組管理員(Group administrator)做的動作:
[someone@www ~]$ gpasswd [-ad] user groupname
選項與參數(shù):
-a :將某位使用者加入到 groupname 這個群組當(dāng)中!
-d :將某位使用者移除出 groupname 這個群組當(dāng)中。
ACL  Access Control List
那 ACL 主要可以針對哪些方面來控制權(quán)限呢?他主要可以針對幾個項目:
? 使用者 (user):可以針對使用者來設(shè)定權(quán)限;
? 群組 (group):針對群組為對象來設(shè)定其權(quán)限;
? 默認(rèn)屬性 (mask):還可以針對在該目錄下在建立新檔案/目錄時,規(guī)范新數(shù)據(jù)的默認(rèn)權(quán)限;
[root@www ~]# touch acl_test1
[root@www ~]# ll acl_test1
-rw-r--r-- 1 root root 0 Feb 27 13:28 acl_test1
[root@www ~]# setfacl -m u:vbird1:rx acl_test1
[root@www ~]# ll acl_test1
-rw-r-xr--+ 1 root root 0 Feb 27 13:28 acl_test1
# 權(quán)限部分多了個 + ,且不原本的權(quán)限 (644) 看起來差異很大!
  • 使用chown命令可以修改文件或目錄所屬的用戶:

       命令:chown 用戶 目錄或文件名

       例如:chown qq /home/qq  (把home目錄下的qq目錄的擁有者改為qq用戶) 

使用chgrp命令可以修改文件或目錄所屬的組:

       命令:chgrp 組 目錄或文件名

       例如:chgrp qq /home/qq  (把home目錄下的qq目錄的所屬組改為qq組)

 

chown 還可以將所屬群組和所屬用戶一起改了

chown newuser:newgroup /home/qq

總結(jié)
  • read:讀取鍵盤輸入
    • read -p 'please keyin your name:' -t 15 named
  • ulimit
    • user limit 限制用戶的某些系統(tǒng)資源,可開啟的檔案數(shù),使用CPU的時間,使用內(nèi)存的總量
  • 變量內(nèi)容的刪除
    • #:從左往右刪除第一個匹配;且是刪除符合條件的最短的那一個;
      • echo ${path#*lig*}
    • ##:從左往右刪除第一個匹配;且是刪除符合條件的最長的哪一個
    • %:從右往左刪除第一個匹配,且是刪除符合條件的最短的哪一個
    • %%:從右 往左 刪除第一個匹配;且是刪除符合條件的最長的哪一個
  • 變量內(nèi)容的替換
    • ${變量/舊字符串/新字符串}: 若變量內(nèi)容符合『舊字符串』則『第一個舊字符串會被新字符串取代』
    • ${變量//舊字符串/新字符串}: 若發(fā)量內(nèi)容符合『舊字符串』則『全部的舊字符串會被新字符串取代』
  • #和/匹配區(qū)別
    • #刪除第一個匹配的,且刪除最短的那個;
    • /替換第一個匹配的,且匹配最長的那個;
  • history
    • -c ,清楚當(dāng)前history全部內(nèi)容
    • !command 執(zhí)行history最近的指令。
    • !number    執(zhí)行第number行的history指令。
  • 通配符
    • *  代表0個到無窮多個任意字符
    • ?  代表一定有一個任意字符
    • [] 代表一定有一個在括號內(nèi)的字符
    • [-]代表在編碼順序內(nèi)的所有字符,如[0-9]代表0-9之間的所有數(shù)字
    • [^]表示反向選擇,[^abc],一定有一個非abc的字符
    • 除* - 以外,都是針對一個字符來說的。
  • 數(shù)據(jù)重定向覆蓋于累加分別是
    • > 覆蓋,>> 累加
    • 2>;2>>  錯誤數(shù)據(jù)的重定向覆蓋與累加
  • << 結(jié)束的輸入字符
  • 常用命令
    • cut
      • cut -d '分隔字符' -f field  ====用于有特定分隔字符
    • grep
      • grep [-acinv] [--color=auto] '搜尋字符串' filename
    • tee  雙向重導(dǎo)向,同時將數(shù)據(jù)流分送到檔案與屏幕
      • who | tee  who.out
  • /etc/passwd檔案結(jié)構(gòu)
    • 賬號名:密碼:UID:GID:說明:家目錄:shell
    • root:x:0:0:root:/root:/bin/bash
  • /etc/shadow檔案結(jié)構(gòu)
    • 賬戶名稱:密碼:最近更改密碼時間:密碼不可變動時間:密碼需要重新變動時間:密碼需要變更期限前警告天數(shù):密碼過期后的賬號寬限時間(密碼失效日):賬號失效日期:保留
    • root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7:::
    • 創(chuàng)建一個賬戶,設(shè)置初始密碼000,當(dāng)用戶登錄時,強(qiáng)制更改密碼、
      • useradd agetest;echo "000000" | passwd --stdin agetest
      • chage -d 0 agetest;#此時此賬號的密碼建立時間會被改為 1970/1/1 ,所以會有問題!
  • /etc/group檔案結(jié)構(gòu)
    • 組名:群組密碼:GID:此群組支持的賬號名稱
    • bin:x:1:root,bin,daemon
  • 有效群組與初始群組
    • 初始群組,就是/etc/passwd第四字段GID;當(dāng)用戶登錄之后就會獲得初始群組的相關(guān)權(quán)限。
    • 而如果需要切換成其他群組,獲得其他群組的權(quán)限時。需切換;
    • 例子:
      [dmtsai@www ~]$ groupsdmtsai users#第一個便是有效群組[dmtsai@www ~]$ newgrp users[dmtsai@www ~]$ groupsusers dmtsai
  • 賬號管理
    • useradd
      • useradd [-u UID] [-g 初始群組] [-G 次要群組] [-mM] [-c 說明欄] [-d 家目錄絕對路徑] [-s shell]  使用者賬號名
      • useradd默認(rèn)配置文件/etc/default/useradd
    • userdel
    • passwd
      •   echo "abc543CC" | passwd --stdin vbird2
    • groupadd
    • groupdel
    • gpasswd 群組管理員功能
      • root動作
        • gpasswd  groupname 給群組一個密碼
        • gpasswd -A user         任命群管理員
        • gpasswd -M user1,user2  將某些賬號加入群組
        • gpasswd -r groupname    將群組密碼移除
        • gpasswd -R groupname    將群組密碼失效
      • 群管理員動作
        • gpasswd [-ad] user groupname 增加/移除群組成員
    • chown、chgrp
      • chown newuser:newgrop /home/qq 同時更改屬主和群組
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
/etc/passwd 和 /etc/shadows 詳解
用管理員登錄centos和普通登錄centos有什么區(qū)別?
不在 sudoers 文件中。此事將被報告。
轉(zhuǎn)貼:Ubuntu進(jìn)入root權(quán)限命令
mini2440 ssh
linux安裝python3
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服