samba: 功能: 文件系統共享:類unix系統和windows系統之前文件系統共享 打印機共享; NetBIOS協議; 服務端程序包:samba nmbd:NetBIOS name server smbd:SMB/CIFS services 主配置文件:/etc/samba/smb.conf systemd unit file: nmbd:nmb.service smbd:smb.service 客戶端程序包:samba-client smbclient:交互式的命令行客戶端; mount -t cifs: 監聽端口:137/upd,138/udp,139/tcp,445/tcp samba配置:smb.conf 兩類配置段: 全局配置:[global] 每共享的專用配置:[共享資源的共享名稱] directive = value 全局配置: workgroup = 當前samba主機所屬工作組 netbios name = 當前samba主機的netbios名稱 server string = 主機注釋 display charset = 當前samba服務器所用字符集 unix charset = 當前linux主機所用的字符集 dos charset = windows端的字符集 interfaces = samba服務監聽的IP地址或網絡接口 hosts allow = 客戶端來源白名單 log file = /var/log/samba/log.%m 日志存放位置 max log size = 50 日志文件大小上限,單位KB standalone server options security = user 設定安全級別,取值以下三者之一 share:匿名共享 user:使用samba服務自我管理的帳號和密碼進行認證,用戶必須是OS用戶, 密碼是訪問samba的專用密碼 domain:使用DC進程認證, passdb backend = tdbsam 密碼庫文件的格式 共享配置: [共享名稱]:此幾位某共享服務名 comment:注釋信息 path:此共享對應本地文件系統路徑 browseable:是否可瀏覽,是否可被所有用戶看到 writable:是否可寫 read only:是否為只讀 writelist:可寫用戶或組列表 用戶名 @組名 +組名 guest ok :是否允許匿名訪問 public:是否是公開的服務 注意:writable和writelist不應該同時使用 可用的宏列表: %m:客戶端主機的NetBIOS名稱 %M:客戶端的Internet主機名,即HOSTNAME %H:當前用戶的家目錄 %U:當前用戶的用戶名 %g:當前用戶所屬的組名 %h:當前SAMBA主機的HOSTNAME %I:客戶端主機IP %T:當前的日期時間 交互式訪問: #smbclient -L SABMA_SERVER -U USERNAME #smbclient //SAMBA_SERVER/SERVER_NAME -U USERNAME 掛在訪問方式: mount -t cifs -o username=USERNAME,password=PASSWD //SAMBA_SERVER/SHARED /MOUNT_DIR 例子: [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes 將系統用戶添加為samba用戶: [option] USERNAME -a:添加 -x:刪除 -d:禁用 -e:啟用訪問samba共享: unix: smbclient:交互式命令行客戶端 mount -t cifs:掛在文件系統 windows: //HOST OR IP/SHARED_DIR 命令:類似smbpasswd,用戶管理smb用戶 pdbedit [option]: -L:列出所有的smb用戶 -v:verbose -a:添加用戶 -u USERNAME -x:刪除指定用戶 -r:修改用戶的粗信息 命令: 顯示samba server的相關共享的訪問狀態 -b:顯示簡要格式信息 -v:顯示詳細格式信息
安裝samba配置要求:
1、建立samba共享,共享目錄為/data,要求:(描述完整的過程) 1)共享名為shared,工作組為magedu; 2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組, ubuntu不屬于develop組;密碼均為用戶名; 3)添加samba用戶gentoo,centos和ubuntu,密碼均為“mageedu”; 4)此samba共享shared僅允許develop組具有寫權限,其他用戶只能以只讀方式訪問; 5)此samba共享服務僅允許來自于172.16.0.0/16網絡的主機訪問;
安裝步驟如下:
yum info samba.x86_64 #查看samba包的信息 yum -y install samba.x86_64 #安裝samba服務 rpm -ql samba #查看samba安裝后的文件 groupadd develop #添加develop組 useradd -G develop gentoo #添加gentoo用戶并給它指定附加組develop useradd -G develop centos #添加centos用戶并給它指定附加組develop useradd ubuntu #添加ubuntu用戶 echo "gentoo" | passwd --stdin gentoo #添加密碼 echo "centos" | passwd --stdin centos echo "ubuntu" | passwd --stdin ubuntu smbpasswd -a centos #為samba服務添加centos用戶,此處需要輸入密碼我設置為centos smbpasswd -a gentoo #此處需要輸入密碼我設置為gentoo smbpasswd -a ubuntu #此處需要輸入密碼我設置為ubuntu mkdir /data #建分享目錄 chmod g+w /data #修改分享目錄的組寫權限 chown :develop /data #修改分享目錄的數組 ls -dl /data/ #確認修改是否成功 vim /etc/samba/smb.conf #在配置文件中添加分享配置 全局配置添加如下 [global] workgroup = magedu server string = Samba Server Version %v netbios name = MYSERVER hosts allow = 192.168.0.0/16 分享目錄配置如下 [shared] comment = data path = /data public = no valid users = gentoo centos ubuntu @develop write list = @develop read list = ubuntu writable = yes printable = no systemctl stop firewalld.service #關閉防火墻 setenforce 0 #關閉selinux getenforce #查看關閉情況 systemctl start smb.service #啟動smb服務 systemctl start nmb.service #啟動nmb服務 連接需要安裝samba的客戶端smbclient和一些依賴的包,不然會報錯 [root@localhost ~]# smbclient -L 192.168.1.110 -U gentoo smbclient: relocation error: /lib64/libsamba-credentials.so.0: symbol GSS_KRB5_CRED_NO_CI_FLAGS_X, version gssapi_krb5_2_MIT not defined in file libgssapi_krb5.so.2 with link time reference yum -y install samba-client #安裝samba客戶端 yum install krb5-devel krb5-libs pam_krb5 krb5-workstation -y #安裝客戶端依賴的相關包 systemctl stop firewalld.service #關閉防火墻 setenforce 0 #關閉selinux getenforce #查看關閉情況 smbclient -L 192.168.1.110 -U gentoo #檢測 smbclient //192.168.1.110/shared -U gentoo #交互式連接server端并指定用戶 [root@localhost ~]# smbclient //192.168.1.110/shared -U gentoo Enter gentoo's password: Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.4.4] smb: \> ls . D 0 Fri Dec 16 06:36:41 2016 .. DR 0 Fri Dec 16 06:36:41 2016 52403200 blocks of size 1024. 50839544 blocks available smb: \> smb: \> mkdir gentoo smb: \> ls . D 0 Fri Dec 16 07:02:02 2016 .. DR 0 Fri Dec 16 06:36:41 2016 gentoo D 0 Fri Dec 16 07:02:02 2016 52403200 blocks of size 1024. 50839580 blocks available smb: \> lcd /etc smb: \> put fstab putting file fstab as \fstab (176.1 kb/s) (average 176.1 kb/s) smb: \> ls . D 0 Fri Dec 16 07:02:20 2016 .. DR 0 Fri Dec 16 06:36:41 2016 gentoo D 0 Fri Dec 16 07:02:02 2016 fstab A 541 Fri Dec 16 07:02:20 2016 52403200 blocks of size 1024. 50839888 blocks available smb: \> exit [root@localhost ~]# smbclient //192.168.1.110/shared -U ubuntu Enter ubuntu's password: Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.4.4] smb: \> ls . D 0 Fri Dec 16 07:02:20 2016 .. DR 0 Fri Dec 16 06:36:41 2016 gentoo D 0 Fri Dec 16 07:02:02 2016 fstab A 541 Fri Dec 16 07:02:20 2016 52403200 blocks of size 1024. 50839420 blocks available smb: \> mkdir ubuntu #ubuntu不在組中沒有寫權限 NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \ubuntu mount -t cifs -o username=centos,passwd=centos //192.168.1.110/data /data 先關閉電腦的防火墻 在文件路徑中輸入 \\192.168.1.110 然后用gentoo登錄: 登錄后創建文件111.txt到服務器上目錄中查看 [root@localhost data]# ls 111.txt fstab gentoo
原創文章,作者:sheng,如若轉載,請注明出處:http://www.www58058.com/64034