馬哥linux0803課堂筆記

課堂筆記

 

重定向的幾種方式

標準輸入 0 (stdin)

標準輸出 1 (stdout)

標準錯誤 2 (stderr)

 

標準輸入的重定向方法

cat < file

cat << string (多行重定向)

xxx

aaa

string結束

cat file | cat

 

標準輸出的重定向

ls echo who hostname ifconfig 有輸出的命令都屬于標準輸出的命令

比如cd就沒有輸出

 

標準輸出重定向的方法

ls > file

ls >> file

避免覆蓋的方法有命令可以

set –C 禁止覆蓋

set +C 與上相反

只對當前shell有效,臨時性

 

需要標準輸入的命令

cat mail tr passwd chpasswd newusers

 

標準錯誤的重定向方法

cmd err 2>> file > file2

cmd &>> allfile

cmd >> allfile2 2>&1(必須放在最后)

 

管道

cmd | cmd2

管道的效果就是將前面命令的正確結果傳送到cmd2來執行

 

處理錯誤輸出的管道信息需要做以下操作

cmd1 |& cmd2

cmd1 2>&1 | cmd2 (版本較好,兼容性好)

支持多次管道

cmd1 | cmd2 | cmd3

 

tee命令的作用

 

cmd1 | tee file | cmd3

-a 選項可以附加信息到文件

將cmd1的標準輸出也打印到終端,同時也將結果通過管道傳送到cmd2

 

tr命令的作用用于轉換字符及刪除字符

-c 補集 set1

-d 刪除

-s 壓縮重復

-t 對應的被替換,和不帶t有區別.位數上的區別

 

/etc/passwd 用戶的配置信息

七個字段

username:password:UID:GID:comment(注釋):homedir:shell

pwconv(默認本來就是)可以轉換密碼到passwd配置文件中

pwunconv 可以不轉換密碼到/etc/shadow

 

UID編號順序

在我們創建用戶的時候

在centos7中從1000開始

在centos6中從500開始

ID編號范圍定義的配置文件在/etc/login.defs

還有其他的一些用戶定義

創建系統用戶是不會自動創建家目錄

 

 

 

 

處于安全考慮.比如我們需要維護系統,不希望其他用戶登錄

我們可以使用一下方法來限制普通用戶的登錄

 

touch /etc/nologin

touch /run/nologin (與上面命令效果一樣,但是run目錄只有centos7有)

可以讓普通用戶不能登錄,在文件中寫入一些信息,也能在普通用戶登錄的界面顯示

 

所有用戶的影子配置文件,主要存放管理員和用戶密碼的信息

/etc/shadow

格式為

username:password(加密的密碼):口令的更改時間:最短口令有效期(指多少天不能更改口令的時間):最長的口令有效期:警告提醒時間(提前幾天通知):非活動時間(口令有效期到了,仍然不修改口令,將會賬戶):賬戶的有效期:保留字段

 

chage –d0 USER

passwd –e USER

這倆個命令可以迫使口令馬上到期,下次登錄必須修改口令

 

/etc/group

groupname:password:GID:groupmember(組成員)

/etc/gshadow

groupname:password:groupadminlist(組管理員):

 

groupmems –l –g group (顯示組名)

groumems –d USER –g group 刪除這個組的某個用戶

 

組管理員不一定非要是組的成員,可以單獨是組管理員

 

useradd

-u UID

-g primary 主組

-G secondary g1,g2 輔助組

-d 家目錄路徑(自動生成)

例 /testdir/user1

父目錄必須存在,子目錄可以不存在

-s 指定shell

-c comment 注釋信息

-M 不創建家目錄

-m 默認創建家目錄

 

useradd –ou0 rooter2 可以創建管理員(系統認定管理員只認UID,刪除這個賬戶只能修改配置文件信息中的UID)

 

usermod

-l 改新的用戶名

-L 鎖定用戶(在配置文件口令中增加!就是鎖定的意思)

-U 解鎖用戶

-e 指定他的口令過期時間

-m 移動家目錄,搬家使用 (配合-d使用)

 

 

userdel

-r 刪除家目錄及郵箱

批量創建用戶

newusers passwdfile(跟passwd格式一樣,必須七個字段)

批量修改密碼

chpasswd

例: cat file1 | chpasswd

chpasswd 交互式

user:passwd

ctrl+D 結束

 

文本格式

user:password

 

批量創建用戶的家目錄會有問題,家目錄中的配置文件沒有

我們需要手動去移動過來如下

etc/skel下是專門存放這些配置文件

cp –r /etc/skel/. /home/user

.的意思就是當前目錄下所有文件(..表示父目錄所有的文件)

cp –r `ls -A` /home/user 同樣可以達到效果,但是必須在skel目錄下.

 

passwd [OPTIONS] UserName :修改指定用戶的密碼,僅root用戶權限

passwd :修改自己的密碼

-l 鎖定指定賬戶

-u 解鎖指定賬戶

-e 強制用戶下次登錄修改密碼

-n mindays:指定最短使用期限

-x maxdays:最大使用期限

-w warndays:提前多少天開始警告

-I inactivedays:非活動期限

–stdin : 從標準輸入接受用戶密碼

例:echo “PASSWORD”| passwd –stdin USERNAME

passwd很多選項跟usermod 相同

 

chage命令的用法,命令可修改用戶的密碼策略

-d LAST_DAT 密碼使用期限

-E –expiredat EXPIRE_DATE

-I –inactive INACTIVE

-m –mindats MIN_DAYS

-M –maxdays MAX_DAYS

-W –warndays WARN_DAYS

-l 顯示密碼策略

下一次登錄強制重設密碼

chage –d 0 USER

chage –m 0 –M 42 –W 14 –I 7 USER

chage –E 2016-09-10 USER

 

getent shadow USER 查詢賬戶密碼策略

 

組的管理

groupadd [OPTIONS] … group_name

-g GID :指明GID號;[GID_MIN,GID_MAX]

-r:創建系統組;

Centos 6: ID<500

Centos 7: ID<1000

 

組屬性修改:groupmod

groupmod [OPTIONS] … group

-n group_name:新名字

-g GID :新的GID

 

組刪除:groupdel

groupdel GROUP

 

修改輔助組可以使用命令groupmems

修改主組可以使用命令 usermod

查看輔助組在group配置信息中查看

查看主組在passwd配置信息中查看,也可以在gshadow配置信息中查看到主組信息

例:

將Group1 加入到USER1中當輔助組

usermod –aG USER1 Group1

G選項需要配合-a使用,否則將清空原有的輔助組

 

將user1作為user2的主組

usermod –g user1 user2

 

有主組的組不能刪,沒有主組有成員可以直接刪除組

 

組密碼:gpasswd

gpasswd [OPTIONS] GROUP

-a user:將user添加到指定組中

-d user:從指定組中移除用戶user

-A user1,user2,…:設置有管理權限的用戶列表

 

newgrp命令:臨時切換基本組

如果用戶不屬于此組,則需要組密碼

 

‘’強引用,例如在里面寫命令或者其他,他都當成字符串

“”弱引用,例如在里面寫命令和變量,他識別變量,但是不識別命令

弱引用,例如在里面寫命令和變量,他都識別

 

set –C 禁止覆蓋

set +C 可以覆蓋文件

>| 強制覆蓋

當前shell臨時生效

 

用戶的權限

 

linux下文件常用的三種權限

r:read

w write

x excute

 

文件的權限分配是根據程序所有者,所屬組,其他

 

linux的安全模型

所有者,所屬組,其他人

rwxrwxrwx

 

chown(change owner):更改所有者

chown可以同時修改所有者和所有組

chown own:grp file 兩個都修改

chown :grp file 只修改所屬組

chown own file 只修改所有者

 

chgrp(change group):更改所屬組

 

chmod (change mode)修改模式

分為模式法和數字法

模式法

chmod who opt per file…

who:

u:所有者 g :所屬組 o:其他  a:所有人(三種人都包括)

opt: +,-,=

per: r,w,x

例: chmod u=rwx file  是所有者擁有文件rwx權限

 

例:我們設置一個文件的所有者權限為無,如果文件的的所有者是wang,我們用wang用戶登錄,是對文件做不了任何操作的,但是我們可以修改文件的權限,因為文件的所有者是wang.

所以可以證明只要是文件的所有者,就可以對文件進行權限操作

 

還有一例子,將一個文件全部清除

chmod a= file

權限就成了———.

 

顯示所有用戶都不能對文件進行操作,但是并不能對root管理員有效,事實證明權限只對普通用戶有效

 

如果將文件權限設置成—-w—-只有寫的權限

 

對于文件的意義

read: 文本

write: 可修改內容,但不能刪除文件本身

x:針對二進制程序或腳本

X:不會增加x(前提是本身無x權限)

 

對于目錄的意義

read:可以查看dir內文件列表,但不能訪問文件,不能cd,也不能查看文件的元數據

write:可以創建或刪除dir中文件,需要配合x權限

x:可以進入dir,可以訪問dir中文件

X:不會增加x(前提是本身無x權限)功能:當你在一個目錄中需要統一增加x權限時,會檢測目錄中的情況,目錄中的目錄會添加x權限,文件本身有x權限也會不變,沒有的就不會增加x權限.這樣就能保證安全.

 

X需要配合遞歸選項

chmod –R a=rX dir/

 

數字法

— 000 0

–x 001 1

-w- 010 2

-wx 011 3

r– 100 4

r-x 101 5

rw- 110 6

rwx 111 7

例:

750: rwxr-x—

r-x-wx-w-:532

 

chmod –-reference file1 file2

功能就是file2參考file1的權限

新建文件和目錄的默認權限

umask 命令

umask 默認顯示umask值

umask u=rwx,g=rwx,o=rwx  同樣可以設置默認的文件或目錄的權限,顯示的目錄的,所以文件的默認權限是-1

-S 以字符形式顯示默認的文件或目錄的權限,顯示的是文件的,所以目錄的默認權限+1

-p 顯示出umask值,(輸出的值可被調用)并把前面的命令打出來,這個存在的意義是直接可以將信息附加寫入到配置信息中.

 

文件和文件夾是共用一個umask的

 

更改新建文件或目錄的權限的umask值可以通過修改家目錄的.bashrc或.bash_profile配置文件來修改,普通用戶和管理員的umask的定義信息則是在/etc/profile和/etc/bashrc配置文件中)

 

umask本質是從目錄或文件上屏蔽掉最大權限相應的位,從而得出默認的權限

假設,umask是125,新建目錄的文件得到值是642

其實真正的工作原理是這樣的

110          110       110           這是本身文件的默認666

001          010       101           這是上面說到的值125

110         100      010這才是真正通過上面倆個值得到的結果

6           4        2    第二行0表示不屏蔽,1表示屏蔽掉,第一行就是最大權限.所以得到了這個值 110100010 rw-r—w-

 

公式

dir:777-umask

file:666-umask 有奇數加1,偶數保留

同上面那個例子,umask值是125,那么666-125=541,奇數加1就是642得到的結果和實驗的結果是一樣.

 

文件的公式:umask+default per(默認的權限)=666

文件為什么是666,因為如果像目錄一樣是777,就有可能得到的值就有執行權限,這么操作的目的就是為了安全著想.

目錄的公式:umask+default per =777

 

umask值越大,權限越小

 

非特權用戶的umask值默認是002

root的umask值是022

 

umask 原理

從目錄或文件上屏蔽掉最大權限相應的位,從而得出默認權限

三種特殊權限

suid s

sgid s

sticky t

表現為sst

例 rwsrwsrwt

數字法

suid 4 來表示

例 chmod 4755 /bin/cat

 

三種常用權限:r,w,x user,group,other

 

進程也有所有者和所屬組

s權限只對普通用戶有意義,對root無作用

root的權限無限大

 

安全上下文

前提:進程有屬主和屬組;文件有屬主和屬組

1. 任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限

2. 啟動為進程之后,其進程的屬主為發起者;進程的屬組為發起者的屬組

3. 進程訪問文件時的權限,取決于進程的發起者

a. 進程的發起者,同文件的屬主:則應用文件屬主權限

b. 進程的發起者,屬于文件屬組;則應用文件屬組權限

c. 應用文件”其他”權限

 

suid

如果一個文件具有suid權限,普通用戶運行他將會繼承文件所有者的權限.

例: rws—— /bin/cat 具有suid權限,那么普通用戶執行

cat /etc/shadow將會繼承root權限打開這個文件

 

sgid

如果一個文件具有sgid權限,那么普通用戶將會繼承文件的屬組權限.

sgid作用與目錄上:

chmod 4755 file

chmod 2755 file

chmod 1755 file

4表示suid 2表示sgid 1表示sticky 6表示suid+sgid(但是程序一般應用了一個就不會應用第二個了) 7表示三種權限全部有

如果文件或者目錄本身沒有x權限,而我們加上特殊權限,就會顯示錯誤狀態,就是大寫的S,S,T

三種權限全部在如果使用數字模式去掉權限將會失敗,只能使用字符模式去掉

 

數字模式要刪除s權限

 

sticky t 粘滯位

 

chattr

 

 

原創文章,作者:Kartik,如若轉載,請注明出處:http://www.www58058.com/30151

(0)
KartikKartik
上一篇 2016-08-08
下一篇 2016-08-08

相關推薦

  • 26期網絡班

    26期網絡班

    Linux干貨 2016-12-26
  • TCP連接的狀態轉移

    TCP是一個面向連接的傳輸層協議,因此不論哪一方需要傳輸數據,都需要在雙方之間建立一條傳輸連接。 用TCP的三次握手與四次揮手來解釋TCP的各個狀態之間的會比較清晰。 一、TCP的三次握手: a)         單方主動發起連接: 1、  服務器端應用層的應用程序創建…

    2017-03-19
  • LVM2

    1、邏輯卷     邏輯卷為何物:邏輯,是從人的角度出發的,合乎人類的思維的,所以邏輯卷相對于其它磁盤分區高級一些。主要作用就是可以進行動態擴展縮減,不像其它分區大小固定了要想變動就必須重新格式化。 在實際工作環境中,LVM更適用于現實復雜多變的環境。 現在使用的是LVM2,Logical Volume Manager,Version 2…

    Linux干貨 2016-08-30
  • 磁盤管理和高級文件系統管理-習題

    高級文件系統管理-習題 1、 創建一個可用空間為40G 的RAID1 設備,要求其chunk大小為128k ,文件系統為ext4 ,有一個空閑盤,開機可自動掛載至/backup目錄 [root@centos7 ~]# mdadm -C /dev/md0 -c 128 -a yes -l 1 -n 2 -x 1 /dev/sdb /dev/sdc /dev/s…

    Linux干貨 2016-09-01
  • 第一次發微博

    第一次申請微博,第一次發微博,覺得很難

    Linux干貨 2017-01-06
  • Linux文件系統

    Linux文件系統 根目錄下的文件 / ├── bin 存放用戶使用的基本命令(可執行程序,二進制文件) 不能單獨分區的 ├── boot 跟內核有關的文件 grub 內核和BootLoader ├── cgroup 用來資源限制資源隔離 docker 容器化 ├── dev device 設備文件 b block device 塊設備 硬盤或者CD-rom…

    Linux干貨 2017-04-01
欧美性久久久久