課堂筆記
重定向的幾種方式
標準輸入 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