天天看點

nsf與samba基本應用

<一>、nfs

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

調用遠端主機上的函數

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

遠端過程調用示意圖

nsf與samba基本應用

半結構化資料

XML:eXtended MarkLanguage,擴充标記語言,重量級;

JSON:輕量級;

RESTful:基于http的RPC;

NFS:Network File System,即網絡檔案系統

依賴于RPC實作其功能

是一種跨主機實作網絡存儲功能的檔案共享伺服器方案

NFS結構示意圖

nsf與samba基本應用

設想情景一:

某檔案(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

read

only = {yes|no}

write

list = +GROUP_NAME

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

testparm