`
deepfuture
  • 浏览: 4332196 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:79402
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:68349
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:101473
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:281118
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:14595
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:65542
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:31309
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45189
社区版块
存档分类
最新评论

ubuntu-安装samba

阅读更多

 

每个windows客户端用户必须有一个对应的LINUX帐户,SAMBA使用UID/GID来完成这种帐号的映射,Samba用户的UID是与Linux系统用户的UID一一对应的。

必须首先存在一个Linux系统用户,才能为他增加一个Samba帐号,每个Samba用户在Linux上的权限,最终由这个帐号对应的Linux用户所决定 。

 

root@ubuntu-sv:/usr# mkdir tmp

root@ubuntu-sv:/usr/tmp# wget http://samba.org/samba/ftp/rc/samba-3.5.0rc2.tar.gz
--2010-02-16 20:01:44--  http://samba.org/samba/ftp/rc/samba-3.5.0rc2.tar.gz
Resolving samba.org... 216.83.154.106
Connecting to samba.org|216.83.154.106|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 30734155 (29M) [application/x-gzip]
Saving to: `samba-3.5.0rc2.tar.gz'

100%[======================================>] 30,734,155   231K/s   in 2m 14s 

2010-02-16 20:03:58 (224 KB/s) - `samba-3.5.0rc2.tar.gz' saved [30734155/30734155]

root@ubuntu-sv:/usr#

root@ubuntu-sv:/usr/tmp# wget http://nchc.dl.sourceforge.net/project/openantivirus/samba-vscan/0.3.6/samba-vscan-0.3.6.tar.bz2
--2010-02-17 12:35:45--  http://nchc.dl.sourceforge.net/project/openantivirus/samba-vscan/0.3.6/samba-vscan-0.3.6.tar.bz2
Resolving nchc.dl.sourceforge.net... 211.79.60.17, 2001:e10:ffff:1f02::17
Connecting to nchc.dl.sourceforge.net|211.79.60.17|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 166733 (163K) [application/x-bzip2]
Saving to: `samba-vscan-0.3.6.tar.bz2'

100%[===================================================================================>] 166,733      110K/s   in 1.5s   

2010-02-17 12:35:50 (110 KB/s) - `samba-vscan-0.3.6.tar.bz2' saved [166733/166733]

root@ubuntu-sv:/usr/tmp# tar -xf samba-vscan-0.3.6.tar.bz2

root@ubuntu-sv:/usr/tmp/samba-vscan-0.3.6# apt-get install gcc
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
将会安装下列额外的软件包:
  binutils cpp-4.4 gcc-4.4 gcc-4.4-base libc-bin libc-dev-bin libc6 libc6-dev libgcc1 libgomp1 libstdc++6 linux-libc-dev
建议安装的软件包:
  binutils-doc gcc-4.4-locales gcc-multilib manpages-dev autoconf automake1.9 libtool flex bison gdb gcc-doc
  gcc-4.4-multilib libmudflap0-4.4-dev gcc-4.4-doc libgcc1-dbg libgomp1-dbg libmudflap0-dbg libcloog-ppl0 libppl-c2 libppl7
  glibc-doc
下列【新】软件包将被安装:
  binutils gcc gcc-4.4 libc-dev-bin libc6-dev libgomp1 linux-libc-dev
下列的软件包将被升级:
  cpp-4.4 gcc-4.4-base libc-bin libc6 libgcc1 libstdc++6
共升级了 6 个软件包,新安装了 7 个软件包,要卸载 0 个软件包,有 54 个软件未被升级。
需要下载 17.6MB 的软件包。
解压缩后会消耗掉 31.7MB 的额外空间。
您希望继续执行吗?[Y/n]y

root@ubuntu-sv:/usr/tmp# tar -xf samba-3.5.0rc2.tar.gz

root@ubuntu-sv:/usr/tmp/samba-3.5.0rc2# apt-get install libcups2-dev libldap2-dev libkrb5-dev libpam0g-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
将会安装下列额外的软件包:
  comerr-dev libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libgcrypt11-dev libgnutls-dev libgpg-error-dev
  libgssapi-krb5-2 libgssrpc4 libk5crypto3 libkadm5srv6 libkdb5-4 libkrb5-3 libkrb5support0 libtasn1-3-dev zlib1g-dev
建议安装的软件包:
  doc-base cups-common libgcrypt11-doc gnutls-doc gnutls-bin guile-gnutls krb5-doc krb5-user
下列【新】软件包将被安装:
  comerr-dev libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libcups2-dev libgcrypt11-dev libgnutls-dev
  libgpg-error-dev libgssrpc4 libkadm5srv6 libkdb5-4 libkrb5-dev libldap2-dev libpam0g-dev libtasn1-3-dev zlib1g-dev
下列的软件包将被升级:
  libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0
共升级了 4 个软件包,新安装了 17 个软件包,要卸载 0 个软件包,有 50 个软件未被升级。
需要下载 4,022kB 的软件包。
解压缩后会消耗掉 11.6MB 的额外空间。
您希望继续执行吗?[Y/n]

 

root@ubuntu-sv:/usr/tmp/samba-3.5.0rc2#cd source3

 

root@ubuntu-sv:/usr/tmp/samba-3.5.0rc2/source3# ./configure --prefix=/usr/local/samba --enable-cups --with-ads --with-ldap --with-pam --with-quotas --with-utmp --with-acl-support --with-aio-support --with-winbind

--with-utmp表示开户utmp审计

--enable-cups 表示开启CUPS打印系统

--with-ads 表示开启微软active directory

--with-quotas 支持磁盘限额

--with-aio-support 支持异步IO

root@ubuntu-sv:/usr/tmp/samba-3.5.0rc2/source3# make

root@ubuntu-sv:/usr/tmp/samba-3.5.0rc2/source3# make install

root@ubuntu-sv:/usr/tmp/samba-3.5.0rc2/source3# cp /usr/tmp/samba-3.5.0rc2/examples/tridge/smb.conf /usr/local/samba/lib/smb.conf

建立2个用户(df和lx,属于smbusers用户组)

root@ubuntu-sv:/home# groupadd smbusers

root@ubuntu-sv:/home# useradd -m  -s /bin/false df

ubuntu-sv:/home# useradd -m  -s /bin/false lx

root@ubuntu-sv:/home# usermod -G smbusers df

root@ubuntu-sv:/home# usermod -G smbusers lx

 root@ubuntu-sv:/# cd home
root@ubuntu-sv:/home# mkdir smbsv

root@ubuntu-sv:/home# useradd -m  -s /bin/false myguest

root@ubuntu-sv:/home# cd smbsv

建立public目录,myguest用户都可以读写文件

root@ubuntu-sv:/home/smbsv# mkdir public

建立sharefiles目录,smbusers用户组中的任何用户可以读和写自己的文件,只能读其他人的文件
root@ubuntu-sv:/home/smbsv# mkdir sharefiles

还有一个mydoc,用户的私有空间(这个就是每个用户的HOME目录下的子目录 )

root@ubuntu-sv:/home/smbsv# smbpasswd -a lx

root@ubuntu-sv:/home/smbsv# smbpasswd -a df

root@ubuntu-sv:/home/smbsv# smbpasswd -a myguest

 

设置文件权限属性 

root@ubuntu-sv:/home/smbsv# chgrp myguest public

root@ubuntu-sv:/home/smbsv# chown myguest public

root@ubuntu-sv:/home/smbsv# chmod 755 public

root@ubuntu-sv:/home/smbsv# chgrp smbusers sharefiles
root@ubuntu-sv:/home/smbsv# chown df sharefiles
root@ubuntu-sv:/home/smbsv# chmod 775 sharefiles
root@ubuntu-sv:/cdrom#

编辑/usr/local/samba/lib/smb.conf(并且加上mydoc的文件删除后不物理删除,而是放在.recycle_files的隐含目录中)

root@ubuntu-sv:/# cat /usr/local/samba/lib/smb.conf
[global]  
   config file = /usr/local/samba/lib/smb.conf.%m
   security = user
   encrypt passwords = yes
   server string = Welcome to deepfuture server ! (%v,%h)
   load printers = yes
   log level = 1
   log file = /usr/local/samba/var/log.%m
   hosts allow = 192.168.1. 127.0.0.1
   password level = 0
   auto services = df
   message command = csh -c '/usr/bin/X11/xedit -display :0 %s;rm %s' &
   socket options = TCP_NODELAY
   share modes = yes
   locking = yes
   strict locking = yes
   keepalive = 30
   include = /usr/local/samba/lib/smb.conf.%m
   include = /usr/local/samba/lib/smb.conf.%a
   unix charset=gb2312
   dos charset=cp936
   netbios name =DPF

 

[sharedoc]
   comment=sharedoc
   path=/home/smbsv/sharefiles
   read only = no
   valid users=@smbusers
   create mask = 0755
   vfs object=recycle
   recycle:repository=.recycle_files

[publicdoc]
   comment=publicdoc
   path=/home/smbsv/public
   read only= no
   valid users=myguest
   create mask=0775

[mydoc]
   comment=mydoc
   path=/home/%U
   guest ok = no
   read only = no
   invalid users=myguest
root@ubuntu-sv:/#

 

在sharedoc中删除文件后,可以看到.recycle_files自动建立了,并且删除的文件都在这里

root@ubuntu-sv:/home/smbsv/sharefiles# ls -a
.  ..  dd-df  .recycle_files
root@ubuntu-sv:/home/smbsv/sharefiles# cd .recycle_files
root@ubuntu-sv:/home/smbsv/sharefiles/.recycle_files# ls -l
total 8
-rwxr--r-- 1 lx lx  5 2010-02-18 17:04 lx.txt
-rwxr--r-- 1 lx lx 10 2010-02-18 17:24 ??????.txt
root@ubuntu-sv:/home/smbsv/sharefiles/.recycle_files#

运行发现有以下错误

root@ubuntu-sv:/usr/local/samba/bin# smbd
smbd: error while loading shared libraries: libwbclient.so.0: cannot open shared object file: No such

原因在于:

LD_LIBRARY_PATH

  Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。(该路径在默认路径之前查找)
  移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中。
  当执行函数动态链接.so时,如果此文件不在缺省目录下‘/usr/local/lib’ and ‘/usr/lib’.
  那么就需要指定环境变量LD_LIBRARY_PATH
  假如现在需要在已有的环境变量上添加新的路径名,则采用如下方式:
  LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH.(newdirs是新的路径串)
  (注:gnu系统可以自动添加在 /etc/ld.so.conf文件中来实现环境变量的设置)
修改后,/etc/environment应如下内容:

root@ubuntu-sv:/usr/local/samba/bin# cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java/bin:/usr/local/samba/bin:

/usr/local/samba/sbin"
CLASSPATH=/usr/lib/jvm/java/lib
JAVAHOME=/usr/lib/jvm/java/
LD_LIBRARY_PATH=/usr/local/samba/lib

还有一个错误要注意:

不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连

 

C:\Documents and Settings\Administrator>net use * /del
您有以下的远程连接:

\\192.168.0.250\zhangjm
继续运行会取消连接。

是否继续此操作? (Y/N) [N]:

选择y 。

事实上这个不是samba的限制。
是Windows的限制。
始终要用public=yes的话,上面的方法都不能有效解决,因为:
在打开存在public=yes的samba服务器时,如果首先点击了有public=yes的共享资源的时候,widows会用默认的用户名去连接服务器,一般就是windows的登录名(可以在服务器端查看到的),这时候,再去点击没有public=yes的共享资源,由于使用了user级别,服务器就会要求验证,这时,之前的默认登录已经存在,就出现故障了。即使注销连接后如果没有采用正确的顺序访问共享资源,还是会陷入这个泥潭中。
因此,最好办法就是不用public=yes,给公共帐号建立一个共用的账户并公示出来。这样处理,其实权限更清晰一些。

分享到:
评论
1 楼 ygswine 2014-03-31  
很复杂,看不懂

相关推荐

Global site tag (gtag.js) - Google Analytics