1、安装samba
sudo apt-get install samba-common samba samba-client system-config-samba
2. 添加一个匿名共享
sudo system-config-samba
添加共享目录,由于没添加samba用户,就设置成所有用户都可访问。
3. 添加用户
添加系统用户
sudo groupadd sambausers
sudo useradd -g sambausers -s /sbin/nologin -d /dev/null smbadmin
添加samba用户
sudo smbpasswd -a smbadmin
删除samba用户
sudo smbpasswd -x smbadmin
4. 这时可添加带用户名密码的共享了
5. 测试共享
匿名用户登陆测试:
sudo smbclient //192.168.1.4 -N
可用ls 列举文件,可用命令get name_from name_to获得文件
带用户名测试
sudo smbclient //192.168.1.4 -U smbadmin
5. 如遇到错误 "NT_STATUS_ACCESS_DENIED "
可将共享的文件夹改成smbguest用户拥有,或要访问的用户拥有,命令:
sudo chown smbadmin:smbusers shrefolder
同时在共享的目录链上,也应确保samba用户有访问权限。
确保访问权限:
sudo chown 777 folder_name
附1:
Samba如何用户共享目录
在smb.conf配置文件中,用户共享目录段(Share Definitions)主要用来设置Samba双线虚拟主机服务器的共享资源。如果用户想要发布共享资源,就需要对Share Definitions中的部分配置段进行配置。Share Definitions字段非常丰富,其配置也相当灵活。
用户主目录是Samba为每个Samba用户提供的共享目录,只有用户本身可以使用。默认情况下,用户主目录位于/home目录下,每个Linux用户有一个以用户名命名的子目录。
另外,对用户共享目录段(Share Definitions)的设置是针对共享目录中的个别部分进行的设置,只对当前的共享资源起作用。
在[home]配置段中可以有多个字段,如图中的[Profiles]配置段其实就是指定共享名,也就是从网上邻居中看到的文件夹名称,不论是[home]配置段还是各个字段共享文件,都可以使用如下所示的命令参数来设置共享资源。
comment定义说明文字,当一个客户端列出服务器上的共享资源时,comment指令定义的文字将出现在共享名的旁边.
path指定共享的路径.
comment注释说明.
path分享资源的完整路径名称,除了路径要正确外,目录的权限也要设置正确.例如,可以指定path=/data/%m,这样如果一台计算机的NetBIOS名称是host,那么它访问一个共享文件(如soft)时将进入data/host目录,而NetBIOS名称是Yl的计算机则进入/data/yl目录.
browseable是(yes )/否(no)在浏览资源时显示共享目录,若为否(no)则必须指定共享路径才能够进行存取操作.
printable是( yes )/否(no)允许打印.
hide dot files是(yes )/否(no)不显示隐藏文件.
public是(yes )/否(no)让可以登录的用户看到共享目录.
guest ok是(yes )/否(no)公开共享,若为no,则进行身份验证(只有当security = share时,此选项才起作用).
read only是(yes )/否(no)以只读方式共享,当与writable发生冲突时以writable为准。
writable是(yes )/否(no)不以只读方式共享,当与read only发生冲突时,忽略read only.
valid users设定只有此名单内的用户才能够访问共享资源(拒绝优先).
invalid users设定此名单内的用户不能访问共享资源(拒绝优先).
read list设定此名单内的成员为只读.
write list如果设定为只读,则只有设定的write list内的成员才可做写入动作.
create mode建立文件时分配的权限。
directly mode建立目录时分配的权限.
force group指定存取资源时必须以此设定的群组使用者进入才能进行存取操作.
force user指定存取资源时必须以此设定使用者进入才能进行存取操作。
valid users指定共享资源的有效用户,即允许访问资源的用户,存在多个用户时需 使用逗号“,”隔开.例如,设置允许host和somboy对资源的访问,即“valid users = host, somboy"。
wide links是否允许共享外符号连接,例如共享资源中有个连接指向非共享资源的文件或目录,如果设置该选项为“no",就无法访问这些连接的内容.
sync always对该共享资源进行写操作后是否进行同步操作.
max connection设置同时连接数.如设置最大连接数为20,可以使用语句“max connection=20"。
admin users该参数用来赋予用户对共享资源的管理员权限,也就是说这些用户可以使用root身份对所有文件进行操作,但这仅局限于共享资源上.因此,该参数的设置要慎用,因为任何这样的用户都可以对共享上的文件进行随意操作,将带来安全隐患.其默认值为"no".例如,设置用户host为共享资源的管理员,可以使用“admin user = host"语句.
在Share Definitions部分的第一行是[homes],它是特殊的行,这里的名字不能改变。[homes〕共享目录并不特指具体的共享目录,而是表示Samba用户的主目录,即Samba用户登录后可以访问同名系统用户主目录中的内容.
下面以一个实例来简单说明如何共享目录。例如,Samba服务器中有个目录为/soft,在此需要发布该目录成为共享目录,并定义共享名为public。
附2:
iptables 设置
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 137 -j ACCEPT
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 138 -j ACCEPT
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 139 -j ACCEPT
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 445 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 137 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 138 -j ACCEPT