學習內容來自實驗樓、莫煩python、CSDN
一、Linux 用戶管理
1. 查看用戶
who am i 或者who mom likes
who -a:打印所有能打印的 who -d :打印死掉的進程 who -m:同who am i; who mom likes
who -q:打印當前用戶數及用戶名 who -u:打印當前用戶信息 who -r: 打印當前運行等級
2. 創建用戶
root 賬戶擁有整個系統至高無上的權利
su,su- 與 sudo:su <user>可以切換到用戶user;do <cmd>可以以特權級別運行cmd命令;su - <user>命令也是切換用戶
新建一個叫 lilei 的用戶:sudo adduser lilei ,同時也為新用戶創建 home 目錄。
切換登錄用戶: sudo -l lilei
退出當前用戶跟退出終端一樣可以使用 exit 命令或者使用快捷鍵 Ctrl+d
3.用戶組
在 Linux 里面如何知道自己屬於哪些用戶組呢?
1.使用groups命令
group shiyanlou==>shiyanlou(用戶名):shiyanlou(所屬組)
2. 查看/etc/group文件
cat /etc/group |sort (表示輸出按字典序排序)
cat /etc/group |grep -E "shiyanlou"==>shiyanlou:x:5000
內容包括用戶組(Group)、用戶組口令、GID 及該用戶組所包含的用戶(User),每個用戶組一條記錄, 'x'表示不可見
#將其它用戶加入 sudo 用戶組: su -l lilei #使用 usermod 命令可以為用戶添加用戶組: sudo usermod -G sudo lilei groups lilei ==>lilei:lilei sudo
二、Linux 文件權限
1、ls -l:查看文件權限


Linux 里面一切皆文件
一個目錄要同時具有讀權限和執行權限才可以打開,而一個目錄要有寫權限才允許在其中創建其它文件。
- 鏈接數:鏈接到該文件所在的 inode 結點的文件名數目
- 文件大小:以 inode 結點大小為單位來表示的文件大小
顯示除了 '.'(當前目錄),'..' 上一級目錄之外的所有包含隱藏文件: ls -a
查看某一個目錄的完整屬性,而不是顯示目錄里面的文件屬性:ls -dl <目錄名>
顯示所有文件大小,並以普通人類能看懂的方式呈現:ls -AsSh
例子如下:
$ ls -l total 16 ----rw-r-- 1 morvan morvan 34 Oct 12 09:51 t1.py -rw----r-- 1 morvan morvan 80 Oct 12 09:57 t2.py -rw-rw-r-- 1 morvan morvan 12 Oct 12 09:56 t3 -rwxrw-r-- 1 morvan morvan 55 Oct 13 17:28 t.py
在這里, 像-rw-rw-r--這種, 就是權限的說明. 細節展示在下面的圖中. 在下圖中, 這串字符得拆成4個部分,
Type: 很多種 (最常見的是-為文件,d為文件夾, 其他的還有l,n… 這種東西, 真正自己遇到了, 網上再搜就好, 一次性說太多記不住的).User: 后面跟着的三個空是使用 User 的身份能對這個做什么處理 (r能讀;w能寫;x能執行;-不能完成某個操作).Group: 一個 Group 里可能有一個或多個 user, 這些權限的樣式和 User 一樣.Others: 除了 User 和 Group 以外人的權限.
如果對 User, group, others 這幾個沒什么概念的話, 這里補充一下. User 一般就是指你, 這個正在使用電腦的人. Group 是一個 User 的集合, 最開始創建新 User 的時候, 他也為這個 User 創建了一個和 User 一樣名字的 Group, 這個新 Group 里只有這個 User. 一般來說, 像一個企業部門的電腦, 都可以放在一個 Group 里, 分享了一些共享文件和權限. Others 就是除了上面提到的 User 和 Group 以外的人.
好了, 有了這些理解, 我們拿上面的 t1.py 來舉例. 我們可以將 ----rw-r-- 拆成 - (這是文件), ---(這個 user 沒有任何權限), rw- (這個 Group 里可以讀,寫), r-- (其他人只能讀)
如果我雙擊這個 t1.py 上面就彈出這個說我們權限的窗口.
2.變更文件所有者
建立一個文件:$sudo chown shiyanlou ii;將屬於lilei 的文件改成屬於shiyanlou
3.修改文件權限
每個文件的三組權限(擁有者,所屬用戶組,其他用戶,記住這個順序是一定的)就對應這一個 "rwx",也就是一個 '7'
由以上數字權限可以推出”r=4, w=2 , x=1”的用戶擁有可度可寫可執行的最高權限。
r: 表示讀權限, w:表示寫權限,x:表示可執行權限
- 度權限(r)
- 權限二進制100, 轉為十進制4;
- 寫權限(w)
- 權限二進制010, 轉為十進制2;
- 執行權限(x)
- 權限二進制001, 轉為十進制1;
由以上可推出如下:
若要 rwx 則 4+2+1=7
若要 rw- 則 4+2+0=6
若要 r-w 則 4+0+1=5
若要 r— 則 4+0+0=4
若要 -wx 則 0+2+1=3
若要 -w- 則 0+2+0=2
若要 - -x 則 0+0+1=1
若要 - - - 則 0+0+0=0
注意:“ - ”表示沒權限
chmod 700 t1.py; 現在除擁有者外,其他人對t1.py這個文件都沒有權限了。
(2)加減賦值操作
g''o'還有'u',分別表示group,others,user,'+','-' 就分別表示增加和去掉相應的權限。
通常的修改形式是
$ chmod [誰][怎么修改] [哪個文件]
舉個最簡單的例子, 現在的 t1.py 是 ----rw-r--, 如果我們想讓你(user)有讀的能力. 下面這樣改就行了.
$ chmod u+r t1.py $ ls -l -r--rw-r-- 1 kumata kumata 34 Apr 12 09:51 t1.py
這里的 u+r 很形象, User + read, 給 t1.py 這個修改. 所以我們的修改形式就能總結出下面這樣.
[誰]
u: 對於 User 修改g: 對於 Group 修改o: 對於 Others 修改a: (all) 對於所有人修改
[怎么修改]
+,-,=: 作用的形式, 加上, 減掉, 等於某些權限r,w,x或者多個權限一起, 比如rx
[哪個文件]
- 施加操作的文件, 可以為多個
再舉幾個例, 鞏固一下.
-rw----r-- 1 kumata kumata 80 Apr 12 09:57 t2.py -rw-rw-r-- 1 kumata kumata 12 Apr 12 09:56 t3 -rwxrw-r-- 1 kumata kumata 55 Apr 13 17:28 t.py $ chmod u-r t2.py $ ls -l t2.py --w----r-- 1 kumata kumata 80 Apr 12 09:57 t2.py $ chmod g+x-w t3 $ ls -l t3 --w-r-xr-- 1 kumata kumata 12 Apr 12 09:56 t3


