首先需要修改IPV6的默认属性,UNBUNTU12.04默认使用了IPV6,这样在局域网中PING不到该台主机
Ubuntu 设置ipv4
主要是编辑/etc/network/interfaces和/etc/resolv.conf这两个文件,前者设置了ip地址、网关、子网掩码,后者设置dns等属性
示例(参考http://linux.chinaunix.net/techdoc/net/2008/04/05/989425.shtml):
1. 以DHCP方式配置网卡
编辑文件/etc/network/interfaces:
cp /etc/network/interfaces /etc/network/interfaces.bk(备份一下)
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface - use DHCP to find our address
auto eth0
iface eth0 inet dhcp
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
也可以在命令行下直接输入下面的命令来获取地址
sudo dhclient eth0
本人补充:
ifconfig eth0 命令察看IP地址

2. 为网卡配置静态IP地址
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.3.90
gateway 192.168.3.1
netmask 255.255.255.0
#network 192.168.3.0
#broadcast 192.168.3.255
将上面的ip地址等信息换成你自己就可以了.用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
3. 设定第二个IP地址(虚拟IP地址)
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
在该文件中添加如下的行:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.60
netmask 255.255.255.0
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x
根据你的情况填上所有诸如address,netmask,network,broadcast和gateways等信息.
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
4. 配置DNS
首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询.
要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf文件.
假设DNS服务器的IP地址是192.168.3.2, 那么/etc/resolv.conf文件的内容应为:
nameserver 192.168.3.2
按照以上方式成功设置IPV4以后,开始安装ubuntu samba服务(例子中的sam为用户名)
一. samba的安装:
sudo apt-get install samba
sudo apt-get install smbfs
二. 创建共享目录:
mkdir
/
home
/sam
/
share
sudo chmod
777
/
home
/sam
/
share
三. 创建Samba配置文件:
1. 保存现有的配置文件
sudo cp
/
etc
/
samba
/
smb.conf
/
etc
/
samba
/
smb.conf.bak
2. 修改现配置文件
sudo gedit
/
etc
/
samba
/
smb.conf
在smb.conf最后添加
[share]
path
=
/
home
/sam
/
share
available
=
yes
browsealbe
=
yes
public
=
yes
writable
=
yes
四. 创建samba帐户
sudo touch
/
etc
/
samba
/
smbpasswd
sudo smbpasswd
-
a sam(此处的用户必须是你已经在本机创建的用户,否则无效)
然后会要求你输入samba帐户的密码
[如果没有第四步,当你登录时会提示 session setup failed: NT_STATUS_LOGON_FAILURE]
五. 重启samba服务器
sudo
/
etc
/
init.d
/
smbd restart
六. 测试
smbclient
-
L
//
localhost/share

七,使用
可以到windows下输入ip使用了,在文件夹处输入
"
\\
"
+
"
Ubuntu机器的ip或主机名
"
+
"
\
"
+
"
share
"
参考文档
http://apps.hi.baidu.com/share/detail/31035795
Ubuntu下配置samba实现文件夹共享
后续补充:
1、启动Samba服务器后,可以使用ps命令查看进程:
ps -aux
可以看到Samba服务会同时启动两个服务,其中smbd主要用来管理共享出来的目录,nmbd主要用来解析NetBIOS名。在Windows系统中,主机可以被加入一个组中,这样每个主机都必须有一个名字,这个名字是用于在网上被标志的名,并非机器的主机名,将其称为NetBIOS名。其中nmbd进程是随着smbd进程启动而启动。
2、关闭Samba服务,使用命令:
#smbcontrol smbd shutdown -----------此命令只关闭smbd
用法: smbcontrol [OPTION...] <destination> <message-type> <parameters>
-t, --timeout=TIMEOUT Set timeout value in seconds
<destination> is one of "nmbd", "smbd", "winbindd" or a process ID
3、安装上文配置的实际上文件共享不要用户名登陆密码验证,我们来修改配置文件来达到这一目的
首先打开CONF配置文件
sudo gedit /etc/samba/smb.conf
将默认的 security = share改成security = user
还有将紧接着的passdb backend = tdbsam 改成 passdb backend = smbpasswd
将; valid users = %S
修改为 valid users = sam(sam就是你的添加的samba服务器用户名)
创建samba帐户(这一步和下一步不要认为是重复的,其实第一次执行的时候由于配置问题实际上是没有写入smbpasswd中的)
sudo touch
/
etc
/
samba
/
smbpasswd
sudo smbpasswd
-
a sam
然后会要求你输入samba帐户的密码
[如果没有第四步,当你登录时会提示 session setup failed: NT_STATUS_LOGON_FAILURE]

重启samba服务器
sudo
/
etc
/
init.d
/
smbd restart
好了 截至这一步 你已经成功可以用权限卡死共享访问目录了。
TIPS:
passdb backend = tdbsam
说明:passdb backend就是用户后台的意思。 目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security accountmanager(安全账户管理)的简写。 1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实 用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。 2.tdbsam:该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可以使用smbpasswd–a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的参数很多,我们列出几个主要的。 pdbedit –a username:新建Samba账户。 pdbedit –x username:删除Samba账户。 pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。 pdbedit –Lv:列出Samba用户列表的详细信息。 pdbedit –c “[D]” –u username:暂停该Samba用户的账号。 pdbedit –c “[]” –uusername:恢复该Samba用户的账号。 |
valid users = 允许访问该共享的用户
说明:valid users用来指定允许访问该共享资源的用户。
例如:valid users =bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)
invalid users = 禁止访问该共享的用户
说明:invalid users用来指定不允许访问该共享资源的用户。
例如:invalid users = root@bob(多个用户或者组中间用空格隔开。)
4、删除WINDOWS上的旧链接,当启动用户验证以后,只要登陆一下就可以一直访问该共享资源
在WINDOWS上输入net use * /delete
就可以删除当前的远程连接,这样再次访问这个资源就又需要输入用户名和验证码了。
参考:
http://blog.sina.com.cn/s/blog_6ee84ccc0100q2vu.html
201211030更新:
一个linux samba添加用户的脚本