[Linux]学习笔记3:用户及文件权限管理
通過第一節課程的學習,你應該已經知道,Linux 是一個可以實現多用戶登錄的操作系統,比如“李雷”和“韓梅梅”都可以同時登錄同一臺主機,他們共享一些主機的資源,但他們也分別有自己的用戶空間,用于存放各自的文件。但實際上他們的文件都是放在同一個物理磁盤上的甚至同一個邏輯分區或者目錄里,但是由于 Linux 的 用戶管理 和 權限機制,不同用戶不可以輕易地查看、修改彼此的文件。
下面我們就來學習一下 Linux 下的賬戶管理的基礎知識
請打開終端,輸入命令:
第一列表示打開當前偽終端的用戶的用戶名(要查看當前登錄用戶的用戶名,去掉空格直接使用 whoami 即可)
第二列的 pts/0 中 pts 表示偽終端,所謂偽是相對于 /dev/tty 設備而言的,偽終端就是當你在圖形用戶界面使用 /dev/tty7 時每打開一個終端就會產生一個偽終端,pts/0 后面那個數字就表示打開的偽終端序號,你可以嘗試再打開一個終端,然后在里面輸入 who am i,看第二列是不是就變成 pts/1 了
第三列則表示當前偽終端的啟動時間。
還有一點需要注意的是,在某些環境中 who am i 和 who mom likes 命令不會輸出任何內容,這是因為當前使用的 SHELL 不是登錄時的 SHELL,沒有用戶與 who 的 stdin 相關聯,因此不會輸出任何內容。例如我在本地的 Ubuntu 系統上輸入這個命令就不會有提示。
此時我們只需要打開一個登錄 SHELL 的終端例如 Tmux,再在新的終端里執行命令即可。
who 命令其它常用參數
一般我們登錄系統時都是以普通賬戶的身份登錄的,要創建用戶需要 root 權限,這里就要用到 sudo 這個命令了。
su,su- 與 sudo
需要注意 Linux 環境下輸入密碼是不會顯示的
su <user> 可以切換到用戶 user,執行時需要輸入目標用戶的密碼。
sudo <cmd> 可以以特權級別運行 cmd 命令,需要當前用戶屬于 sudo 組,且需要輸入當前用戶的密碼。
su - <user> 命令也是切換用戶,但是同時用戶的環境變量和工作目錄也會跟著改變成目標用戶所對應的。
現在我們新建一個叫 lilei 的用戶:
$ sudo adduser lilei
這個命令不但可以添加用戶到系統,同時也會默認為新用戶在 /home 目錄下創建一個工作目錄:
現在你已經創建好一個用戶,并且你可以使用你創建的用戶登錄了,使用如下命令切換登錄用戶:
退出當前用戶跟退出終端一樣,可以使用 exit 命令或者使用快捷鍵 Ctrl+D。
用戶組
在 Linux 里面如何知道自己屬于哪些用戶組呢?
方法一:使用 groups 命令
$ groups shiyanlou冒號之前表示用戶,冒號之后表示該用戶所屬的用戶組。
每次新建用戶如果不指定用戶組的話,默認會自動創建一個與用戶名相同的用戶組
方法二:查看 /etc/group 文件
$ cat /etc/group | sortcat 命令用于讀取指定文件的內容并打印到終端輸出,后面會詳細講它的使用。
| sort 表示將讀取的文本進行一個字典排序再輸出,然后你將看到如下一堆輸出,你可以在最下面看到 shiyanlou 的用戶組信息:
沒找到?沒關系,你可以使用 grep 命令過濾掉一些你不想看到的結果:
group_name:password:GID:user_list
你看到上面的 password 字段為一個 x,并不是說密碼就是它,只是表示密碼不可見而已。
這里需要注意,如果用戶的 GID 等于用戶組的 GID,那么最后一個字段 user_list 就是空的,這里的 GID 是指用戶默認所在組的 GID,可以使用 id 命令查看。比如 shiyanlou 用戶,在 /etc/group 中的 shiyanlou 用戶組后面是不會顯示的。lilei 用戶,在 /etc/group 中的 lilei 用戶組后面是不會顯示的。
將其它用戶加入 sudo 用戶組
使用 usermod 命令可以為用戶添加用戶組,同樣使用該命令你必需有 root 權限
$ sudo usermod -G sudo lilei $ groups lilei刪除用戶
$ sudo deluser lilei --remove-home
使用 –remove-home 參數在刪除用戶時候會一并將該用戶的工作目錄一并刪除。
如果不使用那么系統會自動在 /home 目錄為該用戶保留工作目錄。
刪除用戶組可以使用 groupdel 命令,倘若該群組中仍包括某些用戶,則必須先刪除這些用戶后,才能刪除群組。
Linux文件權限
查看文件權限
使用較長格式列出文件:
$ ls -l
ls命令其他常用用法
1.顯示除了 .(當前目錄)和 …(上一級目錄)之外的所有文件,包括隱藏文件(Linux 下以 . 開頭的文件為隱藏文件)。
當然,你可以同時使用 -a 和 -l 參數:
2.查看某一個目錄的完整屬性,而不是顯示目錄里面的文件屬性:
3.顯示所有文件大小,并以普通人類能看懂的方式呈現:
變更文件所有者
切換到 lilei 用戶,然后在 /home/lilei 目錄新建一個文件,命名為 iphone11。
$ su - lilei $ pwd $ touch iphone11 $ ls -alh iphone11
現在切換回到 shiyanlou 用戶,使用以下命令變更文件所有者為 shiyanlou。
現在查看,發現文件所有者成功修改為 shiyanlou。
修改文件權限
如果你有一個自己的文件不想被其他用戶讀、寫、執行,那么就需要對文件的權限做修改。文件的權限有兩種表示方式:
方式一:二進制數字表示
每個文件有三組固定的權限,分別對應擁有者,所屬用戶組,其他用戶,記住這個順序是固定的。文件的讀寫執行對應字母 rwx,以二進制表示就是 111,用十進制表示就是 7,對進制轉換不熟悉的同學可以看看 進制轉換。例如我們剛剛新建的文件 iphone11 的權限是 rw-rw-rw-,換成對應的十進制表示就是 666,這就表示這個文件的擁有者,所屬用戶組和其他用戶具有讀寫權限,不具有執行權限。
如果我要將文件 iphone11 的權限改為只有我自己可以用那么就可以用這個方法更改它的權限。
為了演示,我先在文件里加點內容:
$ echo "echo \"hello shiyanlou\"" > iphone11然后修改權限:
$ chmod 600 iphone11 $ ls -alh iphone11
切換到 lilei 用戶,嘗試寫入和讀取操作,可以看到 lilei 用戶已經不能讀寫這個 iphone11 文件了:
方式二:加減賦值操作
要完成上述實驗相同的效果,你可以:
g、o 還有 u 分別表示 group(用戶組)、others(其他用戶) 和 user(用戶),+ 和 - 分別表示增加和去掉相應的權限。
更多
adduser 和 useradd 的區別是什么
答:useradd 只創建用戶,不會創建用戶密碼和工作目錄,創建完了需要使用 passwd 去設置新用戶的密碼。adduser 在創建用戶的同時,會創建工作目錄和密碼(提示你設置),做這一系列的操作。其實 useradd、userdel 這類操作更像是一種命令,執行完了就返回。而 adduser 更像是一種程序,需要你輸入、確定等一系列操作。
Linux 還有一些關于隱藏權限和特殊權限的內容,想全面了解 Linux 權限管理這部分內容的用戶可以通過其它方式學習。
作業
添加一個用戶 loutest,使用 sudo 創建文件 /opt/forloutest,設置成用戶 loutest 可以讀寫。截圖并把操作過程寫入實驗報告。
提示: 如何創建一個文件呢?可以考慮 touch 命令,執行 sudo touch /opt/forloutest 這個命令可以創建一個空文件,但前提是執行這個命令的 loutest 用戶需要具備 sudo 權限。
第一步,添加一個用戶loutest。
sudo adduser loutest
第二步,讓loutest用戶具備sudo權限。
第三步,loutest用戶使用sudo創建文件 /opt/forloutest
su - loutest sudo touch /opt/forloutest
第四步,修改權限
總結
以上是生活随笔為你收集整理的[Linux]学习笔记3:用户及文件权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重庆师范计算机录取分数线,重庆师范大学历
- 下一篇: 11235找规律c语言程序设计,找规律练