LINUX系統管理員技術(Admin)-------第五天
在真機上操作,還原環境
[root@room9pc14 桌面]# rht-vmctl reset classroom
[root@room9pc14 桌面]# rht-vmctl reset server
[root@room9pc14 桌面]# rht-vmctl reset desktop
為虛擬機 server 配置以下靜態地址參數
– 主機名:server0.example.com
– IP地址:172.25.0.11
– 子網掩碼:255.255.255.0
– 默認網關:172.25.0.254
– DNS服務器:172.25.254.254
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# cat /etc/resolv.conf
測試DNS解析
[root@server0 ~]# nslookup server0.example.com ?
###################################################
?cron計劃任務
系統服務:crond
日誌文件:/var/log/crond
? 使用 crontab 命令
– 編輯:crontab -e [-u 用戶名]
– 查看:crontab -l [-u 用戶名]
– 清除:crontab -r [-u 用戶名]
1.查看服務狀態
[root@server0 ~]# systemctl status crond
2.書寫計劃任務, ?
? ?* ? ?* ? ?* ? ?* ? ?*
? ?分 ?時 ?日 ?月 ?周
[root@server0 ~]#useradd hanjie
[root@server0 ~]#ls /home
[root@server0 ~]#su - hanjie?
[root@server0 ~]#$ touch a.txt
[root@server0 ~]#crontab -e -u hanjie
*/1 * * * * /usr/bin/date ?>> /home/hanjie/abc.txt
[root@server0 ~]#watch -n 1 cat /home/natasha/abc.txt
[root@server0 ~]# useradd natasha
[root@server0 ~]# which ifconfig ? ?#查詢命令所對應的程序在那裏
[root@server0 ~]# which date
[root@server0 ~]# crontab -e -u natasha
[root@server0 ~]# crontab -l -u natasha
*/1 * * * * /usr/bin/date ?>> /home/natasha/abc.txt
[root@server0 ~]# ?watch -n 1 cat /home/natasha/abc.txt
#######################################################
基本權限的類別
? 訪問方式(權限)
– 讀取:允許查看內容-read ? ?r
– 寫入:允許修改內容-write ? ? w
– 可執行:允許運行和切換-execute ?x
?對於文本文件:
? ? ? ? ? ? r: cat ?head tail less
? ? ? ? ? ? w: ?vim
? ? ? ? ? ? x: ?運行
? 權限適用對象(歸屬)
– 所有者:擁有此文件/目錄的用戶-user ? ? u
– 所屬組:擁有此文件/目錄的組-group ? ? ? g
– 其他用戶:除所有者、所屬組以外的用戶-other ?o
權限位 硬連接數 屬主 屬組 大小 最後修改時間 文件/目錄名稱
[root@server0 ~]# ls -l /etc/passwd
[root@server0 ~]# ls -ld /etc/
[root@server0 ~]# ls -ld /root
[root@server0 ~]# ls -ld /home/student
[root@server0 ~]# ls -ld /tmp----是一個特殊的基本權限
? 以“-”開頭: 文件
? 以“l”開頭: 快捷方式
? 以“d”開頭: 目錄
? 使用 chmod 命令
– chmod [-R] 歸屬關系+-=權限類別 文檔...
? ? ? ? [-R] 遞歸賦予權限
[root@server0 ~]# mkdir /nsd010
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u-x /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod g+w /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod o=rwx /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u=rwx,g=rx,o=r /nsd01
[root@server0 ~]# ls -ld /nsd01
################################################
? 如何判斷用戶具備權限
? ? ?1.判斷用戶所屬的身份 ? ? ? ? 所有者>所屬組>其他人 ? 匹配及停止 ? ?
? ? ?2.看相應權限位的權限劃分
? ?
?目錄的 r 權限:能夠 ls 瀏覽此目錄內容
?目錄的 w 權限:能夠執行 rm/mv/cp/mkdir/touch/... 等更改目錄內容的操作
?目錄的 x 權限:能夠 cd 切換到此目錄
####################################################
以root用戶新建/nsddir/目錄,在此目錄下新建readme.txt文件,並進一步完成下列操作
1)使用戶zhangsan能夠在此目錄下創建子目錄 ?切換用戶 ?su - zhangsan
? ? chmod o+w ?/nsddir/
[root@S ~]# mkdir /nsddir
[root@S ~]# touch /nsddir/readme.txt
[root@S ~]# useradd zhangsan
[root@S ~]# su - zhangsan
[zhangsan@S ~]$ exit
[root@S ~]# chmod o+w /nsddir/
[root@S ~]# su - zhangsan
[zhangsan@S ~]$ mkdir /nsddir/abc
[zhangsan@S ~]$ ls /nsddir/
2)使用戶zhangsan不能夠在此目錄下創建子目錄
? ? chmod o-w ?/nsddir/
3)使用戶zhangsan能夠修改readme.txt文件
? ? chmod o+w ?/nsddir/readme.txt
4)調整此目錄的權限,使所有用戶都不能進入此目錄
? ?chmod u-x,g-x,o-x ?/nsddir/
5)為此目錄及其下所有文檔設置權限 rwxr-x---
? ?chmod -R ?u=rwx,g=rx,o=--- ?/nsddir/
###############################################
設置文檔歸屬
? 使用 chown 命令
– chown [-R] 屬主 文檔...
– chown [-R] :屬組 文檔...
– chown [-R] 屬主:屬組 文檔...
[root@server0 ~]# mkdir /nsd05
[root@server0 ~]# ls -ld /nsd05
[root@server0 ~]# groupadd tedu
[root@server0 ~]# chown dc:tedu /nsd05
[root@server0 ~]# ls -ld /nsd05
[root@server0 ~]# chown student /nsd05
[root@server0 ~]# ls -ld /nsd05
[root@server0 ~]# chown :root /nsd05/
[root@server0 ~]# ls -ld /nsd05/
####################################################
?特殊權限(附加權限)
Set UID
? 附加在屬主的 x 位上
– 屬主的權限標識會變為 s
– 適用於可執行文件,Set UID可以讓使用者具有文件屬
主的身份及部分權限(傳遞所有者身份)
Set GID
? 附加在屬組的 x 位上
– 屬組的權限標識會變為 s
– 適用於可執行文件,功能與Set UID類似(傳遞所屬組身份)
– 適用於目錄,Set GID可以使目錄下新增的文檔自動設
置與父目錄相同的屬組
??
[root@server0 ~]# mkdir /tarena
[root@server0 ~]# ls -ld /tarena
[root@server0 ~]# chown :tedu /tarena
[root@server0 ~]# ls -ld /tarena
[root@server0 ~]# mkdir /tarena/nsd01
[root@server0 ~]# ls -ld /tarena/nsd01
[root@server0 ~]# chmod g+s ?/tarena/
[root@server0 ~]# ls -ld ?/tarena/
[root@server0 ~]# mkdir ? /tarena/nsd02
[root@server0 ~]# ls -ld ?/tarena/nsd02
[root@server0 ~]# touch ?/tarena/nsd02/abc.txt
[root@server0 ~]# ls -l ?/tarena/nsd02/abc.txt
#################################################
Sticky Bit
? 附加在其他人的 x 位上
– 其他人的權限標識會變為 t
– 適用於開放 w 權限的目錄,可以阻止用戶濫用 w 寫入
權限(禁止操作別人的文檔)
[root@server0 ~]# mkdir /public
[root@server0 ~]# chmod u=rwx,g=rwx,o=rwx /public
[root@server0 ~]# ls -ld /public
[root@server0 ~]# chmod o+t /public
[root@server0 ~]# ls -ld /public
###################################################
acl策略的作用
? 文檔歸屬的局限性
– 任何人只屬於三種角色:屬主、屬組、其他人
– 無法實現更精細的控制
? acl訪問策略
– 能夠對個別用戶、個別組設置獨立的權限
– 大多數掛載的EXT3/4、XFS文件系統默認已支持
[root@server0 ~]# mkdir /test
[root@server0 ~]# ls -ld /test
[root@server0 ~]# chmod o=--- /test
[root@server0 ~]# ls -ld /test
[root@server0 ~]# su - zhangsan
[zhangsan@server0 ~]$ cd /test/
-bash: cd: /test/: Permission denied
[zhangsan@server0 ~]$ exit
logout
[root@server0 ~]# setfacl -m u:zhangsan:rx /test/
[root@server0 ~]# getfacl /test/
[root@server0 ~]# su - zhangsan
[zhangsan@server0 ~]$ cd /test/
[zhangsan@server0 test]$ pwd
[zhangsan@server0 test]$ exit
? 使用 getfacl、setfacl 命令
– getfacl 文檔...
– setfacl ?-m u:用戶名:權限類別 文檔...
– setfacl ?-m g:組名:權限類別 文檔...
– setfacl ?-x u:用戶名 ? ? 文檔... ? ? ? ? #刪除指定的ACL策略 ? ?
– setfacl ?-b 文檔... ? ? ? ? ? ? ? ? ? ? ? ? ? ? #清空ACL策略 ? ? ? ??
[root@server0 ~]# getfacl /test/
[root@server0 ~]# setfacl -m u:dc:rwx /test/
[root@server0 ~]# setfacl -m u:natasha:rx /test/
[root@server0 ~]# getfacl /test/
[root@server0 ~]# setfacl -x u:dc /test/ ?#刪除指定的ACL
[root@server0 ~]# getfacl /test/
[root@server0 ~]# setfacl -b /test/ ? ? #清空所有的ACL
[root@server0 ~]# getfacl /test/
##################################################
[root@server0 ~]# mkdir /nsd20
[root@server0 ~]# chmod u=rwx,g=rwx,o=rwx /nsd20
[root@server0 ~]# ls -ld /nsd20
drwxrwxrwx. 2 root root 6 10月 30 15:49 /nsd20
[root@server0 ~]# setfacl -m u:natasha:--- /nsd20
###################################################
使用LDAP認證
? ? ? ?傳統用戶名密碼:本地創建,用於本地登陸 ?/etc/passwd
? ? ? ?網絡用戶: 在LDAP服務器上創建,可以登陸域中每一臺機器
? LDAP服務器: classroom
? ? 客戶端:指定服務端LDAP位置
? ??
? 1.安裝客戶端軟件
? ? ? – 軟件包:
? ? ? ? ? sssd:與服務端溝通軟件
? ? ? ? ? authconfig-gtk:圖形配置sssd工具
[root@server0 ~]# rpm -q sssd ? ? ? ? ? #驗證軟件包安裝成功
[root@server0 ~]# rpm -q authconfig-gtk
? 2.運行圖形配置sssd工具:authconfig-gtk
[root@server0 ~]# authconfig-gtk
? 用戶賬戶數據庫:LDAP
?LDAP搜索基礎DN:dc=example,dc=com
?LDAP服務器: classroom.example.com
? ?鉤選:用TLS加密連接
? ? ? ? 指定證書加密:
? ? ? ? ? ?http://172.25.254.254/pub/example-ca.crt
? ?認證方法:LDAP密碼
3.啟動sssd服務,並設置為開機自起
[root@server0 ~]# systemctl restart sssd
[root@server0 ~]# systemctl enable sssd
4.驗證
[root@server0 ~]# grep ‘ldapuser0‘ /etc/passwd
[root@server0 ~]# id ldapuser0
##################################################
家目錄漫遊
? Network File System,網絡文件系統
– 由NFS服務器將指定的文件夾共享給客戶機
– 客戶機將此共享目錄 mount 到本地目錄,訪問此共享
資源就像訪問本地目錄一樣方便
– 類似於 EXT4、XFS等類型,只不過資源在網上
? 查看NFS資源
[root@server0 ~]# showmount -e 172.25.254.254
? 進行掛載,將服務端NFS共享內容掛載到本地目錄
[root@server0 ~]# mkdir /home/guests
# mount ?172.25.254.254:/home/guests/ ? ?/home/guests
[root@server0 ~]# ls /home/guests
[root@server0 ~]# su - ldapuser0
LINUX系統管理員技術(Admin)-------第五天