1. 程式人生 > >重定向和用戶權限

重定向和用戶權限

用戶權限重定向

? 程序:指令+數據
讀入數據:Input
輸出數據:Output
? 打開的文件都有一個fd: file descriptor (文件描述符)
? Linux給程序提供三種I/O設備
– 標準輸入(STDIN)-0 默認接受來自鍵盤的輸入
– 標準輸出(STDOUT)-1 默認輸出到終端窗口
– 標準錯誤(STDERR)-2 默認輸出到終端窗口
支持的操作符號包括:

把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把所有輸出重定向到文件
> 原有內容基礎上,追加內容
? 使用<來重定向標準輸入
? 某些命令能夠接受從文件中導入的STDIN
tr ‘a-z’ ‘A-Z’< /etc/issue

該命令會把/etc/issue中的小寫字符都轉換成寫寫字符
? tr –d abc < /etc/fstab 刪除fstab文件中的所有abc中任意字符
? cat > file
mage
wangxiaochun
按ctrl+d離開,可以使用文件來代替鍵盤的輸入
? 使用“<<終止詞”命令從鍵盤把多行重導向給STDIN
cat >file <<END

? Linux 安全上下文
程 運行中的程序:進程 (process)
以進程發起者的身份運行:
root: /bin/cat
mage: /bin/cat
進程所能夠訪問資源的權限取決於進程的運行者的身份
? Linux 用戶和組的主要配置文件:

/ etc /passwd :用戶及其屬性信息( ( 名稱、 UID 、主組 ID 等)
/ etc /group :組及其屬性信息
/ etc /shadow :用戶密碼及其相關屬性
/ etc / gshadow:組密碼及其相關屬性
passwd 文件格式
? login name :登錄用名( wang )
? passwd :密碼 (x)映射到/etc/shadow(pwunconv取消映射,pwconv還原映射)
? UID號 :用戶身份編號 (1000)
? GID :登錄默認所在組編號 (1000)
? GECOS :用戶全名或註釋
? home directory錄 :用戶主目錄 (/home/ wang) )
? shell :用戶默認使用
shadow 文件格式
? 登錄用名
? 用戶密碼: : 一般用 sha512 加密($加密算法$salt$password)
? 從 1970 年1月1日起到密碼最近一次被更改的時間
? 密碼再過幾天可以被變更(0 表示隨時可被變更)
? 密碼再過幾天必須被變更( 99999 表示永不過期)
? 密碼過期前幾天系統提醒用戶(默認為一周)
? 密碼過期幾天後帳號會被鎖定
? 從 1970 年1月1起,多少天密碼失效
? 保留位,將來使用
group 文件格式
? 群組名稱:就是群組名稱
? 群組密碼:通常不需要設定,密碼是被記錄在/etc/gshadow(grpconv,grpunconv)
? GID的 :就是群組的 ID
? 以當前組為附加組的用戶列表( 分隔符位逗號)
gshdow 文件格式
? 群組名稱:就是群組名稱
? 群組密碼:(非組成員可以通過組密碼臨時獲得組成員的身份)
? 組管理員列表:組管理員的列表,更改組密碼和成員
? 以當前組為附加組的用戶列表:(分隔符為逗號)
文件權限匹配順序:owner,group,other.一點匹配成功,後面將不再繼續匹配。
? 文件的權限主要針對三類對象進行定義
owner: 屬主 , u
group: 屬組 , g
other: 其他 , o
? 每個文件針對每類訪問者都定義了三種權限
r: Readable 讀 100 4
w: Writable 寫 010 2
x: eXcutable 執行 001 1
? 文件:
r: 可使用文件查看類工具獲取其內容
w: 可修改其內容
x: 可以把此文件提請內核啟動為一個進程
? 目錄:
r: 可以使用 ls 查看此目錄中文件列表
w: 可在此目錄中創建文件,也可刪除此目錄中的文件
x: 可以使用 ls -l查看此目錄中文件列表,可以 cd 進入此目錄
X: 只 給目錄x權限,不給文件x權限
新建文件和目錄的默認權限
? umask值 可以用來保留在創建文件權限
? 新建 FILE 權限 : 666- - umask
如果所得結果某位存在執行(奇數)權限,則將其權限 +1
? 新建 DIR 權限 : 777- - umask
? 非特權用戶umask 是 002
? root 的umask 是 022
安全上下文
? 前提:進程有屬主和屬組;文件有屬主和屬組
(1) 任何一個可執行程序文件能不能啟動為進程, 取決發起者對程序文件是
否擁有執行權限
(2) 啟動為進程之後,其進程的屬主為發起者, 進程的屬組為發起者所屬的

(3) 進程訪問文件時的權限,取決於進程的發起者
(a) 進程的發起者,同文件的屬主:則應用文件屬主權限
(b) 進程的發起者,屬於文件屬組;則應用文件屬組權限
(c) 應用文件其他權限
特殊權限(臨時擁有)
owner:可執行文件上 SUID,啟動為進程之後,其進程的屬主為原程序文件
的屬主,SUID只對二進制可執行程序有效 chmod u+|-s file
group:啟動為進程之後,其進程的屬組為原程序文件的屬組chmod g+|-s file
默認情況下,用戶創建文件時,其屬組為此用戶所屬的 主 組
一旦某目錄被設定了 SGID ,則對此目錄有寫權限的用戶在此目錄中創建的文件所屬的組為此目錄的屬組 chmod s g+|-s DIR...
具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權
限或擁有權.在目錄設置 Sticky 位,只有文件的所有者或 root 可以刪除該文件chmod o+|-t dir
本來有x權限,加上s或t後,變為sst;沒有加上特殊權限後則是SST
ACL : Access Control List 訪問控制列表,實現靈活的權限管理。除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限。CentOS7 默認創建的 xfs 和 ext4 文件系統具有 ACL 功能,CentOS7 之前版本,默認手工創建的 ext4 文件系統無 ACL 功能, 需手動增加。ACL 生效 順序:所有者,自定義用戶,自定義組,其他。(setfacl,getfacl)

command: tee ,tr ,useradd ,userdel ,usermod ,chage ,groupadd ,groupdel ,groupmod ,getent ,passwd ,gpasswd ,id ,su ,groupmems ,newgrp ,groups ,chown ,chgrp ,chmod ,umask ,chattr ,lsattr,getfacl ,setfacl

重定向和用戶權限