1.解釋開源許可證。
開源許可證:是指一種被用于計算機軟件或其他產品的,允許在指定的條款內使用,修改或分發其源代碼,藍圖或設計的許可證。是一種允許我們在一定條件內按照我們的需要自由使用和修改軟件及其源代碼的法律條款,籍此條款,這個軟件的作者(可能是一個人,也可能是很多人)可以將這些權利許可給我們,并告知我們一些使用限制。這些條款有時由個人起草,有時由商業公司起草,但最廣泛使用的是由非營利組織(例如 自由軟件基金會,FSF)起草的各種開源許可證,通常情況下,作為開發者的我們可以通過按照這些許可證的要求放置許可證條款(有的許可證可能有別的要求,也有可能沒有要求)來聲明我們基于這些許可證開源。
開源許可證的類型:國際公認的開源許可證共有80多種。共同特征:都允許用戶免費地使用、修改、共享源碼,但是都有各自的使用條件。
根據使用條件的不同,開源許可證分成兩大類:寬松式(Permissive) 許可證:BSD,MIT,Apache 2;著佐權(Copyleft) 許可證:AGPL,GPL,LGPL,Mozilla。
開源許可證GPL BSD MIT Mozilla Apache LGPL有什么區別?

GPL(通用公共許可證):由自由軟件基金會發行的用于計算機軟件的協議證書,使用此證書的軟件稱為自由軟件。大多數的GNU程序和超過半數的自由軟件使用它。
BSD(Berkly Software Distribution):是自由軟件(開源軟件的一個子集)中使用最廣泛的許可證之一。BSD許可證比較寬松。事實上,BSD許可證被認為是copycenter(中間版權),界乎標準的copyright與GPL的copyleft之間。
MIT:源于大學,是十分寬松的許可協議。用戶可以拿自己的代碼做任何想做的事情;用戶在項目副本中要包含版權聲明和許可聲明;用戶無需承擔任何責任。
Mozilla:Mozilla 公共許可證第二版(簡稱 MPL2.0(The Mozilla Public License))是一個弱 copyleft 許可證,但是其條款的特殊性質又使其更像一個寬松許可證。
Apache:與BSD類似,同樣適用于商業軟件,鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,但它更重視專利權。現在熱門的 Hadoop、Apache 家族、SVN、MongoDB 等項目都是基于該許可協議研發的。
LGPL:是 GPL 的一個衍生版本,也被稱為 GPL V2,該協議主要是為類庫設計的開源協議,同樣來源于自由軟件聯盟GNU,可以翻譯為更寬松的GPL協議,也屬于傳染性開源。
2.安裝發行版系統。(rockyliunx centos ubuntu)

3.Linux中總結(關于man)
Linux系統提供了相對比較豐富的幫助手冊(man),man是manual的縮寫,在日常linux系統管理中經常用到。man 本身也提供自己的幫助手冊,通過man就可以查看。
1、man手冊分為多個section,每個section用一個字符表示。
section可以理解為類別,例如:man 1 passwd 和 man 5 passwd是不一樣的類別。通常我們使用man passwd,這個時候man就按照預先設置的搜索路徑和順序去搜索passwd,當搜索到一個就停止繼續搜索并將結果顯示出來,如果我們指定了section,那么man只會在指定的section里去查找man幫助頁。

2、man的配置文件。
man的配置文件是/etc/man.config,我們現學現用,可以通過man 5 man.config看看這個配置文件的幫助信息。對于man.config,我們日常使用的不多,一般都是默認的設置,比較重要的是MANPATH (man幫助文件存放的路徑)和MANSECT(man搜索的順序)兩個參數,通常不建議修改。
3、man的日常使用。
man常用操作:使用man打開幫助手冊,里面很多操作與我們經常使用的vi編輯器類似,當然可以通過h鍵查看具體的幫助信息,下面只簡單談談我們經常使用的一些操作。上下翻頁。最常用的是使用空格鍵向下翻頁:另外,[Page Up] 可以向上翻頁,[Page Down]也可以實現向下翻頁,[Home]返回首頁,[End]返回末頁。
行移動:使用鍵盤方向鍵進行上下文移動,或者使用j鍵往下移動, k鍵向上移動。
查找:使用/string向下搜索string關鍵字,?string向上搜索string關鍵字。n鍵繼續關鍵字的下一個搜索,N鍵反向搜索關鍵字。
書簽:man中可以定義書簽,當我們想把幫助頁的某個位置記錄下來以便后面查看,就可以定義個書簽。例如在當前位置定義個書簽letter,我們需要輸入m鍵后,再輸入定義的書簽名letter即可。那么如何使用這個書簽呢?在當前幫助頁里輸入單引號'letter就可以定位到書簽的位置。
執行shell:在man頁內可以執行shell,通過!號再輸入shell即可執行。例如:!echo 'hello world',即可打印hello world。這個在日常工作中基本用不到,這里提出來也就想開闊下大家的思路。
退出:q鍵退出當前幫助手冊。
man常用命令參數
man -a:搜索并打開所有man中同名幫助,例如 man passwd ,你首先會進入一個PASSWD(1) section用戶命令類的幫助手冊,你再按q鍵退出當前正在顯示的幫助手冊,就會進入PASSWD(5) section文件格式類的幫助手冊。
man -aw:顯示所有手冊文件的路徑。例如man -aw passwd
- /usr/share/man/man1/passwd.1.gz
- /usr/share/man/man5/passwd.5.gz
man -M:指定手冊文件的搜索路徑,有的時候我們自己安裝的軟件是帶有自己的幫助文件的,通常不在我們的MANPATH 里面,那么我們就可以手動指定man搜索的文件路徑。如 man -M /home/mysql/man mysql 顯示的就是你安裝的mysql的幫助,而不是系統默認的舊版mysql的幫助。
man -k:根據關鍵字搜索聯機幫助,是一種模糊搜索。例如要查找"passwd"相關的信息,使用man -k passwd會找到很多和passwd相關的幫助頁。
man -f:關鍵字精確搜索,與-k不同,它只搜索與關鍵字完全匹配的幫助頁。
問題:
(1)如何通過一個簡短的關鍵字,eg.process獲取相關命令?
ls cpu
cat /etc/process
(2)通過命令描述,選擇一個命令,獲取命令的man文檔。
whatis date
man 1 date <== 1
(3)解讀man文檔,man分幾部分?man每個部分的解釋,特別是語法部分。
man 頁面分組
不同類型的幫助稱為不同的“章節”,統稱為Linux手冊,man 1 man
- 1:用戶命令
- 2:系統調用
- 3:C庫調用
- 4:設備文件及特殊文件
- 5:配置文件格式
- 6:游戲
- 7:雜項
- 8:管理類的命令
- 9:Linux 內核API
man 幫助段落說明
- NAME 名稱及簡要說明
- SYNOPSIS 用法格式說明
- [] 可選內容
- <> 必選內容
- a|b 二選一
- { } 分組
- ... 同一內容可出現多次
- DESCRIPTION 詳細說明
- OPTIONS 選項說明
- EXAMPLES 示例
- FILES 相關文件
- AUTHOR 作者
- COPYRIGHT 版本信息
- REPORTING BUGS bug信息
- SEE ALSO 其它幫助參考
(4)根據語法部分 簡要寫幾個操作
man -w 1 passwd
4.切換到/etc目錄,列出fstab文件的詳細信息,詳細解決fstab一行,每個或每幾個字符的詳細含義。
-rw-r--r--. 1 root root 709 May 15 20:53 /etc/fstab
-(文件類型)rw-(用戶的權限)r--(用戶組權限)r--(其他人權限)
root (所屬人)root(所屬組) 709(大小) May 15 20:53 (修改時間)/etc/fstab(文件名)
5.簡要說明FHS結構
Filesystem Hierarchy Standard(文件系統層次化標準)的縮寫,多數Linux版本采用這種文件組織形式,類似于Windows操作系統中c盤的文件目錄,FHS采用樹形結構組織文件。FHS定義了系統中每個區域的用途、所需要的最小構成的文件和目錄,同時還給出了例外處理與矛盾處理。

/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放于此目錄
/bin:所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序/sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序/lib:啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)/lib64:專用于x86_64系統上的輔助共享庫文件存放位置/etc:配置文件目錄/home/USERNAME:普通用戶家目錄/root:管理員的家目錄/media:便攜式移動設備掛載點/mnt:臨時文件系統掛載點/dev:設備文件及特殊文件存儲位置b: block device,隨機訪問c: character device,線性訪問/opt:第三方應用程序的安裝位置/srv:系統上運行的服務用到的數據/tmp:臨時文件存儲位置/usr: universal shared, read-only databin: 保證系統擁有完整功能而提供的應用程序sbin:lib:32位使用lib64:只存在64位系統include: C程序的頭文件(header files)share:結構化獨立的數據,例如doc, man等local:第三方應用程序的安裝位置bin, sbin, lib, lib64, etc, share/var: variable data filescache: 應用程序緩存數據目錄lib: 應用程序狀態信息數據local:專用于為/usr/local下的應用程序存儲可變數據lock: 鎖文件log: 日志目錄及文件opt: 專用于為/opt下的應用程序存儲可變數據run: 運行中的進程相關數據,通常用于存儲進程pid文件spool: 應用程序數據池tmp: 保存系統兩次重啟之間產生的臨時數據/proc: 用于輸出內核與進程信息相關的虛擬文件系統/sys:用于輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位置
cat命令:文本輸出命令。
$ cat filename
②從鍵盤創建一個文件。
$ cat > filename
只能創建新文件,不能編輯已有文件.
③將幾個文件合并為一個文件。
$cat file1 file2 > file
-e 當文件顯示結束后,自動離開
-f 強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件
-g 只標志最后搜索的關鍵詞
-i 忽略搜索時的大小寫
-m 顯示類似more命令的百分比
-N 顯示每行的行號
-o <文件名> 將less 輸出的內容在指定文件中保存起來
-Q 不使用警告音
-s 顯示連續空行為一行
-S 行過長時間將超出部分舍棄
-x <數字> 將“tab”鍵顯示為規定的數字空格
1.超級管理員: 擁有最高權限的賬戶(默認叫做root)可以正常登錄 人可以使用
2.普通用戶: 權限受限的用戶 可以正常登錄= 人可以使用
3.程序用戶: 不可以正常登錄,只給程序使用,人不能用
系統啟動的時候, 沒有登錄用戶,
程序用戶,專門給程序使用的用戶,無需登錄,直接啟動程序
程序用戶是給程序使用 , 普通用戶超級管理員用戶是給人使用
不登錄人使用的用戶,只運行一些程序用戶只給運行的程序分配 程序用戶
(2)組
組是需要共享文件和其他系統資源訪問權限的用戶集合,組可以向一組用戶授予文件訪問權限。與用戶相似,組也有組名稱。在內部,系統通過分配唯一標識號(GID)來區分不同的組。組名稱和GID的對應關系存放在組賬號信息數據庫中/etc/group。
主要組和附屬組
主組:每個用戶都有一個主組,在/etc/passwd文件中GID號對應的組。默認情況下,在創建新用戶時,會創建一個與用戶同名的新組,該組將用作新用戶的主要組。
附屬組:用戶也可以有附屬組,附屬組的成員資格由/etc/group文件確定。根據所在的組是否有訪問權限,將授予用戶對文件的訪問權限。
uid gid
uid :系統用來識別用戶的唯一身份標識
gid: 系統用來識別組的唯一身份標識
uid 只能是整數 0-60000 不能重復
超級管理員 uid 一定是0
root 不一定是超級管理員
識別是否為超級管理員只看uid 是否為0
id + 用戶名
[root@localhost data]#id root
uid=0(root) gid=0(root) 組=0(root)
uid 的范圍centos7
超級管理員: uid為0
程序用戶uid 范圍 : 1-999
普通用戶uid 范圍 :1000 - 60000
修改uid 的范圍(補充)
[root@localhost data]#vim /etc/login.defs
/etc/passwd 存放用戶信息
每個字段用冒號隔開
ky22:x:1003:1003:nginx:/home/ky22:/sbin/nologin
第一字段:用戶名
第二字段:密碼占位符
第三字段:uid
第四字段:組id
第五字段:備注信息
第六字段:家目錄位置
第七字段:默認shell程序
/etc/shadow 存放密碼信息
每個字段用冒號隔開
zhangsan:$6$3/O6NuAjdnApLp2F.V1n.::0:99999:7:::
第一字段:用戶名
第二字段:加密后的密碼 如果為 * !! 無法登錄
第三字段:上一次修改密碼時間,數字的含義為 從1970-1-1 到改密碼的時間 一共經歷多少天
第四字段:最小修改密碼間隔時間 如果是0 可以隨意修改, 7代表7 天后才可以修改
第五字段: 密碼有效期 默認99999天 273年,設置為 7 代表7天要求你重新設置密碼
第六字段:密碼到期提醒時間 設置為7 代表密碼到期前7天會提示你
第七字段:密碼過期后的寬限天數 設置為10 表示密碼到期后還可以使用10天
第八字段:用戶失效時間 同第 3 個字段一樣,使用自 1970 年 1 月 1 日以來的總天數作為賬戶的失效時間 到期后無法登錄
第九字段:保留字段
useradd 添加用戶
通式: useradd [選項].... 用戶名
-u 指定uid
-g 指定基本組(組名和gid都可以)
-G 指定附加組(組名和gid都可以)
-d 指定家目錄
-M 不建立家目錄
-s 指定默認登錄shel
-e 指定用戶失效時間 可使用 YYYY-MM-DD 的日期格式。
-r 建立系統用戶
當建立用戶時不加選項
1.會按順序使用uid號
2.會建立一個 和用戶名同名的基本組
3.按順序使用gid
4.會在/home 建立一個和用戶名同名的家目錄
5.會將用戶信息保存在 /etc/passwd 文件中
[root@localhost zhangsan]#useradd -M -s /sbin/nologin lijiu
[root@localhost zhangsan]#tail -n1 /etc/passwd
lijiu:x:1009:1009::/home/lijiu:/sbin/nologin
修改密碼 passwd
passwd 用戶名
改密碼 交互
[root@localhost zhangsan]#passwd lisi
更改用戶 lisi 的密碼 。
新的 密碼:
無效的密碼: 密碼少于 8 個字符
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
passwd [選項] 用戶名
-l 鎖定用戶 不讓登錄
-u 解鎖
-d 清空密碼 無需使用密碼直接登錄
-S(大寫) 查看鎖定狀態
[root@localhost ~]#passwd -u lisi
解鎖用戶 lisi 的密碼。
passwd: 操作成功
[root@localhost ~]#passwd -d lisi
清除用戶的密碼 lisi。
passwd: 操作成功
usermod 修改已有用戶的屬性
-l(小寫L) 修改用戶登錄名
-L (大寫) 鎖定用戶
-U (大寫) 解鎖用戶
-u(小寫) 指定uid
-g 指定基本組(組名和gid都可以)
-G 指定附加組(組名和gid都可以)
-d 指定家目錄
-M 不建立家目錄
-s 指定默認登錄shel
-e 指定用戶失效時間 可使用 YYYY-MM-DD 的日期格式。
[root@localhost ~]#usermod -s /sbin/nologin lisi
[root@localhost ~]#tail -n1 /etc/passwd
lisi:x:1002:1002::/home/lisi:/sbin/nologin
[root@localhost ~]#usermod -u 10000 lisi
usermod: user lisi is currently used by process 16622
[root@localhost ~]#usermod -u 10000 lisi
[root@localhost ~]#tail -n1 /etc/passwd
lisi:x:10000:1002::/home/lisi:/sbin/nologin
刪除用戶 userdel
-r 連家目錄一起刪除
[root@localhost home]#userdel zhangsan
[root@localhost home]#ll
總用量 0
drwx------. 3 1002 lisi 78 8月 26 2021 hehe
drwx------. 14 lisi lisi 271 7月 31 11:10 lisi
drwx------. 3 mysql mysql 78 8月 25 2021 mysql
drwx------. 5 1000 1000 128 8月 27 2021 zhangsan
[root@localhost home]#userdel -r lisi
[root@localhost home]#ll
總用量 0
drwx------. 3 1002 1002 78 8月 26 2021 hehe
drwx------. 3 mysql mysql 78 8月 25 2021 mysql
drwx------. 5 1000 1000 128 8月 27 2021 zhangsan
posted on
浙公網安備 33010602011771號