Linux 是一個能夠實現多用戶登錄的操做系統,他們共享一些主機的資源,但他們也分別有本身的用戶空間,用於存放各自的文件。但實際上他們的文件都是放在同一個物理磁盤上的甚至同一個邏輯分區或者目錄裏,可是因爲 Linux 的用戶管理和權限機制,不一樣用戶不能夠輕易地查看、修改彼此的文件。html
1.查看用戶
輸入命令:node
$ who am i 或者 $ who mom likes運行效果:
輸出的第一列表示打開當前僞終端的用戶的用戶名(要查看當前登陸用戶的用戶名,去掉空格直接使用 whoami 便可);第二列的 pts/0 中 pts 表示僞終端;第三列則表示當前僞終端的啓動時間。
who命令其它經常使用參數
2.建立用戶
在 Linux 系統裏, root 帳戶擁有整個系統至高無上的權利,好比 新建/添加 用戶。linux
root 權限,系統權限的一種,與 SYSTEM 權限能夠理解成一個概念,但高於 Administrator 權限,root 是 Linux 和 UNIX 系統中的超級管理員用戶賬戶,該賬戶擁有整個系統至高無上的權力,全部對象他均可以操做,因此不少黑客在入侵系統的時候,都要把權限提高到 root 權限,用 Windows 的方法理解也就是將本身的非法賬戶添加到 Administrators 用戶組。更好比安卓操做系統中(基於 Linux 內核)得到 root 權限以後就意味着已經得到了手機的最高權限,這時候你能夠對手機中的任何文件(包括系統文件)執行全部增、刪、改、查的操做。shell
咱們通常登陸系統時都是以普通帳戶的身份登陸的,要建立用戶須要 root 權限,這裏就要用到 sudo 這個命令了。不過使用這個命令有兩個大前提,一是你要知道當前登陸用戶的密碼,二是當前用戶必須在 sudo 用戶組。shiyanlou 用戶也屬於 sudo 用戶組(稍後會介紹如何查看和添加用戶組)。su,su-與sudo
su user 能夠切換到用戶user,執行時須要輸入目標用戶的密碼。網絡
sudo cmd 能夠以特權級別運行cmd命令,須要當前用戶屬於sudo組,且須要輸入當前用戶密碼。socket
su - user 命令也是切換用戶,同時環境變量也會跟着改變成目標用戶的環境變量。工具
$ sudo adduser lilei
會新建一個叫 lilei 的用戶,實驗樓的環境目前設置爲 shiyanlou 用戶執行 sudo 不須要輸入密碼,一般此處須要按照提示輸入 shiyanlou 密碼(Linux 下密碼輸入是不顯示任何內容的)。而後是給 lilei 用戶設置密碼,後面的選項的一些內容你能夠選擇直接回車使用默認值。如今你已經建立好一個用戶,而且你可使用你建立的用戶登陸了,使用命令$ su -l lilei
(莫名多出個l,試了下不加l的,也能夠正常切換,稍微查了下,linux中用戶轉換問題,大概均可以吧)切換登陸用戶。輸入剛剛設置的 lilei 的密碼,注意:Linux 下密碼輸入是不顯示任何內容的。退出當前用戶跟退出終端同樣可使用 exit 命令或者使用快捷鍵 Ctrl+d。3.用戶組
用戶組簡單地理解就是一組用戶的集合,它們共享一些資源和權限,同時擁有私有資源,一個用戶能夠屬於多個用戶組。新建用戶時若是沒有指定用戶組的話,默認會自動建立一個與用戶名相同的用戶組。默認狀況下在sudo用戶組裏的可使用sudo命令得到root權限。ui
查找所屬用戶組
方法一:使用groups命令
輸入
$ groups user
就會輸出 user : user所屬用戶組。操作系統方法二:查看/etc/group文件
$ cat /etc/group | sort
中cat 命令用於讀取指定文件的內容並打印到終端輸出,後面會詳細講它的使用。 | sort 表示將讀取的文本進行一個字典排序再輸出,而後你將看到以下一堆輸出,你能夠在最下面看到 shiyanlou 的用戶組信息。$ cat /etc/group | grep -E "shiyanlou"
(linux grep命令詳解,不明覺厲)能夠過濾掉一些你不想看到的結果:
etc/group 文件格式說明
/etc/group 的內容包括用戶組(Group)、用戶組口令、GID (GroupId,即組ID,用來標識用戶組的惟一標識符。相似的還有UID,即UserID,root用戶的是0,UID爲0的用戶被系統約定爲是具備超級權限,並且只有root對應的UID爲0)及該用戶組所包含的用戶(User),每一個用戶組一條記錄。格式以下:.netgroup_name:password:GID:user_list
你看到上面的 password 字段爲一個 'x' 並非說密碼就是它,只是表示密碼不可見而已。
#### 將其它用戶加入 sudo 用戶組
使用 usermod 命令能夠爲用戶添加用戶組,一樣使用該命令你必需有 root 權限,你能夠直接使用 root 用戶爲其它用戶添加用戶組,或者用其它已經在 sudo 用戶組的用戶使用 sudo 命令獲取權限來執行該命令。$ su shiyanlou # 此處須要輸入shiyanlou用戶密碼,能夠點擊右側工具欄中的「SSH直連」查看 $ sudo usermod -G sudo lilei而後你再切換回 lilei 用戶,如今就可使用 sudo 獲取 root 權限了(使用
sudo <cmd>
以特權級別運行cmd命令)。4.刪除用戶
刪除用戶是很簡單的事:
$ sudo deluser lilei --remove-home
1.查看文件權限
咱們能夠用ls命令來列出並顯示當前目錄下的文件(不包括隱藏文件),固然這是在不加任何參數的狀況下,好比加上參數-l(使用較長格式輸出文件)就能夠用來查看文件權限,下面分析輸出的內容:
從第一項文件類型和權限開始一一道來:
文件類型
Linux 裏面一切皆文件,正由於這一點纔有了設備文件( /dev 目錄下有各類設備文件,大都跟具體的硬件設備相關)這一說,還有 socket(網絡套接字,不明覺厲),和 pipe (管道,說是很重要,先記住有這麼個東西)。硬連接不經常使用,不做爲本課程討論重點,而軟連接等同於 Windows 上的快捷方式。
文件權限
讀權限,表示你可使用
cat <file name>
之類的命令來讀取某個文件的內容;寫權限,表示你能夠編輯和修改某個文件; 執行權限,一般指能夠運行的二進制程序文件或者腳本文件,如同 Windows 上的 'exe' 後綴的文件,不過 Linux 上不是經過文件後綴名來區分文件的類型。一個目錄同時具備讀權限和執行權限才能夠打開並查看內部文件,而一個目錄要有寫權限才容許在其中建立其它文件,這是由於目錄文件實際保存着該目錄裏面的文件的列表等信息 。連接數
連接到該文件所在的inode 結點(不明覺厲)的文件名數目。
文件大小
以 inode 結點大小爲單位來表示的文件大小,你能夠給 ls 加上 -lh 參數來更直觀的查看文件的大小。
補充:ls 命令的一些其它經常使用參數
-A 顯示除 「.」和「..」外的全部文件。
-d 將目錄象文件同樣顯示,而不是顯示其下的文件。
-S 以文件大小排序。
-s 在每一個文件名後輸出該文件的大小。
-h 顯示文件大小時增長可讀性 (例:1K 234M 2G)。
2.變動文件全部者
在shell中,要修改文件當前的用戶必須具備管理員root的權限。能夠經過su命令切換到root用戶,也能夠經過sudo得到root的權限,而後使用chown(change owner)命令來改變文件全部者。chown命令的用途不少,還能夠順便直接修改用戶組的名稱(或相似的chgrp命令)。此外,若是要連目錄下的全部子目錄或文件同時更改文件擁有者的話,直接加上 -R的參數便可。
基本語法:
chown [-R] 帳號名稱 文件或目錄
chown [-R] 帳號名稱:用戶組名稱 文件或目錄
3.修改文件權限
方式一:二進制數字表示
每一個文件的三組權限(擁有者,所屬用戶組,其餘用戶,順序是必定的)分別對應一個 "rwx",按照「有這個權限則這一位就爲一」映射成三位二進制(如7即爲rwx)。用命令
$ chmod 700 filename
,便可讓全部者以外的用戶沒法對該文件進行操做。方式二:加減賦值操做
完成上述相同的效果,可使用命令
$ chmod go-rw filename
,其中'g'、'o'、'u',分別表示group,others,user,'+','-' 就分別表示增長和去掉相應的權限。
添加一個用戶loutest,使用sudo建立文件/opt/forloutest,設置成用戶loutest能夠讀寫。提示: 如何建立一個文件呢?能夠考慮 touch 命令,這個命令能夠建立一個空文件。
實驗報告
實際上沒有很懂,好比全部者怎麼是root。
來自實驗樓新手教程:Linux基礎入門