rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 应用技术 » Samba

纠结的SAMBA

源码安装samba的详细过程。
题外话:去书城转了一圈,所有的linux书所讲解的都是rmp安装,或者最狗屁的yum在线安装。并且所有的linux书的目录大多相同。实乃天下文章一大抄。
此问题纠结我长达一个星期之久,我对linux的基本命令不算是完全掌握,个人认为单独的去学习枯燥的命令并没有很好的效果,在简单学习了一部分命令后就开始了samba的
源码安装 架设。期间碰到问题时在去解决,遇到不理解的命令再去查找。个人认为这种方式比较好些。

本篇内容的形成,也是参考了众多的资料修改润色而成,欢迎转载,但请切勿注明转自何处。

基于vmware构架的samba服务器。首先可以通过基于vmware的XP来确定你的本机和网络是否相通。

首先可以通过U盘将源文件copy至服务器,现在的linux都已经可以支持U盘的即插即用,mount挂载命令用处已经不大。

cp /media/disk
在这里可以发现U盘,可以将源文件拷出。不过似乎需要进入图形界面后才能认出。
这里采用的是samba-3.3.2.tar.gz,这里要注意,linux不要采用最新版的软件,最新版的samba目录下有source3 和source4两个文件夹,又都可以进行正常安装,在这里我用了两
三天的时间,硬着头皮去看全英文的readme.去看howto4.去看howto4.pdf.但是关于源码安装讲的也不是很详细。并且我只想能让samba能用,不想太过于去关注其它。所以最终决

定采用较低的版本。

这并不是一个最终完成版的安装过程,有的资料还没做最终整理,昨晚做到1点,今天终于做好了。
磨刀不误破柴工,如果不是vmware的centos运行如此之慢,也不至于如此。所以今晚剩余时间重新装一下centos。

好的,现在写安装过程。

1:tar -xzvf  samba.tar.gz      解压文件。创建文件:tar -xcvf samba.tar.gz

2:cd samba                                进入目录

3:find /var/samba -name configure   找configure文件在哪里。

4:cd source

5: ./configure && make && make install 解释:&&只有上一条命令顺利执行完成后才会执行下一条命令。

6:将/etc/ld.so.conf 中加入 /usr/local/samba/lib 然后运行 ldconfig, 源码安装需要手动挂载lib库。在这里许多人栽了跟斗。

 
7:/usr/local/samba/sbin/smbd -D   /usr/local/samba/sbin/nmbd -D  启动samba服务。

8:#ps -aux | grep smb
ps -aux |grep nmb

[root@localhost home]# ps -aux | grep smb
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
root      1145  0.0  0.6  14980  2628 ?        Ss   12:42   0:00 /usr/local/samba/sbin/smbd -D
root      1146  0.0  0.2  14980   984 ?        S    12:42   0:00 /usr/local/samba/sbin/smbd -D
root      1178  0.0  0.1   3888   680 pts/0    S+   12:42   0:00 grep smb

[root@localhost home]# ps -aux | grep nmb
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
root      1143  0.0  0.3  10564  1492 ?        Ss   12:42   0:00 /usr/local/samba/sbin/nmbd -D
root      1180  0.0  0.1   3892   684 pts/0    S+   12:42   0:00 grep nmb

这是一个服务已经正常启动的例子。

9: 自启动:
echo "/usr/local/samba/sbin/smbd start" >>/etc/rc.d/rc.local     
echo "/usr/local/samba/sbin/nmbd start " >>/etc/rc.d/rc.local

此处也可以通过vi rc.local来做自启动,另需要注意,网上的不少文档此处写的是/etc/rc.local.是错误的。

10:cp samba/examples/smb.conf.default  /usr/local/samba/lib/smb.conf
   我看过的所有的关于samba的文档全部有这条命令,而我在进行testparm进行测试samba的时候,加载smb.conf的路径确明显是
 显示/etc/samba/smb.conf,因此个人认为这样写的,全是错的。

至此,samba的源码安装就告一段落。剩下的就是配置smb.conf了。

11:vi /etc/samba/smb.conf

mkdir linuxsir
mkdir sir01 sir02 sir03 sir04 sirshare sir0104rw sirallrw

/opt/linuxsir 这是管理员目录,负责管理其下所有目录;
/opt/linuxsir/sir01 是sir01的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;
/opt/linuxsir/sir02 是sir02的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;
/opt/linuxsir/sir03 是sir03的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;
/opt/linuxsir/sir04 是sir04的家目录,用于私用,除了用户本身和linuxsir以外其它用户都是不可读不可写;
/opt/linuxsir/sirshare 所用用户(除了linuxsir有权限写入外)只读目录
/opt/linuxsir/sir0104rw 是用于sir01到sir04用户可读可写共用目录,但匿名用户不能读写;
/opt/linuxsir/sirallrw 用于所有用户(包括匿名用户)的可读可写;

[root@localhost ~]# /usr/sbin/groupadd linuxsir
[root@localhost ~]# /usr/sbin/groupadd sir01
[root@localhost ~]# /usr/sbin/groupadd sir02
[root@localhost ~]# /usr/sbin/groupadd sir03
[root@localhost ~]# /usr/sbin/groupadd sir04
[root@localhost ~]# /usr/sbin/groupadd sir0104

[root@cuc03 ~]# adduser -g sir01 -G sir0104 -d /var/samba/linuxsir/sir01 -s /sbin/nologin sir01

用户sir01 添加到sir01组和 sir0104 组,且指定目录,并且禁止本地登录。

[root@cuc03 ~]# adduser -g sir02 -G sir0104 -d /var/samba/linuxsir/sir02 -s /sbin/nologin sir02

[root@cuc03 ~]# useradd -g sir03 -G sir0104 -d /var/samba/linuxsir/sir03 -s /sbin/nologin sir03

[root@cuc03 ~]# adduser -g sir04 -G sir0104 -d /var/samba/linuxsir/sir04 -s /sbin/nologin sir04

[root@cuc03 ~]# adduser -g linuxsir -d /var/samba/linuxsir -G linuxsir,sir01,sir02,sir03,sir04,sir0104 -d /var/samba/linuxsir -s /sbin/nologin linuxsir

more /etc/passwd

smbpasswd -a linuxsir

[root@cl samba]# ls -ld linuxsir/
drwxr-xr-x 9 root root 4096 07-07 11:22 linuxsir/

[root@cuc03 ~]# chmod 755 /opt/linuxsir   保证此文件夹用户所有者权限为7,其用户权限为rx ,用以确定其它用户有进入此目录的权限。

[root@cl samba]# chmod 755 linuxsir/
[root@cl samba]# ls -ld linuxsir/
drwxr-xr-x 9 root root 4096 07-07 11:22 linuxsir/

[root@cuc03 ~]# chown  linuxsir:linuxsir /opt/linuxsir  更改文件假用户所有者。

[root@cl samba]# chown linuxsir:linuxsir linuxsir/
[root@cl samba]# ls -ld linuxsir/
drwxr-xr-x 9 linuxsir linuxsir 4096 07-07 11:22 linuxsir/

[root@cl linuxsir]# ls -l

drwxr-xr-x 2 root root 4096 07-07 11:22 sir01
drwxr-xr-x 2 root root 4096 07-07 11:22 sir0104rw
drwxr-xr-x 2 root root 4096 07-07 11:22 sir02
drwxr-xr-x 2 root root 4096 07-07 11:22 sir03
drwxr-xr-x 2 root root 4096 07-07 11:22 sir04
drwxr-xr-x 2 root root 4096 07-07 11:22 sirallrw
drwxr-xr-x 2 root root 4096 07-07 11:22 sirshare

[root@cuc03 ~]# cd /opt/linuxsir
[root@cuc03 ~]# chmod 2770 sir0*                   

[root@cl linuxsir]# chmod 2770 sir0* 等价于chomod g+s sir0*
[root@cl linuxsir]# ls -l

drwxrws--- 2 root root 4096 07-07 11:22 sir01    组权限加了一个W是因为7的缘故。
drwxrws--- 2 root root 4096 07-07 11:22 sir0104rw
drwxrws--- 2 root root 4096 07-07 11:22 sir02
drwxrws--- 2 root root 4096 07-07 11:22 sir03
drwxrws--- 2 root root 4096 07-07 11:22 sir04
drwxr-xr-x 2 root root 4096 07-07 11:22 sirallrw
drwxr-xr-x 2 root root 4096 07-07 11:22 sirshare

[root@cuc03 ~]# chown sir01.linuxsir sir01

[root@cuc03 ~]# chown sir02.linuxsir sir02

[root@cuc03 ~]# chown sir03.linuxsir sir03

[root@cuc03 ~]# chown sir04.linuxsir sir04

[root@cuc03 ~]# chown linuxsir.sir0104 sir0104rw

[root@cl linuxsir]# ls -l

drwxrws--- 2 sir01    linuxsir 4096 07-07 11:22 sir01      用户sir01,  用户组linuxsir具有全部权限。注:linuxsir用户组中含用户linuxsir.
drwxrws--- 2 linuxsir sir0104  4096 07-07 11:22 sir0104rw 用户linuxsir,用户组sir0104 具有全部权限。注:sir0104组含sir01--sir04用户。
drwxrws--- 2 sir02    linuxsir 4096 07-07 11:22 sir02    用户sir02,  用户组linuxsir具有全部权限。注:linuxsir用户组中含用户linuxsir.
drwxrws--- 2 sir03    linuxsir 4096 07-07 11:22 sir03   用户sir03,  用户组linuxsir具有全部权限。注:linuxsir用户组中含用户linuxsir.
drwxrws--- 2 sir04    linuxsir 4096 07-07 11:22 sir04   用户sir04,  用户组linuxsir具有全部权限。注:linuxsir用户组中含用户linuxsir.

drwxr-xr-x 2 root     root     4096 07-07 11:22 sirallrw
drwxr-xr-x 2 root     root     4096 07-07 11:22 sirshare

[root@cuc03 ~]# chown linuxsir.linuxsir sirshare
[root@cuc03 ~]# chmod 755 sirshare                     sirshare文件夹只有 用户linuxsir具有全部权限,并是文件夹拥有者,其他用户只有读权限

------------------------------------
[root@cl linuxsir]# chown linuxsir.linuxsir sirshare
[root@cl linuxsir]# chmod 755 sirshare
[root@cl linuxsir]# ls -l

drwxrws--- 2 sir01    linuxsir 4096 07-07 11:22 sir01
drwxrws--- 2 linuxsir sir0104  4096 07-07 11:22 sir0104rw
drwxrws--- 2 sir02    linuxsir 4096 07-07 11:22 sir02
drwxrws--- 2 sir03    linuxsir 4096 07-07 11:22 sir03
drwxrws--- 2 sir04    linuxsir 4096 07-07 11:22 sir04
drwxr-xr-x 2 root     root     4096 07-07 11:22 sirallrw
drwxr-xr-x 2 linuxsir linuxsir 4096 07-07 11:22 sirshare [root@cuc03 ~]# chown linuxsir:linuxsir sirallrw
[root@cuc03 ~]# chmod 3777 sirallrw              这个三应改是代表着2+1,即组id和防删除位。

[root@cl linuxsir]# chown linuxsir:linuxsir sirallrw
[root@cl linuxsir]# chmod 3777 sirallrw
[root@cl linuxsir]# ls -l

drwxrws--- 2 sir01    linuxsir 4096 07-07 11:22 sir01
drwxrws--- 2 linuxsir sir0104  4096 07-07 11:22 sir0104rw
drwxrws--- 2 sir02    linuxsir 4096 07-07 11:22 sir02
drwxrws--- 2 sir03    linuxsir 4096 07-07 11:22 sir03
drwxrws--- 2 sir04    linuxsir 4096 07-07 11:22 sir04
drwxrwsrwt 2 linuxsir linuxsir 4096 07-07 11:22 sirallrw
drwxr-xr-x 2 linuxsir linuxsir 4096 07-07 11:22 sirshare

[linuxsir]
   comment = linuxsiradmin
   path = /var/samba/linuxsir
   create mask = 0664
   directory mask = 0775
   browseable = yes
   writable = yes
   valid users = linuxsir

[sirshare]
   comment = sirshare
   path = /var/samba/linuxsir/sirshare
   browseable = yes
   writable = yes
   guest ok = yes

[sirallrw]
   comment = sirallrw
   path = /var/samba/linuxsir/sirallrw
   browseable = yes
   writable = yes
   guest ok = yes

[sir0104rw]
   comment = sir0104rw
   path = /var/samba/linuxsir/sir0104rw
   create mask = 0664
   directory mask = 0775
   browseable = yes
   writable = yes
   valid users = linuxsir,@sir0104rw

[sir01]
   comment = sir01
   path = /var/samba/linuxsir/sir01
   create mask = 0664
   directory mask = 0775
   browseable = yes
   writable = yes
   valid users = sir01,@sir0104rw
[sir02]
   comment = sir02
   path = /var/samba/linuxsir/sir02
   create mask = 0664
   directory mask = 0775
   browseable = yes
   writable = yes
   valid users = sir02,@sir0104rw

[sir03]
   comment = sir03
   path = /var/samba/linuxsir/sir03
   create mask = 0664
   directory mask = 0775
   browseable = yes
   writable = yes
   valid users = sir03,@sir0104rw

[sir04]
   comment = sir04
   path = /var/samba/linuxsir/sir04
   create mask = 0664
   directory mask = 0775
   browseable = yes
   writable = yes
   valid users = sir04,@sir0104rw

--------------------------------------- 一:
./configure --help
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
  --cache-file=FILE       cache test results in FILE
  --help                  print this message
  --no-create             do not create output files
  --quiet, --silent       do not print `checking...' messages
  --version               print the version of autoconf that created configure
Directory and file names:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local/samba]
此处可以看到默认的安装路径。

二:另外一个例子。

vi ese u   /

groupadd sales
groupadd tech
useradd -g sales -s /bin/false tom
useradd -g sales -s /bin/false jack
useradd -g tech -s /bin/false red
useradd -g tech -s /bin/flase blue

groupadd finance
groupadd ceo
useradd -g finance -s /bin/false money
useradd -g ceo -s /bin/flase master

for user in tom jack red blue money master

123
[sales]
       path = /home/sales
       comment = sales
       public = no
       valid user = @sales
       write list = @sales
       create mask = 0770
       directory mask = 0770
[tech]
       path = /home/tech
       comment = tech
       public = no
       valid users = @tech
       write list = @tech
       create mask = 0770
       directory mask = 0770

三:另一个例子。
groupadd caiwu
groupadd network
groupadd lingdao
useradd caiwu01 -g caiwu
useradd caiwu02 -g caiwu
useradd network01 -g network
useradd network02 -g network
useradd lingdao01 -g lingdao
useradd lingdao02 -g lingdao

smbpasswd -a caiwu01
smbpasswd -a caiwu02
smbpasswd -a network01
smbpasswd -a network02
smbpasswd -a lingdao01
smbpasswd -a lingdao02

mkdir /home/samba
mkdir /home/samba/caiwu
mkdir /home/samba/lingdao
mkdir /home/samba/exchange
mkdir /home/samba/public

cd /home
chmod 777 *

[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S

[caiwu]
comment = caiwu
path = /home/samba/caiwu
public = no
valid users = @caiwu,@lingdao,network02
write list = caiwu01
printable = no

[lingdao]
comment = lingdao
path = /home/samba/lingdao
public = no
browseable = no
valid users = @lingdao,network02
printable = no

[exchage]
comment = Exchange File Directory
path = /home/samba/exchange
public = yes
writable = yes

[public]
comment = Read Only Public
path = /home/samba/public
public = yes
read only = yes

四:3、配置smb.conf
#vi smb.conf workgroup=workgroup(我的windows机子的工作组名,有三台win机,都是"workgroup" 工作组)
增加:unix charset=cp936
dos charset=cp936
display charset=cp936
; 这三条设置的目的是在win机上使用“网络邻居“共享到linux上的文件夹和文件时,显示汉字。

、增加smb用户
一般linux机子上都有很多用户,比如有一个用户名是bill,那么:/usr/local/samba/bin/smbpasswd -a bill,就把bill增加为smb用户了。
5、启动smb服务
#service iptables stop
#service network restart
#/usr/local/samba/sbin/smbd -D
#/usr/local/samba/sbin/nmbd -D

               
6:
 使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容。   方法如下:
  1、命令模式下输入“/字符串”,例如“/Section 3”。
  2、如果查找下一个,按“n”即可

7:1)samba用户管理使用smbpasswd和pdbedit命令
(2)samba认证使用的用户和组首先要在本地系统中存在
(3)samba只存储独立于本地系统的用户和口令信息,组则使用本地系统的组信息
可以使用pdbedit -L列出现有samba用户清单, 如果清单中有新加入的用户名, 则说明用户 8:通过netstat -an看到服务端口已处理监听状态

顶一下
(0)
踩一下
(0)