UNIX/Linux主機與Windows主機之間的資源互訪

Windows主機之間使用SMB/CIFS網路協議實現文件和列印資源的共享,Windows無法與UNIX/Linux主機之間實現資源共享,Samba伺服器在UNIX系統中實現了SMB/CIFS協議,通過Samba服務可以實現UNIX/Linux主機與Windows主機之間的資源互訪。

特點:

必須是系統用戶,但使用獨立密碼訪問

默認安裝samba並添加用戶(smbpasswd -a 用戶名),即可訪問自己的宿主目錄(可讀寫)。

一、samba的安裝

查看是否安裝了samba

rpm -q samba

查到samba-3.0.33-3.28.el5說明已安裝

默認安裝了客戶端:

rpm -qa | grep samba

Advertisements

samba-client-3.0.33-3.28.el5

samba-common-3.0.33-3.28.el5

安裝

yum -y install samba

啟動服務

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

service smb start

兩個進程:

smbd ---> tcp 139 用戶驗證和文件共享

nmbd --->udp 137 138 瀏覽共享和計算機名解析

ps -le | grep smbd

ps -le | grep nmbd

一、用戶管理

1.首先必須是系統用戶,添加Linux系統用戶

useradd 用戶名 #添加用戶

passwd 用戶名 #設置密碼

Advertisements

2.然後設置samba的密碼(samba自帶的用戶管理工具)

smbpasswd -a 用戶名 #加用戶

smbpasswd 用戶名 #改smb密碼

root可以使用管理命令(系統自動的samba用戶資料庫管理工具)

pdbedit -a username:新建Samba賬戶。

pdbedit -x username:刪除Samba賬戶。

pdbedit -L:列出Samba用戶列表,讀取/etc/samba/passdb.tdb資料庫文件。

pdbedit -Lv:列出Samba用戶列表的詳細信息。

二、建立samba連接

為了安全,不要把root設為samba用戶

重啟服務

service smb restart

Windows中如何連接:

\\伺服器地址

\\192.168.88.88

可以映射網路驅動器

net use

net use * /del /y

net use \\192.168.88.88 "password" /user:your_user

查看有哪些客戶端連接

smbstatus

查看日誌

cat /var/log/samba

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

如果不能訪問:

防火牆

iptables -L 查看

iptables -F 清空防火牆規則,拆除防火牆

即時生效,重啟后復原

service iptables stop

永久性生效,重啟后不會復原

chkconfig iptables off

SELinux

允許訪問

setsebool -P samba_enable_home_dirs on

或完全禁用SELinux:

vi /etc/selinux/config 改為SELINUX=disabled

三、配置文件

如果查找配置文件在哪裡

rpm -ql samba-common | grep smb.conf

編輯配置文件

vi /etc/samba/smb.conf

[global] 全局環境選項

workgroup 工作組或域

server string 描述信息

security 安全模式,有如下選項

share 不驗證許可權,直接共享

user 預設,推薦,由Linux Samba伺服器做驗證

server 第三方主機驗證

domain 第三方主機驗證(必須是Windows 域控制器)

hosts allow 哪些主機可以訪問(如果沒有配置,全部主機都可以)

如果是ip直接寫上,如果是ip段只寫網段部份,多個用空格分隔 如: 192.168.1. 192.168.2.

哪些主機不允許訪問,hosts deny 一般不和hosts allow同時使用

log file 日誌文件(最好啟用日誌)

[homes] 只要有這個配置段,用戶默認就可以通過自己的用戶名,訪問自己的宿主目錄

comment 描述

browseable=no 無許可權訪問的目錄,不顯示出來

writable=yes 可寫

[自定義的共享1]

[自定義的共享2]

四、samba實例

需求:配置/software目錄的共享,允許user1 user2兩個用戶完全訪問

創建目錄

mkdir /software

添加用戶

useradd user1

passwd user1

useradd user2

passwd user2

添加samba密碼

pdbedit -a user1

pdbedit -a user2

編輯配置文件

vi /etc/samba/smb.conf

建議寫在配置文件尾

[software] 共享名,不能有特殊符號,一般是字母或數字組成

path = /software 共享目錄,只能是一個目錄

valid users = user1 user2 多個用空格分開。如果沒配置此項,所有用戶都可以訪問

writable = yes 寫許可權 yes no

Samba伺服器配置檢測命令

testparm

如果配置文件寫錯,例valid users=user1 寫成了valid user=user1 將提示

重啟服務

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

設置目錄許可權

直接改為777,但這樣不安全

chmod -R 777 /software

創建一個用戶組,改變目錄所屬組,對組授權,然後從新連接就可以了

groupadd softadmin

usermod -aG softadmin user1

usermod -aG softadmin user2

chgrp softadmin /software

chmod g+w /software

推薦用acl

setfacl -R -m u:user1:rwx /software #讓user1有rwx許可權 (已有目錄或文件)

setfacl -R -m d:u:user1:rwx /software#讓以後新創建的文件或目錄,user1也有rwx許可權

setfacl -R -m u:user2:rwx /software

setfacl -R -m d:u:user2:rwx /software

windows 下,重新連接

net use * /del /y

net use \\192.168.88.88 "password" /user:your_user

提供一個共享目錄,所有有戶都能使用,卻不能刪除別人的文件

[test]

path = /test

wrieable=yes

然後,設置目錄為 chmod 1777 /test

Advertisements

你可能會喜歡