① linux命令之用戶組管理
Linux中每個用戶都要屬於一個或多個組,有了用戶組,就可以將用戶添加到組中,這樣就方便管理員對用戶的集中管理。 Linux系統中用戶組分為root組、系統組、普通用戶組三類。當一個用戶屬於多個組時,這些組中只能有一個作為該用戶的主屬組,其他組就被稱為此用戶的次屬組。 組基本信息在文件/etc/group中;組密碼信息在文件/etc/gshadow中。通過命令:cat /etc/group、cat /etc/gshadow可查看文件內容。
各用戶組中,以 ":" 作為欄位之間的分隔符,分為 4 個欄位,每個欄位對應的含義為:
組名:密碼:GID:該用戶組中的用戶列表
而在gshadow文件中,每行代表一個組用戶的密碼信息,各行信息用 ":" 作為分隔符,分為 4 個欄位,每個欄位的含義如下:
組名:加密密碼:組管理員:組附加用戶列表
root用戶可以直接修改/etc/group文件達到管理組的目的,也可以使用以下命令:groupadd、groupdel、groupmod -n、gpasswd -a、gpasswd -d、newgrp。
下面使用案例分別講解這些命令:
添加用戶組的命令是 groupadd,命令格式如下:
groupadd [ -g gid [ -o ] ] [ -r ] [ -f ] group
參數說明:
-g:指定新建工作組的 id;
-r:創建系統工作組,系統工作組的組ID小於 500;
-K:覆蓋配置文件 "/ect/login.defs";
-o:允許添加組 ID 號不唯一的工作組。
-f,--force: 如果指定的組已經存在,此選項將失明了僅以成功狀態退出。當與 -g 一起使用,並且指定的GID_MIN已經存在時,選擇另一個唯一的GID(即-g關閉)。
示例:創建一個新的組,並添加組 ID。
[root@VM-4-4-centos ~]# groupadd -g 888 newgroup
此時在/etc/group文件中產生了一個id為888的項目:
刪除用戶組時,可用groupdel(group delete)指令來完成。倘若該組中仍包括某些用戶,則必須先刪除這些用戶後,方能刪除組。 注意:刪除的組不能為主屬組! 命令格式:
groupdel [組名]
示例:刪除用戶組 newgroup
[root@VM-4-4-centos ~]# groupdel newgroup
此時再查看/etc/group文件時可以看到用戶組newgroup已經不存在,刪除成功!
要更改用戶組識別碼或名稱可使用 groupmod 來完成。命令格式:
groupmod [ -g <群組識別碼> < -o > ] [ -n <新群組名稱 > ] [原群組名稱]
參數說明 :
-g <群組識別碼> 設置欲使用的群組識別碼。
-o 重復使用群組識別碼。
-n <新群組名稱> 設置欲使用的群組名稱。
示例:創建用戶組newgroup並修改其名稱為modifiedgroup
[root@VM-4-4-centos ~]# groupadd newgroup
[root@VM-4-4-centos ~]# groupmod -n modifiedgroup newgroup
查看/etc/group文件,只存在名稱為modifiedgroup的用戶組,修改成功!
gpasswd 是 Linux 下工作組文件 /etc/group 和 /etc/gshadow 管理工具,用於將一個用戶添加到組或者從組中刪除。命令格式:
gpasswd [可選項] 組名
可選項參數 :
-a:添加用戶到組;
-d:從組刪除用戶;
-A:指定管理員;
-M:指定組成員和-A的用途差不多;
-r:刪除密碼;
-R:限制用戶登入組,只有組中的成員才可以用newgrp加入該組。
示例1:將用戶yangwei添加到組modifiedgroup中
[root@VM-4-4-centos ~]# gpasswd -a yangwei modifiedgroup
此時查看/etc/group文件發現組 modifiedgroup中出現用戶yangwei
示例2:將用戶yangwei從組modifiedgroup中給刪除
[root@VM-4-4-centos ~]# gpasswd -d yangwei modifiedgroup
再次查看/etc/group文件發現用戶yangwei已經不存在。
當需要在不同的群組下工作的時候我們需要進行切換群組操作,這個操作由newgrp指令來完成。命令格式如下:
newgrp [群組名稱]
注意!當前用戶必須都是兩個群組的成員,否則切換群組時需要輸入切換組的組密碼,這時候當前用戶作為臨時成員在切換組下工作,所創建的文件全都屬於切換組。
示例1:用戶yangwei不屬於群組modifiedgroup,請將當前工作組切換為modifiedgroup。
示例2:將用戶yangwei添加到組modifiedgroup中,並切換工作組為modifiedgroup。
總結:Linux用戶組管理需要掌握最基本的幾個命令及其選項參數: groupadd 、groupdel 、groupmod 、gpasswd 、newgrp !
② Linux /etc 解讀
/etc 是Linux下的一個目錄,在很多的配置過程中我們很可能都接觸過它,關於 etc 的字面意思,有人說是「et cetera」 (直譯是「等等,用於放其它目錄下不匹配的東西,什麼雜七雜八的都有」),也有傳言說是"Editable Text Configuration",也有人戲說是「Every Thing Config」,但是至今沒有一個明確的定論。
The file system hierarchy standard [ FSHS ] explains /etc as follows :
It further goes on to say :
While this is the long and short of the matter, some believe that '/etc' is indeed an acronym and stands for "Editable Text Configuration". Oh well, the media is still not out with the verdict.
/etc/group 文件是管理Linux的用戶組的文件,一般的group文件形式如下所示:
該文件的解讀方法如下所示:
Ref:
③ Linux 中文件屬性以及文件許可權
可以看到列出了當前目錄下的所有文件,包括許可權信息,所屬用戶,日期和文件名,其它很好理解但是看到 -rwxrwxr-x 這一串字元的時候完全是懵逼狀態的,我是誰?我在哪?我要干什麼?😆先來對裡面的字元一步步拆分吧。
首先第一個字元用來標識是文件還是目錄,這里只列出兩個有代表性的:
然後在接下來的剩餘字元中,以三個為一組,且均為『rwx』 的三個參數的組合。其中,[ r ] 代表可讀 (read)、[ w ] 代表可寫 (write)、[ x ] 代表可執行 (execute)。我們知道,在 Linux 中,文件的基本許可權就有九個,分別是
owner/group/others 三種身份各有自己的 read/write/execute 許可權。那我們就明白了,並且可以得出結論:
我們如果想要查看單個文件的默認許可權可以使用命令: ls -al 文件名
可以看到文件 hello.c 的默認許可權為 -rwxr-xr-- ,要改變它的許可權為 rwxrwxr-x ,我們可以使用 chmod 命令,有兩種方法設置方法:
1、符號類型改變文件許可權: chmod u=rwx,g=rwx,o=rx 文件名
從上示例中可以看到 hello.c 的許可權已經變成 rwxrwxr-x 。
2、數字類型改變文件許可權,各許可權的分數對照表如下:
每種身份(owner/group/others)各自的三個許可權(r/w/x)分數是需要累加的,例如當許可權為: [-rwxrwx---] 分數則是:
變更許可權的指令 chmod 的語法是這樣的:
選項與參數:
如果要將 hello.c 的所有許可權都啟用,那麼可以這樣:
一頓操作猛如虎, hello.c 的文件許可權變更為 rwxrwxrwx ,😆美滋滋。
剛接觸 Linux,如果有寫得不對的地方,希望能指出,一起交流,一起學習😯。
④ Linux 基礎命令
不管是重啟系統還是關閉系統,通常先要要運行 sync 命令,把內存中的數據寫到磁碟中
Linux 每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理。
類似於角色,系統可以對有共性的多個用戶進行統一的管理。
(1)/etc/passwd 文件
用戶(user)的配置文件,記錄用戶的各種信息
每行的含義:用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄
(2)/etc/shadow 文件
口令的配置文件
每行的含義:登錄名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:保留
(3)/etc/group 文件
組(group)的配置文件,記錄 Linux 包含的組的信息
每行含義:組名:口令:組標識號:組內用戶列表
運行級別說明:
0 :關機
1 :單用戶 [類似安全模式, 這個模式可以幫助找回 root 密碼]
2:多用戶狀態沒有網路服務
3:多用戶狀態有網路服務 [使用最多]
4:系統未使用保留給用戶
5:圖形界面
6:系統重啟
常用運行級別是 3 和 5 ,要修改默認的運行級別可改文件
如果指定運行級別
/etc/inittab 的
id:5:initdefault:這一行中的數字
也可以通過 init 來切換不同的運行級別
假設我們的 root 密碼忘記了,請問如何找回密碼
啟動時->快速輸入 enter->輸入 e-> 進入到編輯界面-> 選擇中間有 kernel 項->
輸入 e(edit)-> 在該行的最後寫入 1 [表示修改內核,臨時生效]-> 輸入 enter->
輸入 b [boot]-> 進入到單用戶模式 【這里就可以做補救工作】
2.4 掛載
2.5 上面的方式,只是臨時生效,當你重啟系統,掛載的關系沒有, 配置 linux 的分區表,實現啟動時,自動掛載
2.6 重啟後,會自動掛載.
2.7 卸載
指令:umount 設備名 | 掛載路徑
1.修改配置文件
文件中內容
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME= hadoop //寫入新的主機名
注意:主機名稱不要有「_」下劃線
這種方式只是臨時生效,當重啟系統後,還是回歸以前對服務的設置。
如果希望設置某個服務自啟動或關閉永久生效,要使用 chkconfig 指令
4.3 應用實例
4.4 使用細節
chkconfig重新設置服務後自啟動或關閉,重啟機器就會按設置的狀態運行
查看系統網路情況
⑤ Linux文件基本屬性
Linux系統是一種典型的多用戶系統,不同的用戶處於不同的地位,擁有不同的許可權。為了保護系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的許可權做了不同的規定。
在Linux中我們可以使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組,如:
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
……
實例中,bin文件的第一個屬性用"d"表示。"d"在Linux中代表該文件是一個目錄文件。
在Linux中第一個字元代表這個文件是目錄、文件或鏈接文件等等。
接下來的字元中,以三個為一組,且均為『rwx』 的三個參數的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)。 要注意的是,這三個許可權的位置不會改變,如果沒有許可權,就會出現減號[ - ]而已。
每個文件的屬性由左邊第一部分的10個字元來確定(如下圖)。
從左至右用0-9這些數字來表示。
第0位確定文件類型,第1-3位確定屬主(該文件的所有者)擁有該文件的許可權。
第4-6位確定屬組(所有者的同組用戶)擁有該文件的許可權,第7-9位確定其他用戶擁有該文件的許可權。
其中,第1、4、7位表示讀許可權,如果用"r"字元表示,則有讀許可權,如果用"-"字元表示,則沒有讀許可權;
第2、5、8位表示寫許可權,如果用"w"字元表示,則有寫許可權,如果用"-"字元表示沒有寫許可權;第3、6、9位表示可執行許可權,如果用"x"字元表示,則有執行許可權,如果用"-"字元表示,則沒有執行許可權。
語法:
chgrp [-R] 屬組名 文件名
參數選項
語法:
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
進入 /root 目錄(~)將install.log的擁有者改為bin這個賬號:
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
將install.log的擁有者與群組改回為root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
Linux文件屬性有兩種設置方法,一種是數字,一種是符號。
Linux文件的基本許可權就有九個,分別是owner/group/others三種身份各有自己的read/write/execute許可權。
先復習一下剛剛上面提到的數據:文件的許可權字元為:『-rwxrwxrwx』, 這九個許可權是三個三個一組的!其中,我們可以使用數字來代表各個許可權,各許可權的分數對照表如下:
每種身份(owner/group/others)各自的三個許可權(r/w/x)分數是需要累加的,例如當許可權為: [-rwxrwx---] 分數則是:
所以等一下我們設定許可權的變更時,該文件的許可權數字就是770啦!變更許可權的指令chmod的語法是這樣的:
chmod [-R] xyz 文件或目錄
選項與參數:
舉例來說,如果要將.bashrc這個文件所有的許可權都設定啟用,那麼命令如下:
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
那如果要將許可權變成 -rwxr-xr-- 呢?那麼許可權的分數就成為 [4+2+1][4+0+1][4+0+0]=754。
還有一個改變許可權的方法,從之前的介紹中我們可以發現,基本上就九個許可權分別是:
那麼我們就可以使用 u, g, o 來代表三種身份的許可權!
此外, a 則代表 all ,即全部的身份。讀寫的許可權可以寫成 r, w, x ,也就是可以使用下表的方式來看:
<colgroup><col span="1" width="166"><col span="1" width="166"><col span="1" width="166"><col span="1" width="166"><col span="1" width="166"></colgroup>
| chmod | u
g
o
a | +(加入)
-(除去)
=(設定) | r
w
x | 文件或目錄 |
如果我們需要將文件許可權設置為 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 來設定:
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
而如果是要將許可權去掉而不改變其他已存在的許可權呢?例如要拿掉全部人的可執行許可權,則:
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1