Linux學習(二)
阿新 • • 發佈:2018-01-21
強制退出 linux學習 刪除用戶 usermod 修改 方向 終端 方法 用戶鎖定 前言:接著上一篇Linux學習(一)
1.用戶,組和權限
2.文本處理工具
3.vim文本編輯器
4.shell腳本編程基礎
一,用戶,組和權限
1.用戶
1.管理員:root,0
普通用戶:1-65535
shell 交互式登錄
非交互式登錄 /etc/nologin
2.有關用戶和用戶密碼的基本命令
vim 查看修改,有顏色
cat 查看
cat/etc/passwd 查看用戶信息,顯示7列,以 : 分隔
登錄名:密碼:UID:GID:GECOS:家目錄:登錄的shell GID:主要組的組id,附加組的在group文件中 shell:空白默認為最傳統的 sh shell cat/etc/shadow 查看用戶密碼,顯示9列 pwconv 將passwd當中的密碼映射到了 /etc/shadow 映射後的passwd $id$salt$加密後的字符串 salt不一樣,即使id一樣,密碼字符串不一樣
vim /etc/shadow-
pwunconv 取消映射,密碼仍然放在/etc/passwd
用戶名:密碼:密碼上次修改的日期:密碼的最小存活期:密碼的最大存活期:密碼過期前幾天提醒:密碼過期後不改密碼觸發用戶過期的時間:用戶過期時間:保留位
密碼上次修改的日期:距離到1970.1.1的天數(Linux開發出來的日期)
最小存活期:存活期前不能更改密碼 " " date +%s
2.組
1.有關組和組密碼的基本命令
cat /etc/group 組 4列
組名:組密碼:GID:組成員 組密碼:當臨時需要獲取組信息,進入時需要輸入密碼 通常沒有密碼需要創建,沒有密碼無法臨時加入,只能root永久加入 組成員:附加組成員 /etc/gshadow組密碼 grpconv 將組密碼映射到了/etc/gshadow grpunconv 取消組密碼的映射
組名:組密碼:管理員:組成員
3.有關用戶和組的其他命令
1.用戶
useradd/adduser 創建用戶
-u 指定UID 默認從1000開始往後
-o 與 -u 配合,不檢查UID的唯一性
xiaohuihui和huitailang 同一個UID,順序優先先創建的 -g 指定用戶的主要組為某個已存在的組,可以指定GID也可以指定組名 -G 指定附加組 以逗號為間隔可以同時指定多個,組必須事先存在,可以指定GID也可以指定組名。 -c 註釋信息 -d 指定目錄路徑 ,如不指定默認在/home下與用戶同名。指定時註意,目錄名需已存在,基名不存在。 -s 指定登錄shell如下 -N 不創建私用組做主組,使用users組做主組 -r 創建系統用戶 (centos 6及之前的版本 < 500, centos 7 < 1000) usermod 修改用戶信息 -u NEWUID 用戶名 修改用戶的uid -g NEWGID 用戶名 修改用戶的主要組 可以指定組名,也可以指定GID -G GID或組名[,組名] 用戶名 設定用戶的附加組為哪些組,這前的附加組信息被覆蓋 -a 與-G 結合,-aG 使用可以增加用戶的附加組,而不會影響之前的附加組 -s shell名 用戶名 修改用戶的Shell=chsh -s shell 用戶名 -c "描述信息" 設置用戶的描述信息 =chfn -d /path 用戶名 修改用戶的家目錄,新家目錄不會自動創建 -m 把用戶原來家目錄下的文件移到新的家目錄 -d -m 若要創建新家目錄並移動原家數據,同時使用-m選項
-l newname 用戶名 修改用戶的名稱
-L lock指定用戶,在/etc/shadow 密碼欄的增加 ! 等同於passwd -l
-U unlock指定用戶,將 /etc/shadow 密碼欄的 ! 拿掉 等同於passwd -u
-e YYYY-MM-DD 指明用戶賬號過期日期
-f 設定非活動期限
userdel 刪除用戶
-r 刪除用戶名連同家目錄及郵箱文件一起刪除
2.組
groupadd 創建組
-g GID 組名 創建組
groupmod 修改
-n newname 組名 修改組名
-g newgid 組名 修改組id
groupdel 刪除組
-r 刪除組名連同成員所有的信息
groupmems 對組成員進行操作 僅root執行
-g 組名 -a 用戶名 將某用戶以附加組方式加入到某組當中
-g 組名 -d 用戶名 將某用戶從指定組當中踢出
-g 組名 -p 清空所有組成員
-g 組名 -l 查看指定組有哪些成員(僅顯示附加組)
groups 用戶名
查看指定用戶屬於哪些組(包含主組和附加組)
newgrp 組名(普通用戶執行)
非附加組成員的普通用戶在正確輸入組密碼後可以使用該命令臨時變更主要組.
附加組成員的普通用戶無需輸入密碼可以使用該命令臨時變更主要組. 原主要組臨時變成附加組
passwd username 修改密碼
普通用戶改密碼 需要先輸入舊密碼 不符合要求的密碼被拒絕重新輸入
root改密碼 直接輸入新密碼 任意設置密碼
passwd -l 鎖定用戶 實際就是在密碼位前加!!
-u 取消用戶鎖定
-e 強制用戶下次登錄時更改密碼
-n 指定最短使用期限
-x 最大使用期限
-w 提前多少天開始警告
-i 非活動期限
--stdin username 從標準輸入接收用戶密碼 顯示密碼 只輸入一次 只有root可以
gpasswd 設置組密碼 管理員可以執行
-a 用戶名 組名 將某用戶以附加組方式加入到某組當中 管理員可以執行
-d 用戶名 組名 將某用戶從指定組當中踢出 管理員可以執行
-M 用戶名[,用戶名...] 組名 設置某組的用戶列表 僅root執行
-A 用戶名[,用戶名...] 組名 設置某組的管理員列表 僅root執行
組管理員在不是組成員的情況下,僅能修改組密碼,和將其他人加入組和踢出組,但並不具有組成員的權限
3.其他
id -u 顯示UID
-g 顯示GID
-G 顯示用戶所屬的組的ID
-n 顯示名稱,需配合-u -g -G使用
su username 表示非登錄式切換 需要輸入密碼
su - username 表示登錄式切換
su - 表示登錄root
當前用戶是root時,切換到其他用戶不要密碼
chage (修改文件 不建議使用 容易出錯)
-d 上一次修改時間
-E 密碼過期時間
-I(大寫i) 密碼過期之後賬戶過期
-m 最小存活期
-M 最大
-W 提醒
-l 顯示密碼策略 查看修改密碼信息
示例:
chage -d 0 tom 下一次登錄強制重設密碼
chage -m 0 –M 42 –W 14 –I 7 tom
chage -E 2016-09-10 tom
4.權限
1.默認權限
chown 更改文件的所屬人,只有root可以操作
用戶名 filename 只更改owner
用戶名.組名 filename 或 用戶名:組名 filename 同時更改owner和group
如果.或:前省略,則只改group
-R 遞歸
chgrp 組名 filename
文件的owner可以使用chgrp修改文件的group,但該owner一定要屬於目標group
-R 遞歸
權限的表示形式
-owner-group-other
read-r write-w exe-x
d 表示目錄
chmod 修改權限
r:4 w:2 x:1
可以隨意組合
-R 遞歸
X:只給目錄及已有部分x權限的文件加上x權限,不給三個權限位完全沒有x的文件加x
文件權限
當僅r權限作用在文件上的時候,用戶可以讀取該文件的內容:cat less more head tail
當僅w權限作用在文件上的時候,用戶可以修改文件的內容:>>
當僅x權限作用在文件上的時候,無作為.
當rw權限作用在文件上的時候,用戶即能讀與能修改:cat less more head tail vim nano > >>
當rx權限作用在文件上的時候,用戶可以執行該文件
當wx權限作用在文件上的時候,權限等同於僅w權限.
文件的常見權限是r-- rw- rwx
目錄權限
當僅r權限作用在目錄上的時候,用戶可以短列出目錄下的文件名.
當僅w權限作用在目錄上的時候,無作為.
當僅x權限作用在目錄上的時候,用戶可以進入該目錄,並且在知道具體文件名且具有相關權限的情況下,可以訪問子文件.
當rw權限作用在目錄上的時候,權限等同於僅r權限
當rx權限作用在目錄上的時候,用戶進入,長列出.
當wx權限作用在目錄上的時候,用戶可以進入且可以創建及刪除文件.但不能使用文件名通配符
目錄的常見權限r-x rwx
2.特殊權限
工具和文件都擁有權限
which 查看絕對路徑
對工具擁有權限對文件沒有權限不能查看文件
suid權限(文件),可執行的二進制文件,可以臨時調用所屬人的權限
chmod u+s 臨時調用文件所屬人的權限
sgid權限(目錄)目錄所屬組的權限
chmod g+s 對目錄操作了sgid權限,任何人在該目錄下所創建的文件所屬組都與該目錄的所屬組相同
sticky權限 進行刪除操作的權限
chmod o+t 該目錄下的文件只能root,目錄的所屬人和文件的所屬人刪除
權限位上原本有x的,加上特殊權限時,為小寫
原本沒有x的,加上特殊權限時,為大寫
實驗:劉備關羽張飛三個用戶有一個共享目錄叫shuguo,要求三人的主組不一樣的情況下,三人在Shuguo目錄下所創建的文件,彼此之間可以讀取及修改,但不能刪除其他人創建的文件
驗證
文件特定權限
chattr +a 不能刪除,改名,修改,可以追加
+i 不能刪除,改名,修改,追加
lsattr 查看權限及屬性
3.ACL
acl:除了文件的所屬人,所屬組,其他,還可以進行更多的設置用戶權限
acl生效順序:所有者,自定義用戶,自定義組,其他人
CentOS7中的所有文件系統是劃分的文件系統均已默認開啟acl
CentOS6隨著操作系統安裝所有文件系統是話費的文件系統均已默認開啟acl
為多用戶或者組的文件和目錄賦予訪問權限rwx
getfacl 查看權限信息
setfacl -m 設置user的acl權限
-x 刪除設置的user的acl權限
setfacl -b 刪除權限包括acl權限屬性
setfacl -m m 設置權限上限閥值,修改權限無法超過上限閥值,不顯示但是是有效的
setfacl -d -m
-m d 設置默認權限
setfacl -k 清除默認權限
setfacl -Rm 遞歸設置,設置的目錄及該目錄下的所有目錄和文件都被設置權限
setfacl -M file1 file2 file1是寫有權限的文件,把寫有的權限設置file2
setfacl -X file1 file2 file1是寫有取消權限的文件,對file2進行取消權限設置
acl權限的備份及還原
umask值
umask值可以存儲在/etc/bashrc當中,使所有用戶均被設置
也可以存在~/.bashrc只對某用戶設置
文件最高權限 666
目錄最高權限 777
默認權限=最高權限-umask
文件權限,如果umask 有奇數,也就是含有-x ,計算完要加1
5.其他
手工創建家目錄的方法
mkdir /home/username
chmod 700 /home/username/
cp -r /etc/skel/.[^.]* /home/username/
(..為上一級目錄,/etc/skel 新創建的用戶的初始化環境變量腳本都在這個目錄下)
chown -R username.usename /home/username
cat /etc/passwd |grep username 檢索
|grep -E "maidou|biubiu" 同時都檢索
2.文本處理工具
1.各種文本工具來查看、分析、統計文本
cat 查看
cat -E 顯示換行符$
cat -n 輸出的結果前顯示行號
cat -v 顯示^M,即windows的換行符
cat -T 顯示^I 即tab
cat -A = -EvT
cat -b 輸出的結果前顯示行號,非空行不參與排列
cat -s 將連續的空行壓縮為一行
head 向前截取
head -c N 指定截取前N字節
head -n N 指定截取前N行
head -N 指定獲取N行
tail 向後截取
tail -c N 指定截取後N字節
tail -n N 指定截取後N行
tail -N 指定截取N行
tail -f 跟蹤顯示文件新追加的內容,常用於日誌監控
cut 切割
cut -d 指明分隔符
cut -f N ; N,N ; N-N 指明字段
cut -c 按字符一個一個切割
cut --output-delimiter=" " 指定輸出分隔符
paste 合並倆個文件,同行的內容在一行顯示
paste -d 分隔符:指定分隔符,默認用TAB
paste -s : 所有行合成一行顯示
wc 文本數據統計
wc -l 行數
wc -w 單詞總數
wc -c 字節總數
wc -m 字符總數
sort 排序
sort -r 反方向(由上至下)整理
sort -n 按數字大小整理
sort -f 忽略(fold)字符串中的字符大小寫
sort -u (獨特, unique)刪除輸出中的重復行
sort -t c 使用c做為字段界定符
sort -k X 列
uniq 刪除重復的行數
uniq -c: 顯示每行重復出現的次數
uniq -d: 僅顯示重復過的行
uniq -u: 僅顯示不曾重復的行
連續且完全相同方為重復
diff f1 f2 比較2文件之間的區別
patch 復制其他文件進行的改變
2.grep
grep 關鍵字高亮顯示
grep -v 反向搜索
grep -i 忽略大小寫
grep -n 顯示行號
grep -c 不顯示搜索結果,僅顯示匹配的行數
grep -o 僅顯示匹配到的字符串
grep -q 靜默輸出
grep -A N 顯示搜索行及其向下相臨的N行
grep -B N 顯示搜索行及其向上相臨的N行
grep -C N 顯示搜索行及其向上和向下相臨的N行
grep -e -e 多個選項間or關系
grep -w 匹配整個單詞
3.正則表達式
元字符
位置錨定:定位出現的位置
^ 行首錨定,用於模式的最左側
$ 行尾錨定,用於模式的最右側
^ .. $ 用於模式匹配整行
^$ 空行
^[[:space:]]\*$ 空白行
\< 詞首錨定,用於單詞模式的左側
\> 詞尾錨定;用於單詞模式的右側
\< .. \> 匹配整個單詞
分組
\( .. \) 將一個或多個字符捆綁在一起,當作一個整體進行處理,如: \(root\)
\1, \2, \3, .. 分組括號中的模式匹配到的內容會被正則表達式引擎記錄於內部的變量中
\1 表示從左側起第一個左括號以及與之匹配右括號之間的模式所匹配到的字符
後向引用:引用前面的分組括號中的模式所匹配字符, 而非模式本身
\| 或者
4.擴展正則表達式
元字符
egrep
egrep=grep -E
fgrep=grep -F 不支持正則表達式
3.vim文本編輯器
vim
三種主要模式
命令模式 (default): 移動光標,復制,剪切,粘貼,撤銷,重做,搜索,進入其他模式
移動光標: k
h j l
配合 !h,!l, ! j, ! k可一次性移動 ! 個字符
w 跳到下一個單詞的詞首
b 跳到上一個單詞的詞首
H 跳到當前頁首
M 跳到當前頁中
L 跳到當前頁尾
gg 跳到整個文件的首行
G 跳到整個文件的末行
^ 移到非空格開頭的行首
$ 移到行尾
!G 跳到指定 ! 行,或退出模式下 : !
r 替換一個字符
d 剪切
dd 剪切當前行
!dd 剪切 ! 行
dw 剪切一個單詞
d^ 從光標所在處剪切到行首
d$或D 從光標所在處剪切到行尾
y 復制
yy或Y 復制當前行
! yy 復制 ! 行
yw 復制一個單詞
y^ 從光標所在處復制到行首
y$ 從光標所在處復制到行尾
p 粘貼
p 當前行向下粘貼或光標所在處向後粘貼
P 當前行向上粘貼或光標所在處向前粘貼
替換模式 R進入 Esc退出
從命令模式進入插入模式
插入模式:文本編輯
i 光標在哪從哪進入
I 光標移至行首同時進入插入模式
a 光標向後移一個字符同時進入插入模式
A 光標移至行尾同時進入插入模式
o 光標向下插入一新行同時進入插入模式
O 光標向上插入一新行同時進入插入模式
退出模式:保存、退出
w 保存
q 退出
q! 強制退出
wq或x 保存並退出
w!當前用戶為該文件所屬人時,如果該文件為read only,可加上!強制保存。
在退出模式下返回命令模式EscEsc或Enter
r /path/filename 讀取另一個文件的內容並將輸出結果寫入文件
w /path/filename 另存為(確認當前用戶對該路徑中的最後一級目錄有wx權限)
! command 執行某條命令,將輸出結果顯示在終端上
r! command 執行某條命令,在光標所在的當前行向下插入新行並將輸出結果輸入
.! command 執行某條命令,替換光標所在的當前行並將輸出結果輸入
搜索
?關鍵字
n向上找 N向下找
Linux學習(二)