Samba 安装、配置——可读 可写禁止删除
vi /etc/sysconfig/network
xxxx.server
vi /etc/hosts
127.0.0.1 xxx.server
yum install samba
setenforce 0
systemctl start smb
systemctl start nmb
systemctl enable smb
systemctl enable nmb
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
iptables -I INPUT -p tcp --dport 139 -j ACCEPT
/etc/init.d/iptables save
useradd xxx
userpasswd xxx
mkdir -m 1777 /home/share
pdbedit -a xxx
smbpasswd -a xxx
pdbedit -L
Samba 配置只能上传下载不能删除修改的方法
让上传的文件不能修改, 只需要让上传的文件的权限里不包含写权限即可.
要让文件不能删除, 则涉及到文件父目录的写权限问题, 但是不能直接关闭父目录的写权限, 因为这样就不能在该目录下上传文件了. 解决方法是在父目录上设置 t 标志位, 这用用户就不能删除这个目录下不属于自己的文件, 所以还需要设置文件的所有者不能是上传的用户, 将其设置为 root 即可.
综上, 首先对共享的根目录设置 1777 权限, 所有者为 root, 然后配置文件 /etc/samba/smb.conf 里面的设置:
[共享名]
inherit owner = Yes # 上传的文件继承父目录的所有者, 而不是使用登录的账号名, 这样上传的文件的所有者都是 root 了.
writable = Yes # 允许上传操作
create mask = 1774 # 上传的文件没有写权限
directory mask = 1777 # 上传的目录具有所有权限
force directory mode = 1000 # 上传的目录设置 t 标志
稍作修改, 去掉 inherit owner = Yes 即可让用户可以删除自己上传的文件, 不能删除其他用户创建的文件
vi /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = WORKGROUP #Workgroup win系统默认工作域
security = user
passdb backend = tdbsam
ntlm auth = yes #加此处
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S
browseable = NO
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[share] #共享的目录及配置
comment=this is Linux share directory
path=/home/share
inherit owner = yes
browsable = yes
writable=yes
read only = no
guest ok = no
create mask = 1774
directory mask = 1777
force directory mode = 1000
win7访问centos7 Samba的共享目录输入帐号和密码无法登陆解决方法:
Windows7无法正常访问NAS或者Samba服务器上的共享文件夹。原因在于从Vista开始,微软默认只采用NTLMv2协议的认证回应消息了,而目前的NAS系统和Samba还只支持LM或者NTLM。
解决办法:修改本地安全策略
通过Samba服务可以实现UNIX/Linux主机与Windows主机之间的资源互访,由于实验需要,轻车熟路的在linux下配置了samba服务,操作系统是redhat linux 9.0,但是在windows7下访问的时候问题就出现了,能够连接到服务器,但是输入密码的时候却给出密码出错,但确认密码没有错误。
1、这种情况看来是windows7的问题,解决的办法是:单击”开始“-“运行”,输入secpol.msc,打开“本地安全策略”,在本地安全策略窗口中依次打开“本地策略”-->“安全选项”,然后再右侧的列表中找到“网络安全:LAN管理器身份验证级别”,把这个选项的值改为“发送 LM 和 NTLM – 如果已协商,则使用 NTLMv2会话安全”,最后确定。
2、修改 /etc/samba/smb.conf,在Global项下增加 ntlm auth = yes 参数
systemctl restart smb
systemctl restart nmb