接下来配置,用samba服务将linux下的共享目录共享出来
Linux下有samba有四种安全级别,即Share、User、Server、Domain,它们的安全级别由低到高,在配置文件中具体由security参数指定。其中,Share级是指用户不需要账户和口令即可登录服务器;User级是Samba服务器默认的安全级别,是指服务器负责检查登陆者的账户和口令;Server级是指账户和口令的检查由另外的Samba或Windows服务器负责;Domain级是指由一台Windows NT/2000域服务器负责检查账户和口令。用户在配置Samba服务器时,可以根据所需要的不同安全等级来具体配置
[root@localhost root]# cd /etc/samba/
//切换到/etc/samba目录
[root@localhost samba]# mv smb.conf smb.conf.bak
//将smb.conf文件改名为smb.conf.bak
[root@localhost samba]# grep -v "#" smb.conf.bak > ./smb.conf
//显示去掉前面“#”说明,并显示文件的内容重定向导到当前目录的smb.conf文件中。
[root@localhost samba]# vim smb.conf
//打开编辑smb.conf配置文件
[global] //设置全局参数global
workgroup = MYGROUP //windows的工作组
netbios name=Linuxsamba //设置主机名,Linux系统的主机名
server string = Samba Server //samba服务说明
; hosts allow = 192.168.1. 192.168.2. 127.
printcap name = /etc/printcap //设置打印机配置文件路径
load printers = yes //设置是否允许共享打印
printing = cups //设置目录文件的路径
; guest account = pcguest //
log file = /var/log/samba/%m.log //设置目录文件的路径
max log size = 0 //对日志文件的文件长度不作限制
security = share //设置User级的安全等级
; password server = <NT-Server-Name>
; password level = 8
; username level = 8
encrypt passwords = yes //设置用户采用口令加密
smb passwd file = /etc/samba/smbpasswd //设置口令文件的路径
; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt
unix password sync = Yes //设置Samba用户和Linux系统账户同步
passwd program = /usr/bin/passwd %u //设置本地口令程序
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
pam password change = yes //设置用户使用pam更改口令
; username map = /etc/samba/smbusers
; include = /etc/samba/smb.conf.%m
obey pam restrictions = yes //认证用户时,服从pam管理
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 //设置服务器和客户间会话的Socket选项
dns proxy = no //不为客户做DNS查询
[homes] //设置用户的主目录共享
comment = Home Directories //提供用户主目录服务
browseable = no //其他用户不能浏览该用户主目录
writable = yes //允许用户进行写操作
valid users = %S
create mode = 0664 //创建文件模式制定的权限为当前用户为读写,组用户为读写,其他用户为读
directory mode = 0775//创建目录模式为当前用户为读写执行权限,组用户为读写执行权限,其他用户为读执行权限
; map to guest = bad user
; [netlogon] //网络登录服务共享名
; comment = Network Logon Service //网络登录说明
; path = /usr/local/samba/lib/netlogon //网络登录的共享文件夹路径
; guest ok = yes //是否允许匿名用户访问
; writable = no //是否允许匿名用户读操作
; share modes = no //共享模式默认为否
[Profiles] //共享目录为profile
; path = /usr/local/samba/profiles //共享目录路径
; browseable = no //是否可浏览的
; guest ok = yes //是否允许匿名用户访问
[printers] //设置全部打印机共享
comment = All Printers //共享说明为所有的打印共享
path = /var/spool/samba //打印共享目录为/var/spool/samba
browseable = no //浏览时是否显示
guest ok = no //是否允许匿名用户访问
writable = no //是否允许匿名用户写操作
printable = yes //是否允许打印
;[tmp] //设置共享目录名为tmp
; comment = Temporary file space //共享目录说明
; path = /tmp //共享目录
; read only = no //是否为只读操作
; public = yes //是否是公用的
;[public] //公用目录共享名
; comment = Public Stuff //共享说明
; path = /home/samba //共享目录的路径
; public = yes //是否公开目录
; writable = yes //是否有写的权限
; printable = no //是否允许打印
; write list = @staff //staff组有写的权限
;[fredsprn]
; comment = Fred's Printer //共享目录说明
; valid users = fred //说明访问fredsprn的用户是fred
; path = /home/fred //共享路径
; printer = freds_printer //打印机类型
; public = no //是否允许匿名用户访问
; writable = no //目录是否可写
; printable = yes //是否可以打印
;[pchome]
; comment = PC Directories
; path = /usr/local/pc/%m
; public = no
; writable = yes
;[myshare] //共享目录名
; comment = Mary's and Fred's stuff //共享目录说明
; path = /usr/somewhere/shared //共享目录路径
; valid users = mary fred //允许mary 和fred用户访问
; public = no //是否允许匿名用户访问
; writable = yes //是否有写的权限
; printable = no //是否允许打印
; create mask = 0765 //创建文件的默认的权限,当前用户有读写执行,组有读写权限,读执行权限
现在来试一下share安装级别,找到security=user,将其改为security=share,如果很多显示文件,可以通过下列方式寻找,在命令模式中输入/security 然后回车就行跳到安全级别security单词位置先查了一遍smb.conf文件所有的单词都标上另特定的颜色,最后跳到第一个security单词位置,按i进入编辑模式。按左右光标进行向左向右移动,按上下光标进行上下移动。
编辑好后,将光标移到末尾[myshare]共享目录这行,按Esc键转为命令模式。要将[myshare]共享目录名以后的样本前的分号去掉,将光标定在[myshare]行
在命令模式,输入”:”,”.”点代表“当前行”,”,”逗号“到”,“$”最后一行,”s”替换“/^”行首的“;”,”\”转意符合,“//”删除
如果到这部会发现[myshare]的分号没有被删除,可以手动删除
然后保存退出
[root@localhost samba]# mkdir -p /usr/somewhere/else/public
//
创建目录
public
目录,如果前面的目录不存在,就同时创建。
[root@localhost samba]# mkdir -p /usr/somewhere/shared
//
创建目录与共享目录名下的
path
对应,如果没有
shared
前面的目录不存在,先创建,如果存在不会提示
[root@localhost samba]# service smb restart
//
重启
smb
服务
,
让配置生效
可以看到
myshare
、
public
共享目录及打印机和传真共享
在目录中创建
word
文件不允许创建
[root@localhost samba]# ls -ld /usr/somewhere/else/public/
//
因为
window
访问属于其它用户,从显示的详细的文件信息中看出,其它用户只有执行的权限,其它用户对目录没有读写的权限
drwxr-xr-x 2 root root 4096 4
月
12 22:19 /usr/somewhere/else/public/
[root@localhost samba]# chmod o+rw /usr/smewhere/else/public/
//
设置其它用户的权限,其它用户可以读写
//
关掉窗口在重新打开,可以对目录进行读写操作了
如果访问
myshare
是不允许访问的,安全级别不是
share
不能访问。
[root@localhost samba]# useradd mary
//
创建
mary
用户
[root@localhost samba]# useradd fred
//
创建
fred
用户
[root@localhost samba]# smbpasswd -a mary
//
设置
smb
用户
mary
的密码,可以用
smbpasswd +
用户,进行修改密码,加选项参数
-d:
删除用户权限,无法访问。
-x:
删除用户。
-e
:使用户重新恢复权限。
-m
:加成信任主机账户
New SMB password:
Retype new SMB password:
unable to open passdb database.
Added user mary.
[root@localhost samba]# smbpasswd -a fred
//
设置
smb
用户
fred
的密码
New SMB password:
Retype new SMB password:
Added user fred.
[root@localhost samba]#
[root@localhost samba]# grep mary /etc/passwd
//
查看
mary
用户密码
,
如果将
:x:
中的
x
去掉,该用户就不要用密码,就可以登录了。
mary:x:501:501::/home/mary:/bin/bash
[root@localhost samba]# grep fred /etc/passwd
fred:x:502:502::/home/fred:/bin/bash
[root@localhost samba]# more /etc/samba/smbpasswd
//smb
用户的密码被加密保存在
/etc/samba/smbpasswd
文件中
将
Security=share
的级别修改为
security = user
,然后重启
smb
服务
在访问就会弹出一个连接到172.19.22.85的对话框,要求输入用户及密码
访问一次后,
mary
的用户和密码被系统记住了,如果在访问会直接跳到下面的界面。要想让目录可以读写,要同时满足两条件,一个是
smb.conf
配置权限设置,一个是目录权限设置
[root@localhost samba]# ls -ld /usr/somewhere/shared/
//
查看权限,其他用户是不可读写的
[root@localhost samba]# chmod o+rw /usr/somewhere/shared/
//
设置其它用户的权限为读写
[root@localhost samba]# ls -ld /usr/somewhere/shared/
//
查看修改的权限,其它用户是可读可写可执行
drwxr-xrwx 2 root root 4096 4
月
12 22:19 /usr/somewhere/shared/
//
用
fred
用户登录的,如果以前做的是服务器记住访问用户,当重启
Linux
系统后就用
fred
用户登录
//
可读可写可了
练习security=user
安全级别。
设一个简单的共享。
编辑
samba
主配置文件
/etc/samba/smb.conf
[root@localhost root]# cd /etc/samba
//
切换到
/etc/samba
目录
[root@localhost samba]# mv smb.conf smb.conf.bak
//
将
smb.conf
改名为
smb.conf.bak
,进行备份
[root@localhost samba]# grep -v "#" smb.conf.bak > ./smb.conf
//
去掉
smb.conf.bak
文件以“
#
”开头的说明信息,显现剩下的内容重定向导到当前目录的
smb.conf
文件中
[root@localhost samba]# vim smb.conf
//
打开编辑
smb.conf
文件
[redhat] //
共享目录名为
redhat
comment=redhat is share directory //
说明
redhat
是一个共享目录
path=/mnt/share //
共享目录的路径
valid users = redhat @root //
只用
redhat
用户及
root
超级用户可以访问
wirte list = redhat //
只有
redhat
用户有写的权限
writable = yes //
说明目录是可写的
public = no //
是否是公用的
printable = yes //
是否可以打印
create mode = 0664 //
创建文件后,文件的权限
directory mode = 0775 //
创建目录后,目录的权限
然后保存退出。
[root@localhost samba]# useradd redhat
//
创建一个
redhat
用户
[root@localhost samba]# smbpasswd -a redhat
//
对
redhat
添加
smb
密码,与
passwd redhat
没有关系呀,这个是登陆本机用户密码。
[root@localhost samba]#smbpasswd -a root
//
给
root
用户添加
smb
密码。
[root@localhost samba]# mkdir -p /mnt/share
//
创建路径目录,如果
/mnt
不存在,同时创建。
[root@localhost samba]#chmod 0777 /mnt/share
//
给用户添加,当前用户,组,及其他用户,对目录
/mnt/share
有读写执行的权限。
[root@localhost samba]# service smb restart
//
重启
smb
服务,让配置文件重新加载
最好在
win7
进行访问
,win+R
(开始
--
运行):
\\IP
(
linux
下的
IP
地址)回车。
用户输入
:redhat
密码
:***
(你设置的
redhat
的
smb
密码)
打完收工!!!
本文转自 chen138 51CTO博客,原文链接:http://blog.51cto.com/chenboqiang/297091,如需转载请自行联系原作者