Linux 學習之路(九):特殊許可權及終端
特殊許可權及SUID
xargs
find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles\;
find /etc -size +1M | xargs echo >> /tmp/etc.largefiles
特殊許可權
SUID:執行某程式時,相應程序的屬主是程式檔案自身的屬主,而不是啟動者。
chmod u+s FILE
chmod u-s FILE
如果FILE本身原來就有執行許可權,則SUID顯示為s,否則顯示S
SGID:執行某程式時,相應程序的屬組是程式檔案自身的屬組,而不是啟動者所屬的基本組。
chmod g+s FILE
chmod g-s FILE
shell1
[[email protected] ~]# useradd hadoop
[[email protected] ~]# useradd hive
[[email protected] ~]# useradd hbase
[[email protected] ~]# mkdir /tmp/project/
[[email protected] ~]# groupadd developteam
[[email protected] ~]# chown -R :developteam /tmp/project
[ [email protected] ~]# usermod -a -G developteam hadoop
[[email protected] ~]# usermod -a -G developteam hbase
[[email protected] ~]# usermod -a -G developteam hive
[[email protected] ~]# id hadoop
uid=1016(hadoop) gid=1016(hadoop) 組=1016(hadoop),1019(developteam)
[[email protected] ~] # chmod g+s /tmp/project
shell2
[[email protected] ~]# cd /tmp/project
[[email protected] project]# ls -ld
drwxr-xr-x. 2 root developteam 6 10月 20 11:12 .
[[email protected] project]# chmod g+w /tmp/project/
[[email protected] ~]$ ls -l
總用量 0
-rw-rw-r--. 1 hadoop hadoop 0 10月 20 11:30 a.hadoop
-rw-rw-r--. 1 hadoop developteam 0 10月 20 11:34 b.hadoop
Sticky:在一個公共目錄,每個都可以建立檔案,刪除自己的檔案,但不能刪除別人的檔案。
chmod o+t DIR
chmod o-t DIR
shell1
[[email protected] ~]# chmod o+t /tmp/project/
shell2
[[email protected] project]$ ls -l
總用量 0
-rw-rw-r-[[email protected] project]$ rm b.hadoop
rm: 無法刪除"b.hadoop": 不允許的操作-. 1 hbase developteam 0 10月 20 11:46 a.hbase
-rw-rw-r--. 1 hadoop developteam 0 10月 20 11:34 b.hadoop
000:
001:
…
110:
111:
chmod 5755 /backup/test
檔案系統訪問列表:
FACL:Filesystem Access Control List
利用檔案擴充套件儲存額外的訪問控制權限
setfacl:設定facl
-m:設定
u:UID:perm
g:GID:perm
-x:取消
u:UID
g:GID
d:u:UID:perm 為目錄設定預設的訪問控制列表
getfacl:獲取facl
[[email protected] ~]# mkdir /backup
[[email protected] ~]# cd /backup
[[email protected] backup]# cp /etc/inittab ./
[[email protected] backup]# getfacl inittab
# file: inittab
# owner: root
# group: root
user::rw-
group::r--
other::r--
[[email protected] backup]# setfacl -m u:hadoop:rw inittab
[[email protected] backup]# getfacl inittab
# file: inittab
# owner: root
# group: root
user::rw-
user:hadoop:rw-
group::r--
mask::rw-
other::r--
預設情況下的檔案訪問次序:
Owner->Group->Other
許可權控制後的訪問順序:
Owner->facl,user->Group->facl,group->Other
跟使用者管理相關的幾個命令:
whoami 當前登入到系統的有效使用者
who 顯示登入到當前系統上的使用者有哪些
[[email protected] ~]# who
終端
root tty1 2018-10-20 10:45
root pts/0 2018-10-20 10:46 (192.168.83.1)
root pts/1 2018-10-20 11:14 (192.168.83.1)
root pts/2 2018-10-20 13:19 (192.168.83.1)
who -r :顯示當前執行級別
寫一個指令碼:
每隔5秒鐘,就來檢視hadoop是否已經登入,如登入,顯示已經登入,並退出
sleep 5
w 使用者登入後執行了什麼命令,比who更詳細
last 顯示/var/log/wtmp檔案,顯示使用者登入歷史及系統重啟歷史
-n #:顯示最近#次的相關資訊
lastb 顯示/var/log/btmp檔案,顯示使用者錯誤的登入嘗試
-n #:顯示最近#次的相關資訊
lastlog 當前系統上每一個使用者的登入資訊
-u USERNAME 顯示特定使用者最近的登入資訊
basename 顯示路徑基名
$0:執行指令碼時的指令碼路徑及名稱
-s 標題
把前面檔案當作正文傳送給root使用者
[[email protected] ~]# cat /etc/fstab | mail -s "How are you?" root
使用輸入重定向傳送郵件
[[email protected] ~]# mail -s "How are you" root < /etc/fstab
hostname 顯示當前主機的主機名(實時獲取)
[ -z `hostname`] || [`hostname`=='(none)' -o `hostname`=='localhost' ] && hostname www.magedu.com
終端型別:
console:控制檯,直接連線到當前物理裝置上的
pty:物理終端(VGA顯示卡)
tty:虛擬終端(VGA),附屬在物理控制檯上並結合軟體虛擬實現的
ttys:序列終端
pts/#:偽終端
shell
生成隨機數:
RANDOM:0-32768
隨機數生成器:熵池
/dev/random:更安全
/dev/urandom:如果熵池中沒數了,就會阻塞