自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux 不懂權(quán)限管理,怎么玩騷操作

系統(tǒng) Linux
前言: 最近有不少同學私聊我,說面試的過程中遇到的面試官提問 Linux 相關(guān)的問題,不禁有些抱怨,自己又不是運維,為啥要精通 Linux,會一些基本命令不就可以了么!

 [[352285]]

本文轉(zhuǎn)載自微信公眾號「小菜良記」,作者蔡不菜丶。轉(zhuǎn)載本文請聯(lián)系小菜良記公眾號。  

小菜提示: 看完此文手癢的同學,請在測試服務(wù)器上聯(lián)系哦,可不能隨便上生產(chǎn)服務(wù)器上測試!

前言: 最近有不少同學私聊我,說面試的過程中遇到的面試官提問 Linux 相關(guān)的問題,不禁有些抱怨,自己又不是運維,為啥要精通 Linux,會一些基本命令不就可以了么!

首先看到這個問題,小菜是有點懵的,為什么 Linux 是運維才需要精通的呢。作為有擔當?shù)?搬磚 打工人,線上出現(xiàn)問題,不止運維人員首當其沖,開發(fā)人員也少不了 "沖鋒陷陣"。所以當你熟悉 Linux 的操作后,線上出現(xiàn)問題后,還可以 裝* 的跟別人說下,"莫慌,讓我來" !

話不多說,小菜這篇就帶你來了解一下 Linux 中的 權(quán)限 是如何管理的,Linux 的基本操作可以查看這篇文章:Linux操作

權(quán)限入門

1. 文件屬性

如果你剛聽到 文件屬性 這幾個字眼感到比較陌生,不要慌張,因為只要你用過 Linux ,你可不會對 ls 或者 ll 這兩個命令感到陌生,這兩個都是用來查看文件的命令,你在任意一個目錄下執(zhí)行 ls -l 會出現(xiàn)類似以下頁面:

 

我們先來詳細看下每個部分分別代表什么意思:

 

首先我們先明白 ls 是 list 的意思,用于顯示文件的文件名與相關(guān)屬性,其中 -l是用來列出所有文件的詳情權(quán)限與屬性。

1)權(quán)限

我們來看下 drwx------ 這個部分的內(nèi)容,這個部分我們細數(shù)之后發(fā)現(xiàn)其中包含 10 個字符:

 

  • 第一欄: 表示該文件是目錄、文件或是鏈接文件等
    • d : 表示目錄,上面 www 則為一個名為 www 的目錄
    • - : 表示文件,上面 test.txt 則為一個文件
    • l : 表示鏈接文件【link file】
    • b : 表示為設(shè)備文件里面可供存儲的周邊設(shè)備
    • c : 表示為設(shè)備文件里面的串行端口設(shè)備,例如鍵盤、鼠標(一次性讀取設(shè)備)
  • 第二欄: 三個字符為一組,表示 文件擁有者可具備的權(quán)限
  • 第三欄: 三個字符為一組,加入此用戶組的賬號擁有的權(quán)限
  • 第四欄: 三個字符為一組,表示非本人且沒有加入本用戶組的其他賬號的權(quán)限

注: 自 第二欄到第四欄 均為三個字符為一組,其中字符可能出現(xiàn)的有 r、w、x、-,其中【r】 表示可讀(read),【w】表示可寫(write),【x】表示可執(zhí)行(execute),【-】表示沒有權(quán)限。且 rwx 三個的位置是固定的。

小試牛刀:

-rwx-w-r-- 表示的意思?

首先拆為 4 個部分,- rwx -w- r--

  • -: 表示這個表示一個文件
  • rwx: 這個文件的擁有者有著 可讀、可寫、可執(zhí)行 的權(quán)限
  • -w-: 表示通用戶組下的其他賬號對該文件擁有 可寫 的權(quán)限
  • r--: 表示其他用戶只能對該文件擁有 可讀 的權(quán)限

2)鏈接數(shù)

3 表示有多少文件名鏈接到此節(jié)點(inode),每個文件都會將它權(quán)限與屬性記錄到文件系統(tǒng)的 inode 中,不過我們使用的目錄樹卻是使用文件名來記錄,因此每個文件名就會鏈接到一個 inode ,這個屬性記錄的就是有多少不同的文件名鏈接到相同的一個 inode 號碼。

3)擁有者

表示這個文件(或目錄)的擁有者賬號。

4)用戶組

表示這個文件的所屬用戶組,我們在 LINUX 中,一個賬號會加入一個或多個用戶組中。如果不屬于同一個用戶組的賬號就不具備對該文件(或目錄)的相應(yīng)權(quán)限。

5)文件容量

表示該文件的容量大小,默認單位是 Bytes

6)修改日期

表示這個文件的創(chuàng)建日期或者最近的修改日期,如果該文件被修改的時間距離太久,那么時間會僅顯示年份,而不會具體到月、日以及時間。不過我們可以使用 --full-time 來顯示完整的時間:

 

7)文件名

表示文件名,如果文件名之前有 [ . ] ,則表示該文件為隱藏文件,平時使用ls 或者 ll不會顯示出隱藏文件,我們可以使用 ls -a 來顯示所有文件:

 

2. 何為權(quán)限

在我們還沒接觸 Linux 之前,接觸最多的便是 windows 系統(tǒng)了,在 windows 系統(tǒng)中我們好像沒有感受到權(quán)限的存在,只有在系統(tǒng)盤的部分文件需要管理員權(quán)限,但是這些權(quán)限也不是我們直接管理的。

但是在 Linux 中每個文件都添加了很多屬性,而且還加入了用戶組的概念,這些功能并非毫無用途,說到底便是保護 數(shù)據(jù)安全性。

權(quán)限有何用處

  • 保護系統(tǒng)功能

在 Linux 系統(tǒng)中,root 用戶可以對系統(tǒng)服務(wù)進行 讀寫和執(zhí)行 操作。如果沒有權(quán)限的限制,每個用戶都可以操作系統(tǒng)文件,那是一件非常危險的事情,重則造成服務(wù)器癱瘓。

  • 數(shù)據(jù)隔離和共享

Linux 系統(tǒng)中存在 用戶組 的概念,一個賬號可以加入一個或多個用戶組。用戶組其實也相當于一個 團隊 的概念。同一個團隊的隊員可以進行數(shù)據(jù)的共享,而不能看到其他團隊的數(shù)據(jù)信息。如果我們要保證其他團隊的隊員不能看到本團隊的數(shù)據(jù),那么就應(yīng)該建立一個用戶組,然后給對應(yīng)的文件賦予 rwxrwx---,這樣子就是除了文件擁有者和文件用戶組可以對該文件進行 讀寫執(zhí)行 操作,其他用戶都不能使用。

3. 實際修改

我們先了解下權(quán)限有關(guān)的三個指令:

  • chgrp:修改文件所屬用戶組
  • chown:修改文件擁有者
  • chmod:修改文件的權(quán)限

1)chgrp

這個指令是用來修改文件所屬用戶組的,對單詞比較敏感的小伙伴可能會猜到這個指令是change group 的縮寫,當你了解到是 change group 的縮寫后是不是就會感覺記得比較清楚啦。

既然這個指令是用來修改文件所屬的用戶組的,那么前提就是這個用戶組是存在的,也就是 /etc/group 這個文件里存在,否則會報錯的。

小菜擴展:

創(chuàng)建用戶組:groupadd 用戶組名稱,示例如下:

 

刪除用戶組:groupdel 用戶組名稱,示例如下:

 

創(chuàng)建用戶:useradd -m -g 組 新建用戶名,示例如下:

 

我們現(xiàn)在 /home 的目錄下建一個 chgrp 的文件夾,里面有個 text.txt文件,如下:

 

我們從圖中可以看到這個文件的所屬用戶組是root,這個時候我們想把這個文件的用戶組改為test ,需要如下操作:

 

通過chgrp test text.txt已經(jīng)成功將該文件的用戶組改為 test 了。

2)chown

這個指令是用來修改一個文件的擁有者的。沒錯,這個指令便是change owner 單詞的縮寫。

使用這個指令的前提便是,用戶必須是已經(jīng)存在該系統(tǒng)中,也就是在 /etc/passwd 這個文件中有記錄的文件名稱才能修改。上面我們已經(jīng)在擴展中介紹了如何創(chuàng)建用戶,小伙伴們記得動手試一試。

chown 的用途比較多,它可以直接修改所屬的用戶組,而且如果要連目錄下的所有子目錄或者文件同時更改文件擁有者的話,直接加上 -R 的選項即可。

基本命令:

  1. chown [-R] 賬號名稱 文件/目錄 
  2. chown [-R] 賬號名稱:用戶組名稱 文件/目錄 
  3. 注: 
  4. -R 是進行遞歸修改,連同子目錄一下的所有文件都修改 

示例:

 

在 /home/chown 的目錄下有個 test 目錄,test 目錄下有個 test.txt 文件,這兩個的擁有和用戶組均是 root。這是我們使用 chown 來修改 test 這個目錄的擁有者:

  1. chown cbuc test 

 

可以看到 test 這個目錄的擁有者已經(jīng)被修改成了 cbuc 這個用戶,但是 test 目錄下的test.txt 并沒有被修改,這個時候我們加上 [-R] 這個參數(shù)試一下:

  1. chown -R cbuc test 

 

可以看到兩個的擁有者都已經(jīng)修改成了 cbuc 這個用戶,我們再試下同時修改用戶組:

  1. chown cbuc:test test 

 

這樣子我們就可以很方便的使用 chown 這個指令來修改文件的用戶組和擁有者了。

3)chmod

這個指令是用來修改文件的權(quán)限,權(quán)限的設(shè)置可以分為兩種,分別是使用 數(shù)字修改 和 符號修改

數(shù)字類型修改文件權(quán)限

在上面我們可以看到權(quán)限包括 **讀(read)、寫(write)、執(zhí)行(execute)**這三種,同時存在三種身份,分別是 擁有者(owner)、所屬群組(group)、其他人(others)

權(quán)限字符分別為 :r w x 。其種每個字符分別對應(yīng)的數(shù)字如下:

  • r: 4
  • w: 3
  • x: 1

這樣子如果一個文件權(quán)限為 :-rwxrwxrwx

它的計算規(guī)則便是:

  • owner: 4+3+1 = 7
  • group: 4+3+1 = 7
  • others: 4+3+1 = 7

這樣子與 chmod 相結(jié)合的方式便是 chmod 數(shù)字 文件/目錄,同時 chmod 也支持遞歸的操作,同樣加上參數(shù) [-R]:chmod -R 數(shù)字 文件/目錄

示例:

 

我們可以看到 test 這個文件夾中用戶組擁有的權(quán)限是r-w ,也就是可讀、可執(zhí)行,這個時候如果我們賦給用戶組 可讀、可寫、可執(zhí)行 的權(quán)限,我們可以這樣做:

  1. chmod 775 test 

 

這個時候,test 文件夾的用戶組權(quán)限就變成了可讀、可寫、可執(zhí)行

如果我們想要讓 test 文件夾下的 test.txt文件也變成跟 test文件夾一樣的權(quán)限,我們可以加上 [-R] 參數(shù),也就是 chmod -R 775 test,這樣子 test文件夾下的子目錄和子文件都會相對應(yīng)修改。

符號類型修改文件權(quán)限

上面我們介紹了通過數(shù)字類型修改文件權(quán)限,我們還可以通過符號修改。我們也已經(jīng)知道了Linux 中存在三種身份,分別為 user、group、others,那么我們就可以借由 u、g、o三個字符來表示是三種身份的權(quán)限,此外還有個 a,即代表全部的身份,使用方法如下:

 

使用方式:

  1. chmod u=rwx,go=wx text 

這個指令的意思就是給擁有者賦予rwx權(quán)限,用戶組和其他用戶賦予wx權(quán)限

  1. chmod a+w test 

這個指令的意思就是給所有身份加上 可讀 的權(quán)限

  1. chmod a-w test 

這個指令的意思就是給所有的身份移除 可讀 的權(quán)限

小菜擴展1. 文件種類

 

我們在上面已經(jīng)看到了這張圖,也已經(jīng)了解到 d 這欄代表的是文件的種類,而且我們平時比較常見的是 - 和 d 這兩種類型,那么除了這兩種類型之外還有哪些種類的文件呢?

1. 常規(guī)文件(regular file)

這個指的是我們在進行讀寫的類型的文件,表示字符便是 -,常規(guī)文件中我們也可以分為以下幾種:

  • 純文本文件(ASCII):這是 LINUX 中最多的一種文件類型,這種文件類型是我們可以直接讀到的數(shù)據(jù),例如數(shù)字、字母等。
  • 二進制文件(binary):一般來說可執(zhí)行的文件(除了腳本文件)就是這種文件類型的,比如執(zhí)行指令 ls 、 cd這些就是一個二進制文件。
  • 數(shù)據(jù)文件(data):有些程序在運行的過程中會讀取某些特定格式的文件,那些特定格式的文件就是數(shù)據(jù)文件。

2. 目錄(directory)

這是指的就是目錄,表示字符為 d

3. 鏈接文件(link)

類型 windows 系統(tǒng)中桌面上的快捷方式,表示字符為 l

4. 設(shè)備與設(shè)備文件(device)

與系統(tǒng)周邊及存儲等相關(guān)的一些文件,通常都集中在/dev 這個目錄之下,通常又分為兩種:

  • 區(qū)塊(block)設(shè)備文件 :就是一些存儲數(shù)據(jù),以提供系統(tǒng)隨機存取的接口設(shè)備。表示字符為 b
  • 字符(character)設(shè)備文件 :是一些串行端口的接口設(shè)備,例如鍵盤、鼠標等。表示字符為 c

5. 數(shù)據(jù)接口文件(sockets)

這種類型的文件通常被用在網(wǎng)絡(luò)上的數(shù)據(jù)交換。一般在/run或/tmp這些目錄下,表示字符為s

6. 數(shù)據(jù)輸送文件(FIFO,pipe)

FIFO 也是一種特殊的文件類型,他主要的目的是解決多個程序同時讀寫一個文件所造成的錯誤問題,表示字符為p

2. 文件擴展名

事實上,Linux 的文件是沒有所謂的擴展名。在 windows 系統(tǒng)中,能被執(zhí)行的文件擴展名通常是 .com、.exe、.bat 等,而在 Linux 系統(tǒng)中,不需要擴展名,我們只需要這個文件具備可執(zhí)行的權(quán)限,也就是 x

一個文件具備了 x 可執(zhí)行的權(quán)限,只能代表他具有可執(zhí)行的能力,而不一定可以執(zhí)行成功。能否執(zhí)行成功取決于該文件的內(nèi)容。

那么在 Linux 中常見的擴展名有哪些呢:

  • *.sh :表示 腳本 或 批處理文件
  • *.Z、*.tar、*.tar.gz、*.zip、*.tgz :這些都是表示經(jīng)過打包的壓縮文件
  • *.html、*.php :網(wǎng)頁相關(guān)文件,代表 HTML 語法或 PHP 語法的網(wǎng)頁文件

[[352289]]

 

這篇 Linux 的權(quán)限管理就講到這里啦,相信看到這里的你也一定有所收獲,趕緊試試Linux 上的騷操作吧!路漫漫,小菜與你一同求索!

 

 

責任編輯:武曉燕 來源: 小菜良記
相關(guān)推薦

2024-11-13 16:19:12

2017-03-20 19:01:20

Linux管理員系統(tǒng)用戶

2009-12-23 15:55:53

Linux權(quán)限管理

2020-06-18 10:48:44

Linux 系統(tǒng) 數(shù)據(jù)

2019-11-25 09:46:32

Linux操作系統(tǒng)管理

2021-03-01 08:33:39

插件庫弱符號程序

2019-05-23 14:59:21

PythonPDF編程語言

2021-04-19 09:15:14

老板公司企業(yè)

2022-07-01 16:55:17

調(diào)試板子手勢操作

2025-03-25 10:49:13

2022-04-25 08:43:47

pandas代碼Python

2022-08-18 15:03:13

并發(fā)編程

2021-06-08 07:04:45

Service Mes微服務(wù)熔斷

2020-11-16 11:50:21

Python代碼命令

2011-01-07 09:19:35

Linux文件權(quán)限

2022-10-08 11:40:18

Receive阻塞Trigger

2020-03-16 08:41:00

互聯(lián)網(wǎng)疫情公司

2020-04-03 13:43:23

Python列表推導(dǎo)式字典推導(dǎo)式

2021-11-03 17:04:11

攔截器操作Servlet

2023-07-26 07:41:27

點贊
收藏

51CTO技術(shù)棧公眾號