Linux 實驗 [Day 01]

記錄一下學習 Linux 以及動手實驗的內容。安全

圖片來源:實驗樓

1. Linux 簡介(略過)

2. Linux 基本概念及操做:命令、快捷鍵與通配符

2.1 基礎命令

ls, pwd, cd, cat, touch等bash

2.2 終端快捷鍵

按鍵 做用
Ctrl+d 鍵盤輸入結束或退出終端
Ctrl+s 暫停當前程序,暫停後按下任意鍵恢復運行
Ctrl+z 將當前程序放到後臺運行,恢復到前臺爲命令fg
Ctrl+a 將光標移至輸入行頭,至關於Home鍵
Ctrl+e 將光標移至輸入行末,至關於End鍵
Ctrl+k 刪除從光標到行末位置的內容
Alt+Backspace 向前刪除一個單詞
Shift+PgUp 將終端顯示向上滾動
Shift+PgUp 將終端顯示向下滾動

2.3 通配符

通配符是一種特殊語句,主要有星號(*)和問號(?),用來對字符串進行模糊匹配(好比文件名、參數名)。當查找文件夾時,可使用它來代替一個或多個真正字符;當不知道真正字符或者懶得輸入完> 整名字時,經常使用通配符代替一個或多個真正字符。
假設當前目錄底下有asd.txtfgh.txt兩個文件:函數

ls *.txt

輸出:oop

asd.txt fgh.txt
ls as?.txt

輸出:學習

asd.txt

一次性建立多個相似文件:spa

touch file_{1..10}.txt

Shell 經常使用通配符操作系統

字符 含義
* 匹配0或多個字符
? 匹配任意一個字符
[list] 匹配list中的任意單一字符
[^list] 匹配除list中字符之外的任意單一字符
[c1-c2] 匹配c1-c2中的任意單一字符,如:[0-9][a-z]
{string,string2,...} 匹配string1或string2(或更多)中所有字符串
{c1,..,c2} 匹配c1-c2中所有字符,如{1..10}

2.4 幫助命令

在Linux環境中,若是你遇到困難,可使用man命令,它是Manua1pages的縮寫。
Manual pages是UNIX或類UNIX操做系統中在線軟件文檔的一種廣泛的形式,內容包括計算機程序(包括庫和系統調用)、正式的標準和慣例,甚至是抽象的概念。用戶能夠經過執行man命令調用手冊頁。
你可使用以下方式來得到某個命令的說明和使用方式的詳細介紹:code

man <command_name>

好比你想查看 man 命令自己的使用方式,你能夠輸入:對象

man man

一般狀況下,man 手冊裏面的內容都是英文的,這就要求你有必定的英文基礎。man 手冊的內容不少,涉及了 Linux 使用過程當中的方方面面。爲了便於查找,man 手冊被進行了分冊(分區段)處理,在 > Research UNIX、BSD、OS X 和 Linux 中,手冊一般被分爲8個區段,安排以下:

區段 說明
1 通常命令
2 系統調用
3 庫函數,涵蓋了C標準庫
4 特殊文件(一般是/dev中的設備)和驅動程序
5 文件格式和約定
6 遊戲和屏保
7 雜項
8 系統管理命令和守護進程

要查看相應區段的內容,就在 man 後面加上相應區段的數字便可,如:

man 1 ls

想要得到更詳細的幫助,你還可使用info命令,不過一般使用man就足夠了。若是你知道某個命令的做用,只是想快速查看一些它的某個具體參數的做用,那麼你可使用--help參數,大部分命令都會帶> 有這個參數,如:

ls --help

3. 用戶及文件權限管理

  1. 實驗內容
    1. Linux 中建立、刪除用戶,及用戶組操做
    2. Linux 中的文件權限設置
  2. 實驗知識點
    1. Linux 用戶管理
    2. Linux 權限管理

3.1 Linux 用戶管理

3.1.1 查看用戶

打開終端,輸入:

who am i

輸出的第一列表示打開當前僞終端的用戶的用戶名(要查看當前登陸用戶的用戶名,去掉空格直接使用 whoami 便可),第二列的 pts/0 中 pts 表示僞終端,所謂僞是相對於 /dev/tty 設備而言的,僞終端就是當你在圖形用戶界面使用 /dev/tty7 時每打開一個終端就會產生一個僞終端, pts/0 後面那個數字就表示打開的僞終端序號,你能夠嘗試再打開一個終端,而後在裏面輸入 who am i ,看第二列是否是就變成 pts/1 了,第三列則表示當前僞終端的啓動時間。

who命令及其餘參數:
|參數|說明|
|-a|打印能打印的所有|
|-d|打印死掉的進程|
|-m|同am i,mom likes|
|-q|打印當前用戶數及用戶名|
|-u|打印當前登陸用戶登陸信息|
|-r|打印運行等級|

3.1.2 建立用戶

新建一個叫 lilei 的用戶:

sudo adduser lilei

這個命令不但能夠添加用戶到系統,同時也會默認爲新用戶建立 home 目錄:

ls /home

如今你已經建立好一個用戶,而且你可使用你建立的用戶登陸了,使用以下命令切換登陸用戶:

su -l lilei

3.1.3 用戶組

在 Linux 裏面每一個用戶都有一個歸屬(用戶組),用戶組簡單地理解就是一組用戶的集合,它們共享一些資源和權限,同時擁有私有資源,就跟家的形式差很少,你的兄弟姐妹(不一樣的用戶)屬於同一個家(用戶組),大家能夠共同擁有這個家(共享資源),爸媽對待大家都同樣(共享權限),你偶爾寫寫日記,其餘人未經容許不能查看(私有資源和權限)。固然一個用戶是能夠屬於多個用戶組的,正如你既屬於家庭,又屬於學校或公司。

在 Linux 中如何查看一個用戶屬於哪些用戶組呢?
方法一:使用groups命令:

lilei

輸出:

lilei : lilei

其中冒號以前表示用戶,後面表示該用戶所屬的用戶組。這裏能夠看到 shiyanlou 用戶屬於 shiyanlou 用戶組,每次新建用戶若是不指定用戶組的話,默認會自動建立一個與用戶名相同的用戶組(差很少就至關於家長的意思)。

方法2、查看/etc/group文件:

cat /etc/group | sort

這裏 cat 命令用於讀取指定文件的內容並打印到終端輸出。 | sort 表示將讀取的文本進行一個字典排序再輸出。

可使用命令過濾掉一些你不想看到的結果:

cat /etc/group | grep -E "lilei"

將其餘用戶加到 sudo 用戶組

默認狀況下新建立的用戶是不具備 root 權限的,也不在 sudo 用戶組,可讓其加入 sudo 用戶組從而獲取 root 權限:

sudo usermod -G sudo lilei

使用 usermod 命令能夠爲用戶添加用戶組,一樣使用該命令你必需有 root 權限,你能夠直接使用 root 用戶爲其它用戶添加用戶組,或者用其它已經在 sudo 用戶組的用戶使用 sudo 命令獲取權限來執行該命令。

3.1.4 刪除用戶

刪除用戶並移除其 home 目錄:

sudo deluser lilei --remove-home

刪除用戶但不移除其 home 目錄:

sudo deluser lilei --remove-home

3.2 文件權限

文件權限就是文件的訪問控制權限,即哪些用戶和組羣能夠訪問文件以及能夠執行什麼樣的操做。

Unix/Linux系統是一個典型的多用戶系統,不一樣的用戶處於不一樣的地位,對文件和目錄有不一樣的訪問權限。爲了保護系統的安全性,Unix/Linux系統除了對用戶權限做了嚴格的界定外,還在用戶身份認證、訪問控制、傳輸安全、文件讀寫權限等方面做了周密的控制。

在 Unix/Linux中的每個文件或目錄都包含有訪問權限,這些訪問權限決定了誰能訪問和如何訪問這些文件和目錄。

3.2.1 查看文件權限

使用ls -l查看文件權限

ls -l

輸出:

總用量24
drwxr-xr-x4 hadoop hadoop 4096 9月29 07:45 hadoop
drwxr-xr-x9 labex labex 4096 9月29 07:41 labex
drwxr-xr-x 2 1001 1001 409612月1520:22 lilei
drwxr-xr-x 2 lilwi lilwi 4096 12月1520:22 lilwi
drwxr-xr-x 2 shiyanlou shiyanlou 4096 9月29 07:36 project
圖片來源:實驗樓
圖片來源:實驗樓

3.2.2 變動文件全部者

先建立一個文件如file,而後使用ls -l查看該文件屬性:

總用量0
-rw-rw-r-- 1 lilei lilei 0 12月15 20:47 file

換回到原用戶,使用如下命令變動文件全部者爲原用戶:

sudo chown usr1 file

再查看屬性:

總用量0
-rw-rw-r-- 1 usr1 lilei 0 12月15 20:47 file

3.2.3 修改文件權限

若是你有一個本身的文件不想被其餘用戶讀、寫、執行,那麼就須要對文件的權限作修改,這裏有兩種方式:

方法一:二進制數字表示

圖片來源:實驗樓

每一個文件的三組權限(擁有者,所屬用戶組,其餘用戶,記住這個順序是必定的)對應一個 " rwx ",也就是一個 「 7 」 ,因此若是我要將文件file的權限改成只有我本身能夠用那麼就這樣:

chmod 600 file

方法二:加減賦值操做

chmod [obj][+/=][r/w/x] file
  • [obj]表示用戶,g/o/u 分別表示 group/others/user,寫的時候順序無所謂
  • [+/-]分別表示增長和去掉相應的權限
  • [r/w/x]對應三種權限,寫的時候順序無所謂

例子:

chmod go-rw file

↑表示去掉 group 和 others 的 rw 權限。

chmod uog+rwx file

↑表示給三種對象都加上 rwx 權限。

chmod ug-wxr file

↑表示去掉 user 和 group 的 rwx 權限。

3.3 其餘

adduser 和 useradd 的區別是什麼?

答:useradd 只建立用戶,建立完了用 passwd lilei 去設置新用戶的密碼。adduser 會建立用戶,建立目錄,建立密碼(提示你設置),作這一系列的操做。其實 useradd、userdel 這類操做更像是一種命令,執行完了就返回。而 adduser 更像是一種程序,須要你輸入、肯定等一系列操做。

Linux 還有一些關於隱藏權限和特殊權限的內容,想全面瞭解 Linux 權限管理這部份內容的用戶能夠經過其它方式學習。

相關文章
相關標籤/搜索