Tuesday, June 8, 2010

samba雜亂小筆記

給未來的裕翔

首先安裝三個套件

samba, samba-common, samba-client

注意以下四個port

137/udp, 138/udp, 139/tcp, 445/tcp

雖然daemon有nmbd和smbd兩個

用service smb start就會自動連nmbd一起帶起來

若在client端想看server端開放哪些資料夾

smbclient -L 192.168.0.254

輸入密碼的地方直接按Enter就可以看了

另外要注意的是

samba有自己的密碼, 跟/etc/shadow無關

不過帳號必須已經存在/etc/passwd裡面

那samba建立的密碼會存在/etc/samba/passdb.tdb

因為不是一般文字檔

如果想看passdb.tdb內容的話

tdbdump /etc/samba/passdb.tdb

想要使用samba服務有兩種方式

一個是像ftp一樣的方式

smbclient //server/share-name -U user-name

然後輸入密碼

不然就是用mount(個人偏向這個)

mount -t cifs -o username=user-name //192.168.0.254/homes /mount-dir

cifs是common internet file system的縮寫

要注意那個homes是share-name不是dir

不過這樣mount會失敗

因為selinux的關係

setsebool -P samba_enable_home_dirs=1

另外補充, 星星如果要出現, setroublesootd要先啟動

如果要自行增加分享的資料夾

(預設只有home和printer)

在/etc/samba/smb.conf最下面增加幾行

[share-name]

path = blabla

browseable = yes

valid users = user1, user2

writeable = yes

read list = user2

以上表示, 開放write,除了user2不能write

但是, 光這樣還是會failed

必須給那個share出去的資料夾改變context

chcon -t samba_share_t /blabla

注意, 裡面的檔案也都必需要是samba_share_t

如果希望開機自動掛載

在/etc/fstab裡面

//server/share-name   /mount-point   cifs   username=john   0   0

不過這樣也挺麻煩的, 每次開機都要輸入密碼

所以可以改成

//server/share-name   /mount-point   cifs   credentials=/etc/xyz   0   0

然後建立/etc/xyz

username=user-name

password=user-password

安全起見chmod 600 /etc/xyz

最後, 關於存取控管

可以考慮直接用smb.conf裡面的[global]的

host deny, host allow, 依題目決定

比iptables方便許多

No comments:

Post a Comment