一、組管理
在linux中的每個用戶必須屬於一個組,不能獨立於組外。組信息會存放在/etc/group
中。
1.1 文件所有者
文件的所有者一般爲文件的創建者。但也可以通過指令修改文件所有者。
查看文件所有者指令 | ls -ahl |
|
---|---|---|
修改文件所有者指令 | chown 用戶名 文件名 |
1.2 組的創建與修改
創建組 | group 組名 |
|
---|---|---|
修改文件所在組 | chgrp 新組名 文件名 |
|
改變用戶所在組 | usermod -g 組名 用戶名 改變用戶所在組;usermod -d 目錄名 用戶名 改變用戶登錄的初始目錄 |
二、權限管理
這裏的權限,指的是文件
或目錄
的權限。使用ls -l
查看ok.txt文件的信息如下,下面對此信息做詳細介紹。
①-
②rw-
③r--
④r--
. ⑤1
⑥root
⑦root
⑧0
⑨5月 21 23:16
⑩ok.txt
①文件類型 | ②文件所有者的權限 | ③與文件所有者同組的其他用戶的用戶權限 | ④不與文件所有者同組的其他用戶的用戶權限 | ⑤number | ⑥文件所有者 | ⑦文件所在組 | ⑧文件大小(字節) | ⑨文件最後的修改時間 | ⑩文件名 |
---|
權限:r
讀權限,w
寫權限,-
無權限
第①位確定文件類型:(d
目錄, -
普通文件,l
軟連接,c
字符設備,b
塊文件,x
可執行文件)
第⑤位,如果是文件
:顯示硬鏈接數;是目錄
:顯示子目錄個數。
第⑧位,如果是文件
:顯示文件大小;是目錄
:顯示4096。
注意:這些權限作用在目錄和作用在文件上是不完全相同的。
2.2 修改權限
u:擁有者
,g:所在組
,o:其他用戶
,a:所有人(u,g,o的總和)
r=4
,w=2
,x=1
,rwx=7
方法一:使用+
、-
、=
變更權限;方式二:通過數字變更權限
方式一 | 方式二 | 說明 |
---|---|---|
chmod u=rwx,g=rx,o=x 文件目錄名 |
chmod 751 |
給目錄擁有者rwx權限,所在組rx權限,其他用戶x權限 |
chmod o+w 文件目錄名 |
給文件的其他用戶增加一個w權限 | |
chmod a-x 文件目錄名 |
給所有的用戶都減掉一個x權限 |
2.3 修改文件所有者
chown newowner file |
改變文件的所有者 |
---|---|
chown -R newowner file |
遞歸改變文件file目錄下所有文件的所有者 |
chown newowner:newgroup file |
同時改變用戶的所有者和所有組 |
三、權限實踐案例
存在police(警察組)
和bandit(土匪組)
,警察有A和B,土匪有C和D,
要求:
(1)創建police(警察組)
和bandit(土匪組)
(2)創建用戶ABCD。
(3)用戶A創建一個hello.txt文件,自己可以讀寫u=rw
6,本組人可以讀g=r
4,其它組沒有任何權限o
0。
(4)用戶A修改該文件,讓其它組人可以讀o=r
, 本組人可以讀寫g=rw
。
(5)C投靠警察,查看看是否可以讀寫。
代碼實踐:
(1)
[root@fcal ~]# groupadd police
[root@fcal ~]# groupadd bandit
(2)
[root@fcal ~]# useradd -g police A
[root@fcal ~]# useradd -g police B
[root@fcal ~]# useradd -g bandit C
[root@fcal ~]# useradd -g bandit D
(3)
[A@fcal ~]$ ls -l
總用量 4
-rw-r--r--. 1 A police 6 5月 22 07:25 hello.txt
[root@fcal ~]# su - A
[A@fcal ~]$ chmod 640 hello.txt
(4)
[A@fcal ~]$ ls -l
-rw-r-----. 1 A police 6 5月 22 07:25 hello.txt
[A@fcal ~]$ chmod o=r,g=rw hello.txt
[A@fcal ~]$ ll
總用量 4
-rw-rw-r--. 1 A police 6 5月 22 07:25 hello.txt
(5)
[root@fcal ~]# usermod -g police C
[root@fcal ~]# id C
uid=503(C) gid=503(police) 組=503(police)
此時C並不能訪問同組成員的目錄,仍然需要手動更改成員目錄的權限(更改後需要重新登錄)
四、rpm包管理
rpm包介紹:rpm是一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。生成具有.rpm
擴展名的文件,RPM(RedHat Package Manager,RedHat軟件包管理工具
)類似windows的setup.exe
安裝程序。Linux的分發版本都有采用(suse,redhat,centos等),幾乎是公認的行業標準了。
rpm包的簡單查詢指令:rpm -qa | grep firfox
(qa代表查詢所有,grep代表過濾;查詢是否有火狐)
rpm包的其它查詢指令 | 說明 |
---|---|
rpm -qa (一般配合grep和more使用) |
查詢所安裝的所有rpm軟件包 |
rpm -q 軟件包名 |
查詢軟件包是否安裝 |
rpm -qi 軟件包名 |
查詢軟件包信息 |
rpm -ql 軟件包名 |
查詢軟件包安裝了哪些文件,目錄在哪 |
rpm -qf 文件全路徑名 |
查詢文件所屬的軟件包 |
卸載rpm包
基本語法:rpm -e rpm包名稱
。
刪除firefox的rpm包
細節問題:如果其它軟件包依賴於要卸載的軟件包,卸載時會產生錯誤信息。此時可以通過
rpm -e -nodeps rpm包名稱
強制刪除,但不推薦。
安裝rpm包
基本語法:rpm -ivh rpm包全路徑名稱
(i安裝,v提示,h進度條)
安裝firefox的rpm包
五、yum包管理
yum介紹:Yum是一個Shell前端軟件包管理器。基於rpm包管理,能夠從指定的服務器自動下載rpm包並安裝,可以自動處理依賴性關係
,並且一次安裝所有依賴的軟件包。
基本指令:
- 查詢yum服務器是否有需要安裝的軟件:
yum list | grep xx軟件列表
- 安裝指定的yum包:
yum install xxx 下載安裝