歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

0518 第五節課

安全3A

Authentication:認證

Authorzation:授權

Accouting|Audition:審計

用戶

管理用戶:UID:0,不一定是root,root的uid非0時並不是管理用戶,主要還是看的uis

普通用戶:uid 1-65535

系統用戶:1-499(centos6) 1-999(centos7)

系統用戶是指那些nologin用戶,對守護進程獲取資源進行權限分配

登錄用戶:500- (centos6) 1000- (centos7)

通過賬號密碼登錄的用戶,交互式登錄

管理員組: GID:0

普通組:

系統組:1-499(centos6) 1-999(centos7)

普通組:500- 1000-

安全上下文:

簡單的說就是一個進程的權限取決於開啟這個進程的用戶的權限

linux組的類別

用戶的主要組:有且只能有一個組

私有組:簡單的說就是在組內只有以為與組同名的用戶,這個組就叫做這個用戶的私有組

用戶的附加組:可以有多個,也可以沒有的組

主組的四個重要的配置文件

主:/etc/passwd

/etc/shadow

組:/etc/group

/etc/gshadow

passwd:記錄用戶賬戶的一些相關信息的文件

格式:

用戶名:x:UID:GID:描述內容:家目錄:默認bash

x:6以前的系統是一些加密的密碼,6以後加密密碼放在shadow,這裡改成了x代替

GID:passwd中的GID是顯示用戶的主組的GID

shadow:記錄用戶加密密碼的文件

格式:

用戶名:加密類型:隨機字符:加密密碼正文:最後一修改密碼的時間:密碼的最小使用期限:密碼的最大使用期限:警告期限:非活動期限:用戶賬號過期期限:保留字段

隨機字符:為了防止密碼相同的用戶在正文字段的加密密碼顯示相同,加密時會在密碼中加入一些隨機的字符

最後:顯示的是linux元年到最後一次修改密碼經過的天數

警告期限:在密碼過期前X天警告你密碼還有X天就要過期

非活動期限:密碼在過期後並不立即無法使用,會有一個最終期限供你修改密碼,當最終期限過後,密碼將失效

用戶過期期限:一個用戶的使用期限,當過期後該用戶將無法登陸

當用戶沒有密碼的時候,用戶名:!!:~,!!代表無法登錄,是系統默認給的,但是將!!刪掉後就可以直接不需要密碼登錄,反過來看,當我們不想某個用戶登錄時,可以再shadow裡給他的那串用戶名後邊(用戶名!:)加一個!就行

組的group和gshadow基本相同

group的最後是組內的用戶,這個前邊一個是組管理員用戶,添加組管理員,組管理員可以添加刪除組成員對組進行一些修改

密碼的復雜性策略:這還用人教?

4個小命令

vipw和vigr

更改passwd和group的命令,感覺似乎用不太到。。

pwck和grpck

檢查passwd和group兩個文件的修改是否有什麼錯誤,感覺用到的可能性也不大。。

姑且記住吧

用戶管理命令

useradd:添加用戶的命令

-u:制定創建用戶的uid

-g:制定用戶主組的gid

注意:不指定主組的話,將會自動創建用戶的私人組

-G:制定用戶附加組的GID

-d:制定用戶的家目錄

注意:當制定的家目錄存在的目錄的時候,是不會默認添加文件的,可以手動從/etc/skel復制過來

-c:添加描述內容

-r:創建系統用戶

-s:制定用戶的默認shell

-M:不創建用戶的家目錄

注意:當用戶沒有家目錄時,仍舊可以登錄,但是登錄後不再家目錄中,在/目錄下

-N:不創建用戶的私人組,將用戶的主組設置為useradd- D中的默認組

-D:一些默認的設置的更改

注意:配置文件存放在:/etc/default/useradd下

注意:一些默認的配置,想修改的話,可以去/etc/login.defs去更改

userdel:刪除用戶,默認是不刪除用戶的家目錄

-r:連同用戶的家目錄mail等一同刪除

注意:當我們在刪除一個用戶的時候,不加-r的話用戶的家目錄等一些創建用戶時自動給創建的目錄都不會刪除,反過來說,加上-r後只是會刪除在創建用戶時創建的那些目錄,用戶自行創建的目錄文件是不會刪除的,但是這些目錄和文件的主、組會變成原用戶的UID和GID,當這些ID再次被分配到某用戶的時候,文件的主、組會變成這個用戶

提示:用戶的一些目錄可以自行刪除

家目錄:/home

郵箱: /var/spool/mail

usermod:修改用戶的屬性

-u:修改用戶的UID

-g:修改用戶的主組

-G:修改用戶的附加組

注意:這個修改是指覆蓋修改,即原來的附加組會被取消變成新的附加組,想要添加附加組加-a

-aG:給用戶添加附加組

-c:修改用戶的描述

-d:修改用戶的家目錄

注意:家目錄的內容是不會移動的,想要連同家目錄的內容一同移動,加-m

-md:復制家目錄的內容,移動到新指定的家目錄

-s:修改用戶的shell

-L,U:鎖定解鎖用戶

組管理命名

groupadd:創建新的組

-g:指定GID

-r:創建系統組

groupdel:刪除組

groupmod:修改組

-g:修改組GID

-n:修改組名稱

批量創建組用戶

newusers:創建一個文本,在文本裡按照passwd的格式來寫用戶,然後

newusers file

chpasswd:批量修改用戶口令

文件內格式

user : 密碼

id:查看用戶id

-u:查看用戶的uid

-g:查看用戶的主組的gid

-G:查看用戶的所有附加組的id

-n:不以id顯示,以name顯示

su:切換用戶的命令

-:中間加-是指登錄式用戶切換,不加是非登錄式用戶切換

卻別自己查看一下兩種方式切換後的用戶的工作目錄和家目錄就能清楚了

-c

su - name -c command

以name用戶的身份運行command命令

passwd:更改密碼,不加任何參數為更改自己的密碼,可加用戶名來更改他人密碼

-e:修改最後一次更改密碼日期,改成0下一次登錄就必須更改密碼

-n,x:修改密碼的最大最小期限

-w:修改警告期限

-i:修改費活動期限

--stdin:

passwd --stdin name 可以通過重定向或者管道來更改密碼

gapsswd:不加參數為修改組密碼,組密碼的具體作用可以再newgrp看出

-a:在組內添加用戶

-d:刪除組內某個用戶

gpasswd -a name gname

groupmems -a -g:類似gpasswd加參數

-a:添加用戶

-d:刪除用戶

-l:列出組用戶

-p:清空組用戶

chage -l 列出密碼用戶的各種期限時間

chsh:更改用戶的shell

chfn:更改finger

groups gname:查看某個組的組成員

newgrp:臨沭切換到某個組,切換的是主組。。當你不屬於那個組的附加組的時候需要輸入組密碼(gpasswd的用處)

加-選項同su

將系統設置成只允許管理員登錄

用touch在/etc先下創建/etc/nologin文件就行,取消的時候將這個文件刪掉

權限管理

krwxrwxrwx

k是指文件類型:-,d,c,b,l,s,p

r:read

x:excute

w:write

u:user

g:group

o:other

a:all

對於文件來說

r:代表可以讀取文件的內容

w:代表可以給文件內容進行添加修改等操作

x:代表該文件是可執行的

注意:因為對於文件來說,一旦執行,影響的將不是文件本身而是整個系統,這是十分危險的操作,因此,默認的不會給與文件x權限即文件默認能得到的最大權限為

-rw-rw-rw-

對於目錄來說

r:代表目錄可以通過ls查看目錄內的內容,但不能用ll

w:代表可以對目錄內的文件進行添加刪除

x:代表可以cd至此目錄中並且可以通過ll來查看目錄內文件的具體屬性

注意:對於目錄來說一般是要給與r與x 權限的

-rwx rwx rwx

421

u g o

權限相關命令:chmod chown chgrp umask

chmod:修改文件或目錄的權限

-R:遞歸

--reference=file1 file2 :按照file1給file2設置權限

用法:chmod u= ,g= ,o= / a= file

設置具體權限

chmod u+ ,g+ ,o+ / a+ file

添加某個權限

chmod 777 file

設置具體權限

注意:u,g,o可以一起寫成ugo,ug,og,等等,分開寫之間用逗號隔開

chmod在使用-R的時候為了避免給文件加上x執行權限,可以使用X,這個的意思是只給目錄x權限,不給文件

chgrp :設置組

-R:遞歸

用法: chgrp gname file

chown :設置主,組

-R:遞歸

用法:chown name : gname file

注意:chown既可以改組也可以改主,只更改組時,gname前邊的:一定記得寫,不然會被識別成主,但是在只更改主的時候,後邊的:一定記得不要寫,不然會被識別成主,組是同名字

同時,chmod -R +X dir X對目錄沒有什麼特殊做作,直接給與x權限,但是對於文件,如果文件的權限裡,任何位置有一個x權限

那麼,X將給與ogu三個位置都給x權限,如果文件一個x權限都沒有,那麼X將不給於任何的x權限

umask:不知道怎麼形容

umask不加參數,顯示當前的umask的值

umask ####:更改umask值

注意:通過這個更改的umask值只針對當前shell,umask的值相對全局修改,可以直接重定向到/etc/bashrc,同樣的影響單個用戶直接

重定向到家目錄下的.bashrc即可

Linux的特殊權限

SUID:只針對可執行的二進制程序有效,對目錄無效,作用是讓用戶在運行該程序的時候短暫獲得該文件的所有者的權限

典型的就是/usr/bin/passwd這個程序,用戶在運行的passwd的時候可以影響到平常不能看的/etc/passwd

用法: chmod u+s/S file s:源文件具有x權限時用

S:源文件不具備x權限時使用

注意:這個權限事實上是一個很危險的權限,所有,我們在對一個程序加上這個權限,再去放在一些移動設備上例如U盤等,再去將U盤掛載到另一台機器或系統上

而又需要手動掛載,需要記得啟用noSUID,自動掛載是默認開啟的,手動掛載需要自己開啟

SGID:可以對文件,也可以對目錄使用,對文件使用效果與SUID差不多,是讓運行這個程序的用戶具有這個程序的組的權限,對目錄使用時,對於此目錄有w權限的用戶在此目錄下所創建的目錄,其所屬組將變成該目錄,一般用於協作

用法: chmod g+s/S file/dir 同上

注意:SGID有類似遞歸行的特性,在SGID目錄下創建的子目錄同樣具有SGID權限

sticky:該權限只針對目錄,對文件無任何意義,作用是讓用戶在目錄下創建的文件,只有用戶自己和管理員可以刪除

用法:chmod o+t/T dir 同上

注意:只是無法刪除文件,但是文件的內容數據還是可以影響的,可以通過重定向來影響數據

針對特殊權限,同樣可以用數字來進行設定

SUID=4 SGID=2 STICKY=1

chmod X777 file/dir

chmod X666 。。。

ps:該命令是查看當前用戶進程的命令

-aux:連別的用戶的命令也一並顯示出來

文件的隱藏屬性

chattr:給文件目錄添加隱藏屬性的命令

-i:文件不能被修改,包括刪除,添加等

-a:文件只能被添加內容,不能修改刪除內容

-R:遞歸,對目錄用

-v:顯示詳細

lsattr:查看文件影藏屬性的命令

-R:遞歸

-a:影藏文件的也顯示出來

-d:只查看目錄的隱藏屬性

添加

訪問控制列表acl

在c7以上的系統中,使用ext4或者xfs的文件系統是默認開啟acl的,c7以前的是默認沒有的

可以使用tune2fs -o [^]acl和mount -o [no]acl來開啟|關閉acl選項

注意:tune2fs的開啟acl是指在默認的掛載選項中添加acl,在tune2fs添加完acl後,mount就不必在 加-o來添加acl了,因為acl已經是默認的掛載屬性了

使用mount -o acl後要關閉acl是可以用-o noacl,remount XXX 這時候mount後邊的(acl,noacl)是並存的,但是這個時候是沒有acl功能的,因為括號裡後邊的優先級要高

訪問控制列表是一種比傳統ugo權限更加靈活的一種權限,他可以針對某個用戶或者某個組來設置rwx 權限

優先級:用戶在訪問的時候,會按一下步驟來查看用戶對文件的權限

所有者------所有組------acl-----others

acl的優先級是高於others權限的

-R:遞歸

getfacl dir|file:查看某文件或目錄的訪問控制

setfacl -m u|g:name:rwx dir|file :在某文件或目錄上給某用戶或者組設置訪問控制權限

setfacl -M file.acl dir|file :給某文件或者目錄按file.acl中的設置來配置訪問控制列表

setfacl -x u|g:name dir|file :刪除某文件或目錄上的針對某用戶或者組的訪問控制權限

setfacl -X file.acl dir|file:刪除-M的那個

setfacl -m d:u|g:name:rwx dir:在給目錄設置訪問控制列表的時候,在u|g前邊加上d:是設置 目錄的默認權限,就是說這個目錄下的新建的所有文件(注意 是新建的所有文件,已經有的舊文件不管),都會默認有有當 前目錄一樣的訪問控制權限

tips:想要給就的文件也加上這個權限,前邊的options加個-R 遞歸就行

setfacl -k dir :刪除目錄上的默認權限,默認權限,默認權限

setfacl -b dir|file :刪除目錄或文件上的包括默認權限在內的所有權限

setfacl --set-file=file.acl dir|file:先重置(清空)目標上的權限,然後按照file.acl裡的 權限來設置。

可用於管道

getfacl file1 | setfacl --set-file=- file2 :按file1的配置來設置file2,“-”是代指 前邊的getfacl的結果

tips:用“-”來代指前邊的內容在很多的 地方都有應用,學過的有解壓縮哪裡 的zip命令,再接受管道的內容時候 也是使用-來代指管道穿過來的內 容,很多把源放在後邊的命令都支 持-代指

也可以直接在後邊寫要設置的內容

setfacl --set u::rwx u:name:rwx g::rwx o::rwx file|dir

u::rwx:這種寫法的意思是指的所有者

g::rwx:同理,值得是所有組

也可以直接加文件

setfacl --set-file=acl.txt(裡邊可以有多個文件的配置,但--set前邊要加上-R) dir|file

getfacl的格式

# file: name --------------文件或目錄的名字(file的意思 是文件,但目錄本身也是文件)

# owner: root --------------所有者和所有組

# group: root

user::rwx --------------傳統權限

group::r-x

other::r-x

u:name:rwx --------------某用戶的acl權限

g:name:rwx --------------某組的acl權限

default:user::rwx --------------默認權限,就是前邊加了d:的設 置的內容

default:user:mymy:r-x

default:group::r-x

default:mask::r-x

default:other::r-x

重點難點:關於mask

mask:是acl對於文件的所有者和other以外的所有人的一個最高的權限,即用戶所在組的其他人以及在改文件上設置了acl的用戶他們的最高權限不得超過mask的權限

當設置了acl後,ll命令查看到的傳統權限位的組權限那三位是顯示的mask的權限,但是實際權限還是getfacl顯示的組的權限

但是,在mask規定了最高權限之後,再次設定權限時,仍舊有的用戶或者組的權限超過了mask,這個時候還是可以設置的,但我們在用getfacl查看權限的時候會發現,mask值也跟著變了,變成針對用戶中的最高的那些權限(。。。。),這是在設置mask

為一個低於最高權限的權限,這個時候我們看getfacl

# file: mkmk

# owner: root

# group: root

user::rwx

user:mymy:rwx #effective:r-x

group::r-x

mask::r-x

other::r-x

= 用戶mymy的acl權限並沒有改變,但是後邊多了一個effective實際權限,這個時候生效的是後邊的而實際權限,再次拉高mask值effective會消失

感覺很沒用,但事實上根據mask的特性可以達到批量控制權限的作用,當一個文件上的acl用戶過多的時候,其中還有大權限用戶,一個一個改很麻煩,這個時候可以使用mask來給定一個界限,也因此在設置acl權限的時候,mask值最後在最後在設置,除非有真的不得不給與大權限的用戶

注意:使用cp -p|a mv等對文件實際操作的命令的時候,acl設置會被繼承保留,而使用tar等備份文件的時候,acl是不會被繼承保留的

本文出自 “博客作業初版” 博客,謝絕轉載!

Copyright © Linux教程網 All Rights Reserved