ADMIN06 - 許可權和歸屬、使用LDAP認證、家目錄漫遊

李俊的部落格發表於2018-03-16
許可權和歸屬

1.基本許可權的類別
• 訪問方式(許可權)
  – 讀取:允許檢視內容-read    r
  – 寫入:允許修改內容-write    w
  – 可執行:允許執行和切換-execute  x

  文字檔案的rwx:
           r: cat  less  head  tail  grep 
           w: vim 儲存
           x: 可以執行

• 許可權適用物件(歸屬)
– 所有者:擁有此檔案/目錄的使用者-user  u
– 所屬組:擁有此檔案/目錄的組-group      g
– 其他使用者:除所有者、所屬組以外的使用者-other   o
檢視許可權
• 使用 ls -l 命令
– ls -ld 檔案或目錄...
  以  -  開頭:文字檔案
  以 d 開頭:目錄

  以 l 開頭:快捷方式

設定基本許可權
• 使用 chmod 命令
– chmod [-R] 歸屬關係+-=許可權類別 文件...
   -R : 遞迴修改目錄下所有內容,及子目錄所有內容
[root@server0 ~]# chmod u-w /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod g+w /nsd01

[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod u=rwx,g=rwx,o=rwx /nsd01

[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod ugo=r /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod ug=rw /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod -R ugo=r /opt/tarena/
[root@server0 ~]# ls -ld /opt/tarena/

#########################################################

Linux判斷使用者具備的許可權:
     1.判斷使用者所屬的身份(角色)    所有者>所屬組>其他人   匹配及停止  (重要)
     2.相應許可權位的許可權

Permission denied : 許可權不足
目錄的rwx許可權:
目錄的 r 許可權:能夠 ls 瀏覽此目錄內容
目錄的 w 許可權:能夠執行 rm/mv/cp/mkdir/touch/... 等更改目錄內容的操作
目錄的 x 許可權:能夠 cd 切換到此目錄

#######################################################
以root使用者新建/nsddir/目錄,在此目錄下新建readme.txt檔案,並進一步完成下列操作
 1)使使用者zhangsan能夠在此目錄下建立子目錄   切換使用者  su  -  zhangsan
     chmod o+w  /nsddir/

 2)使使用者zhangsan不能夠在此目錄下建立子目錄
     chmod o-w  /nsddir/

 3)使使用者zhangsan能夠修改readme.txt檔案
     chmod o+w  /nsddir/readme.txt

 4)調整此目錄的許可權,使所有使用者都不能cd進入此目錄
     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 /nsd06
[root@server0 /]# ls -ld /nsd06

[root@server0 /]# useradd tom
[root@server0 /]# groupadd stugrp
[root@server0 /]# chown tom:stugrp  /nsd06
[root@server0 /]# ls -ld /nsd06

[root@server0 /]# chown root /nsd06

[root@server0 /]# ls -ld /nsd06

[root@server0 /]# groupadd tedu
[root@server0 /]# chown :tedu /nsd06
[root@server0 /]# ls -ld /nsd06

########################################################
2.附加許可權(特殊許可權)

Set GID
• 附加在屬組的 x 位上
– 屬組的許可權標識會變為 s ,如果屬組沒有x許可權,加上附加許可權就會變成S
適用於目錄,Set GID可以使目錄下新增的文件自動設定與父目錄相同的屬組
– 繼承所屬組身份
[root@server0 /]# mkdir /nsd09
[root@server0 /]# chown :stugrp  /nsd09
[root@server0 /]# ls -ld /nsd09

[root@server0 /]# mkdir /nsd09/test01
[root@server0 /]# ls -ld /nsd09/test01

[root@server0 /]# chmod g+s /nsd09
[root@server0 /]# ls -ld /nsd09

[root@server0 /]# mkdir /nsd09/abc01
[root@server0 /]# ls -ld /nsd09/abc01

#########################################################
 3.acl訪問控制列表
 
• acl訪問策略
  – 能夠對個別使用者、個別組設定獨立的許可權

  – 大多數掛載的EXT3/4、XFS檔案系統預設已支援

[root@server0 /]# mkdir /nsd11
[root@server0 /]# chmod o=--- /nsd11
[root@server0 /]# ls -ld /nsd11

[root@server0 /]# su - zhangsan
[zhangsan@server0 ~]$ cd /nsd11
-bash: cd: /nsd11: Permission denied
[zhangsan@server0 ~]$ exit

logout

[root@server0 /]# setfacl -m u:zhangsan:rx /nsd11

[root@server0 /]# su - zhangsan

[zhangsan@server0 ~]$ cd /nsd11
[zhangsan@server0 nsd11]$ pwd
[zhangsan@server0 nsd11]$ exit
##########################################################
– getfacl 文件...   #檢視ACL訪問控制列表
– setfacl [-R] -m u:使用者名稱:許可權類別   文件...     (modify)
– setfacl [-R] -m g:組名:許可權類別   文件...

– setfacl [-R] -x u:使用者名稱   文件...      #刪除指定ACL  (remove)
– setfacl [-R] -b 文件...                      #清空ACL        (remove  all)

[root@server0 /]# mkdir /nsd12
[root@server0 /]# setfacl -m u:zhangsan:rwx /nsd12  
[root@server0 /]# useradd lisi
[root@server0 /]# setfacl -m u:lisi:rx /nsd12
[root@server0 /]# setfacl -m u:tom:rx /nsd12

[root@server0 /]# getfacl /nsd12
[root@server0 /]# setfacl -x u:lisi  /nsd12   #刪除指定使用者的ACL
[root@server0 /]# getfacl /nsd12

[root@server0 /]# setfacl -b /nsd12     #刪除目錄所有的ACL
[root@server0 /]# getfacl /nsd12

#########################################################
[root@server0 /]# ls -ld /public
[root@server0 /]# setfacl -m u:tom:--- /public
[root@server0 /]# getfacl /public
#########################################################
使用LDAP認證  (瞭解)
   LDAP伺服器: 網路使用者    使用者的集中管理  ,使用者資訊由LDAP伺服器提供

   LDAP是輕量目錄訪問協議,英文全稱是Lightweight Directory Access Protocol

   本地使用者: 使用者資訊由/etc/passwd
   LDAP伺服器: classroom.example.com
 
    客戶端:虛擬機器Server
    1.安裝客戶端軟體sssd,與LDAP網路使用者伺服器溝通
  [root@server0 /]# yum -y install sssd

    2.安裝圖形工具 authconfig-gtk 配置sssd
  [root@server0 /]# yum -y install authconfig-gtk 

  [root@server0 /]# exit
    登出
  [root@room9pc01 ~]# ssh -X root@172.25.0.11
  [root@server0 ~]# authconfig-gtk 

      選擇LDAP
      dc=example,dc=com             #指定服務端域名

      classroom.example.com         #指定服務端主機名

    勾選TLS加密

    使用證書加密:  http://classroom.example.com/pub/example-ca.crt

       選擇LDAP密碼

    3.重起sssd服務,驗證
  [root@server0 ~]# systemctl restart sssd
  [root@server0 ~]# grep 'ldapuser0'  /etc/passwd
  [root@server0 ~]# id ldapuser0
  [root@server0 ~]# id ldapuser1

#######################################################
家目錄漫遊

Network File System,網路檔案系統
– 由NFS伺服器將指定的資料夾共享給客戶機
– 客戶機將此共享目錄 mount 到本地目錄,訪問此共享

資源就像訪問本地目錄一樣方便

– 類似於 EXT4、XFS等型別,只不過資源在網上
NFS共享伺服器:classroom.example.com

  虛擬機器Server:
 1.檢視classroom有那些共享
[root@server0 ~]# showmount -e classroom.example.com
Export list for classroom:
/home/guests 172.25.0.0/255.255.0.0

2.掛載訪問
  # mkdir /nfs
  # ls /nfs
  # mount  classroom.example.com:/home/guests    /nfs
  # ls /nfs
# mkdir /home/guests
# umount /nfs
# ls /nfs
# mount classroom.example.com:/home/guests  /home/guests
# ls /home/guests
# su - ldapuser0
$ exit

----------------------------------------------------------------------------------------------------------------------------

案例1:指定yum軟體源
為 server0 指定可用的 yum 軟體源
– YUM軟體庫的地址為 http://classroom.example.com/content/rhel7.0/x86_64/dvd
– 將此配置為虛擬機器 server0 的預設軟體倉庫
[root@server0 yum.repos.d]# vim /etc/yum.repos.d/dvd.repo 
[rhel]
  name=rhel7.2
  baseurl=http://classroom.example.com/content/rhel7.0/ x86_64/dvd
  enabled=1
  gpgcheck=0

– 確認可用的倉庫列表
[root@server0 yum.repos.d]# yum repolist 
– 利用yum倉庫安裝xeyes
[root@server0 yum.repos.d]# yum -y install xeyes
– 執行指令xeyes檢視效果

        [root@server0 yum.repos.d] xeyes

案例2:chmod許可權設定
    1)以root使用者新建/nsddir/目錄,在該目錄下新建檔案readme.txt
[root@server0 ~]# mkdir /nsddir

       [root@server0 nsddir]# vim readme.txt

    2)使使用者zhangsan能夠在/nsddir/目錄下建立/刪除子目錄
[root@server0 ~]# chmod o+w /nsddir/

    3)使使用者zhangsan能夠修改/nsddir/readme.txt檔案的容
  [root@server0 nsddir]# chmod o+w /nsddir/readme.txt 
 
案例3:chown歸屬設定
    1)新建/tarena1目錄
[root@server0 nsddir]# mkdir /tarena1

a)將屬主設為gelin01,屬組設為tarena組

[root@server0 nsddir]# chown gelin01:tarena /tarena1/

b)使使用者gelin01對此目錄具有rwx許可權,其他人對此目錄無任何許可權

        [root@server0 nsddir]# chmod o=--- /tarena1/

    2)使使用者gelin02能進入、檢視/tarena1資料夾(提示:將gelin02加入所屬組)
[root@server0 nsddir]# useradd gelin02
         [root@server0 nsddir]# gpasswd -a gelin02 tarena
    3)新建/tarena2目錄
a)將屬組設為tarena
[root@server0 nsddir]# chown :tarena /tarena2/
b)使tarena組的任何使用者都能在此目錄下建立、刪除檔案
[root@server0 nsddir]# chmod g+w /tarena2/
    4)新建/tarena/public目錄
a)使任何使用者對此目錄都有rwx許可權
[root@server0 nsddir]# chmod u=rwx,g=rwx,o=rwx /tarena/public/
b)拒絕zhangsan進入此目錄,對此目錄無任何許可權
[root@server0 nsddir]# setfacl -m u:zhangsan:--- /tarena/public/

案例4:許可權設定
1、建立資料夾/data/test,設定目錄的訪問許可權,使所有者和所屬組具備讀寫執行的許可權;其他人無任何許可權。
[root@server0 nsddir]# chmod g+w,o=--- /data/test/
2、遞迴修改資料夾/data/test的歸屬使所有者為zhangsan,所屬組為tarena。
[root@server0 nsddir]# chown -R zhangsan:tarena /data/test
3、請實現在test目錄下,新建的所有子檔案或目錄的所屬組都會是tarena。
[root@server0 nsddir]# chmod g+s /data/test/
4、為lisi建立ACL訪問許可權,使得lisi可以檢視/etc/shadow檔案
[root@server0 nsddir]# setfacl -m u:lisi:r /etc/shadow

案例5:繫結到LDAP驗證服務

 –  使用系統 classroom.example.com 提供的LDAP服務
 –  驗證服務的基本DN是:dc=example,dc=com
 –  賬戶資訊和驗證資訊都是由 LDAP 提供的
 –  連線要使用證書加密,證書可以在下面的連結下載:
      http://classroom.example.com/pub/example-ca.crt 
 –  確認本地可以識別ldapuser0使用者

1.[root@server0 nsddir]# yum -y install sssd
2.[root@server0 nsddir]# yum -y install authcofig.gtk
選擇LDAP
      dc=example,dc=com             #指定服務端域名
      classroom.example.com         #指定服務端主機名
勾選TLS加密
    使用證書加密:  http://classroom.example.com/pub/example-ca.crt
選擇LDAP密碼
3.重起sssd服務,驗證
  [root@server0 ~]# systemctl restart sssd
[root@server0 ~]# id ldapuser0


案例6:訪問NFS共享
 –  檢視classroom.example.com的NFS共享
[root@server0 nsddir]# showmount -e classroom.example.com 

 –  將classroom.example.com的NFS共享目錄,掛載到本地/home/guests
[root@server0 nsddir]# mount classroom.example.com:home/guests /home/guests

相關文章