linux幫助|編輯器|基本權限
那麼我們學習了這麼多命令 又有那麼多參數 該如何記憶呢?
幫助
怎麼查看命令幫助
ls --help
man ls
man 的類型章節 重點 1 用戶命令 5 配置文件 8 管理員命令
幫助的閱讀方法
-
...代表可重複
-
[]代表可選擇
-
{}<>代表必選項
-
|代表其中之一
info
類似瀏覽網頁 有連接 比man更全面
TAB尋找*連接
?幫助
man 和 info 也有搜索功能
rpm包自帶的幫助文檔
/usr/share/doc/
網絡
vim 編輯器
模式切換:
-
編輯模式
-
命令模式
-
命令行模式
字符操作
-
i 當前插入
-
I 行首插入
-
a 當前字符之後插入
-
A 行尾插入
-
o 下一行插入
-
O 上一行插入
-
x 向後刪除一個字符
-
X 向前刪除一個字符
-
u 撤銷一步
-
U 撤銷所有更改
-
c 剪切
-
行操作
-
^ 行首 $行尾
-
dd 刪除一行 Ndd
-
yy 複製一行 Nyy
-
p 將複製行粘貼 P上粘
詞操作
-
dw 刪除一個詞
-
yw 複製一個詞
塊操作
-
d$ 刪至行尾 d^ 刪至行首
-
y$ 複製至尾 y^ 複製至首
-
v 模式
進入v模式 移動光標選擇區域
VIM命令行操作
-
:%s/old/new/g
-
:set nu/nonu
-
:e! 重新讀入
-
/ 正查
-
? 反查
-
: !ls 調用系統命令
vim 的練習作業
vimtutor
如果亂碼 用gedit打開 另存爲UTF-8
用戶管理 (增刪改查)
用戶都存儲哪些信息?
用戶名 密碼 用戶 識別碼 UID 組識別碼 GID 家目錄 HOME shell 備註
linux系統是支持多用戶的系統
用戶分爲三種以UID來區分
超級用戶 UID = 0 在系統中擁有至高無上的權限.
系統用戶 UID 1-499 bin,ftp,mail等,不具備登錄系統的權利,卻是系統運行不可缺少的.
普通用戶 UID 500-60000 管理員建立的用戶.密碼和權限都由管理員制定.
羣組都存儲哪些信息?
組名 組密碼 組識別碼 組成員
Linux系統中的組是把一系列具有相同屬性的用戶加以規劃後的集合.
組也是分種類的 用GID來標識
超級組 GID = 0
系統組 GID = 1-499
普通組 GID = 500-60000
添加 修改 刪除 登錄
useradd
-
-u UID
-
-d 主目錄
-
-g GID
-
-G 附屬組
-
-s 登錄使用的SHELL
passwd
-
-d 刪除口令
-
-S 查看密碼狀態
-
-x 密碼最大時間
-
-n 密碼最小時間
-
-w 密碼警告時間
-
-i 密碼過期鎖定時間
-
--stdin 非交互添加密碼
echo "123" | passwd --stdin seker
id
查看驗證
主要屬組與附屬組
主要屬組:每一個用戶都必須有且只有一個主要屬組,因爲文件在建立時就會使用到主屬組
附屬組 :每一個用戶可以加入其它組,這些組被稱爲用戶的附屬組
需要注意的是一個用戶建立時,如果不明確指定,則系統自動建立一個與用戶名相同的羣組
同時將這個羣組也設置爲該用戶的附屬組
他們都是爲了linux內的系統權限分派而存在的.
用戶創建的流程
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
mkdir /home/username
cp /etc/ske1/.* /home/username
chown username:username /home/username
演示手動創建用戶
建立用戶後如何更改
usermod
-
-u UID
-
-d 主目錄
-
-g GID
-
-G 附屬組
userdel
-
-r 刪除主目錄及其文件
su 切換用戶
以root用戶切換其他用戶則不需要密碼
而其他用戶做任何切換都需要密碼
su -
加 - 與不加 - 的區別
-
加- 方法切換身份,相當於重新登陸,此時用戶的家目錄和PATH等信息會發生改變,和直接用root登陸一致
-
不加- 切換身份後用戶的家目錄和PATH仍然是原先用戶的家目錄和PATH
[seker@lan2 ~]$ id
uid=502(seker) gid=503(zorro) groups=502(seker),503(zorro)
[seker@lan2 ~]$ su root
口令:
[root@lan2 seker]# ifconfig
bash: ifconfig: command not found
[root@lan2 seker]# pwd
/home/seker
[root@lan2 seker]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/seker/bin:/home/seker/bin
[root@lan2 seker]# exit
exit
[seker@lan2 ~]$ id
uid=502(seker) gid=503(zorro) groups=502(seker),503(zorro)
[seker@lan2 ~]$ su - root
口令:
[root@lan2 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:F9:41:37
[root@lan2 ~]# pwd
/root
[root@lan2 ~]#
這是爲什麼呢?我們都知道,有些命令是隻有管理員才能使用的,一般用戶沒有權限.就像本例中的 ifconfig.
用第二種方法切換身份,相當於重新登陸,此時用戶的家目錄和PATH等信息會發生改變,和直接用root登陸一致;
但第一種情況,切換到root身份後用戶的家目錄和PATH仍然是原先一般用戶的家目錄和PATH,
我們知道,PATH裏設置的是一些路徑,指向一些目錄,這些目錄包含着一些常用的工具.
如果你的PATH沒有設置相應的路徑,那麼直接運行ifconfig系統肯定會找不到ifconfig工具在哪裏.所以會提示:沒有這個命令.
切換組
gpasswd sekergroup
su - zorro
sg - sekergroup
xxx xxx
id
gpasswd -r sekergroup 清除密碼
登錄後檢查
whoami 查看當前用戶身份
who 登錄本機用戶及來源,+表示mesg是否開啓接收的標誌
w 登錄用戶在做什麼
id 驗證用戶和查看用戶的羣組
users 都有哪些登錄用戶
退出登陸
exit 退出登陸shell
logout 退出非登錄shell
演示
[root@lan2 ~]# bash
[root@lan2 ~]# logout
bash: logout: not login shell: use `exit'
[root@lan2 ~]#
基本權限
對於一個文件他具備
-
讀r
-
寫w
-
執行x
- rwx rwx rwx root root
第一個字符標識文件的類型,
之後9個字符,每三個爲一組,分別對應後面的用戶和組所具有的權限
第一個root是用戶 第二個root是組 前兩組就與此對應
那麼最後一組是給誰用的呢?
畫個系統用戶集合圖
三個權限:
-
第一部分:是所屬用戶(屬主user),
-
第二部分:是用戶屬組group,
-
第三部分:剩餘部分則是第三組權限,我們稱它爲other,也就是既不是屬主又不是屬組中的成員
文件的:
r (read)對應的系統命令 cat
w (write)對應的系統命令 vi echo >
x (eXcute)執行 例如 ls
目錄的權限說明:
-
x 進入目錄 cd 只能進入目錄
-
rx 讀目錄裏的內容(目錄裏存放着其包含的文件和子目錄名字) cd + ls 可進入目錄並列表
-
wx 刪除和移動目錄中的文件和子目錄 mv rm 可操作目錄和子目錄和文件
獲取權限的流程
開始 --_> root --> 給予所有權限 -------/
|--> user --> 分派user位權限-------/結束
|--> group--> 分派group位權限------/
|--> other--> 分派other位權限-----/
更改文件擁有者
chown user file 更改屬主
chown :group file 更改屬組
chown user:group file 主和組一同更改
-R 參數 遞歸更改
更改文件權限 (兩種方式 字符和數字)
字符模式
賦值操作
chmod u=rwx file
chmod g=rx file
chmod o=r file
組合操作
chmod ug=rw file
chmod u=rwx,g=rx,u=x file
chmod a=rwx file
加減運算
chmod +x file
chmod ugo-x file
數字模式
rwx rwx rwx
421 421 421
7 7 7
3=1+2; 5=4+1; 6=4+2;7=4+2+1
chmod 644 file
chmod 755 dir
系統默認權限
umask
[root@lan2 seker]# umask
0022
[root@lan2 seker]# mkdir mask022_dir
[root@lan2 seker]# touch mask022_file
[root@lan2 seker]# umask 002
[root@lan2 seker]# mkdir mask002_dir
[root@lan2 seker]# touch mask002_file
[root@lan2 seker]# ll mask0* -d |awk '{print $1,$NF}'
drwxrwxr-x mask002_dir
-rw-rw-r-- mask002_file
drwxr-xr-x mask022_dir
-rw-r--r-- mask022_file
[root@lan2 seker]#
【課後練習】
第二天練習
1.
1).手動建立兩個用戶 oracle 和 webapp
2).建立一個uplooking組,將這個組設置爲 oracle 和 webapp 用戶的附加組
3).修改oracle的家目錄爲 /oracle ,修改webapp的家目錄爲 /webapp
4).將oracle用戶的登錄shell改爲ksh,將webapp用戶關閉掉,禁止他登陸
5).爲oracle組添加密碼,切換到webapp用戶,將webapp的主組切換成oracle,測試完畢後刪除組密碼
6).開啓一個終端用oracle用戶登錄,再開啓一個新的終端用root刪除oracle用戶,是否能刪
7).將uplooking組,oracle,webapp全部刪除.
2.su 加 - 與不加 - 的區別
[seker@lan2 ~]$ id
uid=502(seker) gid=503(zorro) groups=502(seker),503(zorro)
[seker@lan2 ~]$ su root
口令:
[root@lan2 seker]# ifconfig
bash: ifconfig: command not found
[root@lan2 seker]# pwd
/home/seker
[root@lan2 seker]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/seker/bin
[root@lan2 seker]# exit
exit
[seker@lan2 ~]$ id
uid=502(seker) gid=503(zorro) groups=502(seker),503(zorro)
[seker@lan2 ~]$ su - root
口令:
[root@lan2 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:F9:41:37
[root@lan2 ~]# pwd
/root
[root@lan2 ~]#
思考原因爲什麼呢?
3.
1).將RHEL5的光盤製作成iso文件,再掛載到/mnt下.將裏面的所有文件複製到/var/ftp/pub/rhel5u3下一份.(注意,所選的光盤一定要和你當前系統的版本相符合)
2).兩人一組,分別以root身份和普通用戶身份登錄到對方機器上,檢測對方在做什麼,並給其發送信息
3.vim 編輯器
自建一個模板文件,聯繫vim編輯器,按字符,詞,行,塊這個順序練習
模式切換:輸入模式 命令模式 命令行模式
字符操作
i 當前插入 I 行首插入
a 當前字符之後插入 A 行尾插入
o 下一行插入 O 上一行插入
x 向後刪除一個字符 X 向前刪除一個字符
u 撤銷一步 U 撤銷所有更改
行操作
^ 行首 $行尾 dd 刪除一行 Ndd yy 複製一行 Nyy p 將複製行粘貼 P上粘
詞操作
dw 刪除一個詞 yw 複製一個詞
塊操作
d$ 刪至行尾 d^ 刪至行首
y$ 複製至尾 y^ 複製至首
v 模式
進入v模式 移動光標選擇區域
VIM命令行操作
:%s/old/new/g
:set nu/nonu
:e! 重新讀入
/ 正查
? 反查
: !ls 調用系統命令
4.
1).
# useradd abc
# echo 123 | passwd --stdin abc
# umask 200
# touch /home/abc/root_file
# chmod +x !$
chmod +x /home/abc/root_file
# chown abc:abc !$
chown abc:abc /home/abc/root_file
# ll !$
ll /home/abc/root_file
-r-xrw-rwx 1 abc abc 0 06-24 16:31 /home/abc/root_file
#
問:此時abc用戶能否刪除root_file,先思考得出你的答案,再動手驗證是否和你思考的結果吻合.
2).
# touch test.txt
# chmod 777 test.txt
# chmod -w test.txt
真的能夠得到 r-xr-xr-x 的結果嗎?
3).
1).建立三個普通用戶seker,zorro,shrek.用root用戶在/root目錄中建立一個文件abc.txt
2).使seker用戶既能讀又能寫abc.txt文件,但不能刪除
使zorro用戶只能讀取,不能寫也不能刪這個文件
使shrek用戶只能刪除,不能讀寫這個文件.
以上三個條件同時成立
【課後練習】
1.
1).在/opt目錄中分別建立五個文件,大小分別爲10M 13M 15M 17M 20M.
2).並將文件mtime依次修改爲1天前日期,3天前日期,5天前日期,7天前日期,9天前的日期.
3).搜索/opt目錄中,大小超過18M的所有文件,並以長列表的方式顯示出來.
4).搜索/opt目錄中,大小在小於13M或大於16M的所有文件,並將其複製到/mnt下去.
5).搜索/opt目錄中,大小在大於16M且小於17M的文件,並將其改名爲new_file.
6).搜索/opt目錄中名字以fil開頭所有文件,並將其全部刪除.
7).再按時間匹配進行搜索 -mtime +3 , -mtime -3 , -mtime 3 這幾個參數去搜索.測試出+3 -3 3的各自含義是什麼?
2.
某天你建了一個文件,又做了個硬鏈接到 /etc/ 下
# echo "slkdjf" >> file_1
# ln file_1 /etc/my_file
時隔多日,你忘記了以前的操作.不知道硬鏈接建到了什麼地方..
只能看到文件的連接數是2
# ll file_1
-r--rw-rw- 2 root root 7 06-24 16:49 file_1
#
請找出那個忘記位置的硬鏈接文件.