1. 程式人生 > >Linux 學習之路(九):特殊許可權及終端

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:執行指令碼時的指令碼路徑及名稱

mail

​ -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:如果熵池中沒數了,就會阻塞