可執行的setuid作用在屬主的位置
許可權位作用於屬主的位置 可執行的許可權位 執行這條令的時候,相當於這條命令的所有者 root
大s 和 小s的區別
擁有執行許可權,設定setuid之後是小s
沒有執行許可權,設定setuid之後是大s
setuid # 的許可權是數字4開頭的
# 新增特殊許可權s
[root@mpd ~]# chmod u+s /usr/bin/passwd
[root@mpd ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 jun 10 2014 /usr/bin/passwd # 檢視檔案變紅色說明特別危險
setgid作用在屬組的位置許可權為作用在屬組的x為 使用s表示 有大s和小s
使用者在某個目錄下新建立的目錄或者檔案,預設的所屬組是自己的基本組
當設定setgid之後,使用者新建立的目錄或者檔案的預設所屬組不在是自己的組了
預設的組就是這個目錄的所屬組 讓多個使用者能夠共享乙個目錄
案例:
root@mpd ~]# mkdir /mysql
[root@mpd ~]# chmod g+s /mysql/
[root@mpd ~]# ll -d /mysql
drwxr-sr-x 2 root root 6 jul 24 15:13 /mysql
# 屬於這個組的在這個組下建立的檔案都可以共享相應許可權
# 跟屬組關聯
sticky粘滯位 作用在其他使用者上許可權作用於 others 的x為 使用t表示 小t 大t
給目錄設定, 乙個目錄所有使用者都擁有管理的許可權 777 針對此目錄設定乙個粘滯位
所有使用者都可以在這個目錄進行建立、刪除檔案的權利 但是只能管理自己的檔案 或者管理員擁有管理所有檔案的許可權 root
案例:[root@mpd ~]# mkdir /test
[root@mpd ~]# chmod o+t /test
[root@mpd ~]# ll -d /test
drwxr-xr-t 2 root root 6 jul 24 15:21 /test
三位特殊許可權總結chmod u+s /dir # 作用在屬主上的特殊許可權
chmod g+s /dir # 作用在屬組上的特殊許可權
chmod o+t /dir # 作用在其他使用者上的特殊許可權
# 普通使用者不能使用yum,命令,即使新增了setuid的許可權也不行 此許可權不能亂給 知道就行
# setuid的許可權是4開頭的
# setgid的許可權是2開頭的
# sticky的許可權是1開頭的
特殊屬性i 和 alsattr # 顯示特殊屬性
chattr # 設定特殊屬性
a # 這個檔案只能追加內容和檢視 別的什麼都做不了 刪除 移動 複製可以
i # 什麼都操作不了
# 針對所有使用者包管理員
案例;[root@mpd ~]# mkdir /nginx
[root@mpd ~]# touch /nginx/pik /nginx/pag
[root@mpd ~]# chattr +i /nginx
[root@mpd ~]# cp /nginx/pag ./
[root@mpd ~]# rm -fr /nginx/pag
rm: cannot remove 『/nginx/pag』: permission denied
將原本要輸出到螢幕上面的內容,重定向到乙個指定的檔案中
將原本從鍵盤上面輸入的內容,改為從命令或者檔案當中讀取
為什麼要用重定向
1. 資料非常重要,需要儲存
2. 後台程式的輸出重定向到乙個檔案中
3. 定時任務的執行結果
4. 把一些錯誤的輸出定向到空
5. 把正確和錯誤的資訊都需要儲存
stdin #標準輸入 0 # 從鍵盤上面讀取輸入的內容,
# 或者從命令及檔案中讀取輸入的內容
stdout #標準輸出 1 # 預設將正確的資訊標準輸出到螢幕上方
stderr #錯誤輸出 2 # 預設將錯誤的資訊標準輸出到螢幕上方
[root@qls ~]# cat
hello #標準輸入
hello #標準輸出
# 輸出重定向
將原本要輸出到螢幕上面的內容,重定向到乙個指定的檔案中
符號》 #標準覆蓋正確輸出重定向 # 將正確的內容覆蓋原始檔的 當檔案不存在時,會自動建立
>> #標準追加正確輸出重定向 # 將正確的內容追加到指定檔案的底部 當檔案不存在時,會自動建立
2> #標準覆蓋錯誤輸出重定向 # 將錯誤的資訊覆蓋到指定的檔案中
2>> #標準追加錯誤輸出重定向 # 將錯誤的資訊追加到檔案的底部
# 把正確的和錯誤的資訊都儲存到乙個檔案中
[root@qls ~]# ls /roott > file.txt 2>&1 # 不推薦
# 將正確的資訊和錯誤的資訊重定向到空
[root@qls ~]# ls /roottt &> /dev/null
# 把正確的和錯誤的放在不同的檔案中
[root@qls ~]# ls /rooot >> file1.txt 2>> file2.txt
# 輸入重定向
將原本從鍵盤上面輸入的內容,改為從命令或者檔案當中讀取
符號< #標準輸入重定向 #將原本從預設的鍵盤中讀取資料改為由命令或者檔案中讀取
<< #識別符號限定輸入重定向 #從鍵盤中讀取內容,直到遇到識別符號的分解符為止
案例:[root@qls ~]# grep 'root' < /etc/passwd
[root@qls ~]# grep root
[root@qls ~]# dd if=/dev/zero of=/root/test.log bs=1m count=50
[root@qls ~]# dd /root/oldboy.log bs=10m count=100
[root@qls ~]# tr 't' 't' < file1.txt
| 管道
連線左右兩個命令的使用 把前面的命令作為標準輸出通過管道交給後面的命令 作為標準輸入
只能把正確的資訊交給後面的命令,錯誤的資訊的不會傳遞
# 管道技術中的tee技術
需要儲存一些標準輸出的內容
-a # 追加
tee 和 重定向的區別
重定向 # 把要輸出到螢幕上面的內容重定向到指定的檔案中
tee # 把要輸出到螢幕上面的內容重定向到指定的檔案中 ,並且可以繼續輸出乙份到螢幕上面
# 管道中xargs技術
讓一些不支援管道的命令支援管道 把前面命令的執行結果以檔案的引數傳遞方式傳遞給後面的命令
day16 函式物件和閉包
二 閉包函式 函式物件指的是函式可以被當做 資料 來處理,具體可以分為四個方面的使用,我們如下 defadd x,y return x y.func add func 1,2 3 dic dic dic add 1,2 3 deffoo x,y,func return func x,y foo 1,...
day16 函式式程式設計和內建函式
程式設計的方 面向過程 找到問題的 函式式 不可變 不用變數儲存狀態 不修改變數 物件導向 高階函式 滿足倆個特性任意乙個即為高階函式 1.函式的傳入引數是乙個函式名 2.函式的返回值是乙個函式名 map函式 num l 1,2,10,5,3,7 計算該列表中數的平方值 方法一 ret for i ...
輸入和輸出運算子
通常情況下,輸出運算子第乙個形參是乙個非常量ostream物件的引用。之所以使用ostream是非常量是因為向流寫入內容會改變其狀態 而形參是引用是因為無法直接複製乙個ostream物件。第二個形參一般來說是乙個常量的引用,該常量表示想要列印的類型別。採用引用可以避免複製實參 之所以是常量是因為通常...