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