nsf與samba基本應用

<一>、nfs


RPC:RemoteProcedure Call protocol,即遠程過程調用協議

調用遠程主機上的函數

一部分功能由本地程序完成,另一部分功能由遠程主機上的函數完成

 

遠程過程調用示意圖

wKiom1VJ4oyyZcKoAAFtPKQ-GSI991.jpg

 

半結構化數據

XML:eXtended MarkLanguage,擴展標記語言,重量級;

JSON:輕量級;

RESTful:基於http的RPC;

 

NFSNetwork File System即網絡文件系統

依賴於RPC實現其功能

是一種跨主機實現網絡存儲功能的文件共享服務器方案

 

NFS結構示意圖

wKioL1VJ5AyjGjY0AACfeF5hW9o646.jpg

 

設想情景一:

某文件(a)在客戶端以fedora(id=785)身份創建,則文件的屬主和屬組爲fedora,存儲至遠程NFS服務器;

1、NFS服務器上無id=785,則a文件的屬主和屬組無對應用戶,客戶端用戶權限映射爲服務端的nobody用戶權限;

2、NFS服務器上恰好有id=785,對應的用戶是hadoop,則客戶端用戶權限映射爲服務端hadoop用戶的權限;

 

設想情景二:

以root身份在客戶端創建某文件(b),存儲至遠程NFS服務器,則b文件的屬主、屬組id=0;而NFS服務器的root用戶id也=0,從而客戶端用戶權限映射爲服務端管理員的權限;

 

NIS:Network Information Service,即網絡信息系統

身份認證不在本地完成,而是集中於指定服務器

 

NFS: 基於IP的認證

 

RPC:

 

NFS:2049/tcp, 2049/udp

 

RPC服務:portmapper

rpcinfo:report RPC information

 

nfs服務器

nfsd, mountd, idmapd

 

查看NFS服務器端共享的文件系統

showmount-e NFSSERVER_IP

 

掛載NFS文件系統

mount-t nfs SERVER:/path/to/sharedfs /path/to/mount_point

 

 

/etc/exports:

文件系統        客戶端(選項) 客戶端(選項)

 

客戶端:IP、FQDN或DOMAIN、NETWORK

 

exportfs:維護exports文件導出的文件系統表的專用工具:

export-ar: 重新導出所有的文件系統

export-au: 關閉導出的所有文件系統

export-u FS: 關閉指定的導出的文件系統

 

開機自動掛載nfs:

/etc/fstab

SERVER:/PATH/TO/EXPORTED_FS/mount_point         nfs        defaults,_netdev        0 0

 

 

補充材料

 

/etc/exports 文件中的項的格式相當簡單。要共享一個文件系統,只需要編輯/etc/exports 並使用下面的格式給出這個文件系統(和選項)即可:

directory (or file system)   client1(option1, option2) client2(option1,option2)

 

常用選項

 

有幾個常用的選項可以對 NFS 實現進行定製。這些選項包括:

secure: 這個選項是缺省選項,它使用了 1024 以下的 TCP/IP 端口實現 NFS 的連接。指定 insecure 可以禁用這個選項。

rw: 這個選項允許 NFS 客戶機進行讀/寫訪問。缺省選項是隻讀的。

async: 這個選項可以改進性能,但是如果沒有完全關閉 NFS 守護進程就重新啓動了 NFS 服務器,這也可能會造成數據丟失。

no_wdelay: 這個選項關閉寫延時。如果設置了 async,那麼 NFS 就會忽略這個選項。

nohide: 如果將一個目錄掛載到另外一個目錄之上,那麼原來的目錄通常就被隱藏起來或看起來像空的一樣。要禁用這種行爲,需啓用 hide 選項。

no_subtree_check: 這個選項關閉子樹檢查,子樹檢查會執行一些不想忽略的安全性檢查。缺省選項是啓用子樹檢查。

no_auth_nlm: 這個選項也可以作爲 insecure_locks 指定,它告訴 NFS守護進程不要對加鎖請求進行認證。如果關心安全性問題,就要避免使用這個選項。缺省選項是 auth_nlm 或 secure_locks。

mp (mountpoint=path): 通過顯式地聲明這個選項,NFS 要求掛載所導出的目錄。

fsid=num: 這個選項通常都在 NFS 故障恢復的情況中使用。如果希望實現 NFS的故障恢復,請參考 NFS 文檔。

 

用戶映射

通過 NFS 中的用戶映射,可以將僞或實際用戶和組的標識賦給一個正在對 NFS捲進行操作的用戶。這個 NFS 用戶具有映射所允許的用戶和組的許可權限。對 NFS卷使用一個通用的用戶/組可以提供一定的安全性和靈活性,而不會帶來很多管理負荷。

在使用 NFS掛載的文件系統上的文件時,用戶的訪問通常都會受到限制,這就是說用戶都是以匿名用戶的身份來對文件進行訪問的,這些用戶缺省情況下對這些文件只有只讀權限。這種行爲對於root 用戶來說尤其重要。然而,實際上的確存在這種情況:希望用戶以 root 用戶或所定義的其他用戶的身份訪問遠程文件系統上的文件。NFS允許指定訪問遠程文件的用戶——通過用戶標識號(UID)和組標識號(GID),可以禁用正常的 squash 行爲。

 

用戶映射的選項包括

root_squash: 這個選項不允許 root 用戶訪問掛載上來的 NFS 卷。

no_root_squash: 這個選項允許 root 用戶訪問掛載上來的 NFS 卷。

all_squash: 這個選項對於公共訪問的 NFS 捲來說非常有用,它會限制所有的 UID 和 GID,只使用匿名用戶。缺省設置是no_all_squash。

anonuid 和 anongid: 這兩個選項將匿名 UID 和 GID修改成特定用戶和組帳號。

 

 

客戶端掛載時可以使用的特殊選項

 

Client

Mountingremote directories

Beforemounting remote directories 2 daemons should be be started first:

rpcbind

rpc.statd

 

rsize 是從服務器讀取的字節數。wsize是寫入到服務器的字節數。默認都是1024, 如果使用比較高的值,如8192,可以提高傳輸速度。

 

Thetimeo value is the amount of time, in tenths of a second, to wait beforeresending a transmission after an RPC timeout. After the first timeout, thetimeout value is doubled for each retry for a maximum of 60 seconds or until amajor timeout occurs. If connecting to a slow server or over a busy network,better performance can be achieved by increasing this timeout value.

Theintr option allows signals to interrupt the file operation if a major timeoutoccurs for a hard-mounted share.

 

總結

1、客戶端表示方式

2、導出選項:

rw,async, sync, root_squash, no_root_squash, all_squash, anonuid, anongid

3、exportfs和showmount


<二>、samba


samba基礎:

smb: Service Message Block

CIFS: Common Internet File System

 

監聽端口:137/udp, 138/udp, 139/tcp, 445/tcp

 

NetBIOS: Windows基於於主機實現互相通信的機制;

15個字符

 

samba服務啓用的進程

nmbd: netbios

smbd: cifs

winbindd:

 

UNC路徑\\SERVER\shared_name

 

samba的兩種訪問方式

 

交互式數據訪問

# smbclient -L HOST -U USERNAME

 

獲取到共享信息之後,

# smbclint //SERVER/shared_name -U USERNAME

 

 

基於掛載的方式訪問

mount -t cifs //SERVER/shared_name  /mount_point -o username=USERNAME,password=PASSWORD

 

常用命令和文件

服務器:

# yum -y install samba

 

服務腳本:

/etc/rc.d/init.d/nmb

/etc/rc.d/init.d/smb

 

主配置文件:

/etc/samba/smb.conf

 

samba用戶:

賬號:都是系統用戶, /etc/passwd

密碼:samba服務自有密碼文件,

 

將系統用戶添加爲samba的命令:smbpasswd

 

smbpasswd:

-a Sys_User: 添加系統用戶爲samba用戶

-d :禁用

-e: 啓用

-x: 刪除

 

配置文件:

smb.conf

全局設定

特定共享的設定

私有家目錄

打印機共享

自定義共享

 

自定義共享:

[shared_name]

path = /path/to/share_directory

comment = Comment String

guest ok = {yes|no}

public = {yes|no}

writable = {yes|no}

read only = {yes|no}

write list = +GROUP_NAME

 

測試配置文件是否有語法錯誤,以及顯示最終生效的配置:

# testparm


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章