wget http://samba.org/samba/ftp/stable/samba-3.4.4.tar.gz
tar -xvf samba-3.4.4.tar.gz
cd samba-3.4.4/source3
./configure --prefix=/usr/local/samba
make
make install ----若出现以下表示安装成功
==============================================================
MO files for pam_winbind are installed.
==============================================================
==============================================================
All MO files for Samba are installed. You can use "make uninstall"
or "make uninstallmo" to remove them.
==============================================================
make installbin----若出现以下表示安装成功
======================================================================
The binaries are installed. You may restore the old binaries (if there
were any) using the command "make revert". You may uninstall the binaries
using the command "make uninstallbin" or "make uninstall" to uninstall
binaries, man pages and shell scripts.
======================================================================
cd .. //返回上级目录
cp examples/smb.conf.default /usr/local/samba/lib/smb.conf //复制配置文件到指定目录
-----------------------------------------------------------------------------
启动和关闭samba
(1)、 启动(其中&表示在后台运行)
/usr/local/samba/sbin/smbd start &
/usr/local/samba/sbin/nmbd start &
(2)、关闭
ps -auxf |grep samba 查找samba 的进程
效果如下:
[root@localhost ~]# ps -auxf |grep samba
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
root 32355 0.0 0.3 4636 644 pts/2 R+ 17:44 0:00 \_ grep samba
root 32233 0.0 1.2 13420 2536 ? Ss 17:27 0:00 /usr/local/samba/sbin/smbd start //这条是主进程
root 32234 0.0 0.4 13420 1012 ? S 17:27 0:00 \_ /usr/local/samba/sbin/smbd start
root 32335 0.0 0.6 11268 1300 ? Ss 17:41 0:00 /usr/local/samba/sbin/winbindd
root 32336 0.0 0.4 11268 1052 ? S 17:41 0:00 \_ /usr/local/samba/sbin/winbindd
杀掉: kill -9 32233 就可以杀掉了。这个比较麻烦。后面我带大家使用一种更简单的启动和关闭的方法。
***************
报错: /usr/local/samba/sbin/smbd: error while loading shared libraries: libtalloc.so.1: cannot open shared object file: No such file or directory
解决办法:
ln -s /usr/local/samba/lib/libtalloc.so.1 /usr/lib/libtalloc.so.1
ln -s /usr/local/samba/lib/libtdb.so.1 /usr/lib/libtdb.so.1
ln -s /usr/local/samba/lib/libwbclient.so.0 /usr/lib/libwbclient.so.0
-----------------------------------------------------------------------------
**************************
(1)、编写启动脚本:也可以以标准服务的形式启动samba,以下是启动脚本
1.建立启动脚本
vi /etc/init.d/smbd
**************************添加如下内容:
#!/bin/sh
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
# Check that smb.conf exists.
[ -f /usr/local/samba/lib/smb.conf ] || exit 0 #其中: /usr/local/samba/lib/smb.conf 是我的samba配置文件存放路径
RETVAL=0
case "$1" in
start)
echo -n "Starting SMB services: "
/usr/local/samba/sbin/smbd -D -d 3 # 其中: /usr/local/samba/sbin/smbd -D 启动samba 服务
RETVAL=$?
echo
echo -n "Starting NMB services: "
/usr/local/samba/sbin/nmbd -D -d 3 # 其中: /usr/local/samba/sbin/nmbd -D 启动samba 服务
RETVAL2=$?
echo
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ]
RETVAL=1
;;
stop)
echo -n "Shutting down SMB services: "
killproc smbd
RETVAL=$?
echo
echo -n "Shutting down NMB services: "
killproc nmbd
RETVAL2=$?
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ]
echo ""
;;
restart)
$0 stop
$0 start
RETVAL=$?
;;
reload)
echo -n "Reloading smb.conf file: "
killproc -HUP smbd
RETVAL=$?
echo
;;
status)
status smbd
status nmbd
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
2.修改权限,使其可执行
chmod 700 /etc/init.d/smbd
chown root:root /etc/init.d/smbd
3.加入系统服务,使其开机可以自动运行
chkconfig --add smbd
chkconfig --level 2345 smbd on
4. 现在启动和关闭以及重新启动
/etc/init.d/smbd start
/etc/init.d/smbd stop
/etc/init.d/smbd restart
*****************************日志存放路径: /var/log/samba/目录下
详细说明:vi /usr/local/samba/lib/smb.conf
[global] 全局配置
workgroup = MYHOME ---- 指定工作组
server string = File Server ---- 服务器的说明
security = share ----安全级别: 共分3种
1.share (任何用户都不需要密码,直接可以访问)
2.user 要提供用户名和密码才能访问
3.server 将用户和密码提交到另一服务器验证,如果递交失败,就 退到user安全级。 要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
****************匿名用户
匿名用户,只要把security = share 修改成这样。就可以访问了。
----------------
window ===打开网上邻居=====\\ip地址(比如我的: ) 如果可以访问,说明配置成功。
-------------------
********************增加用户,验证用户。
[
常用参数:
comment : 目录说明
path : 目录路径
public 开放共享 默认为no , 如果=yes 表示无需身份验证
browseable: 显示共享名称。
valid users: 允许列表中的用户访问
read only: 默认为yes,共享目录只读 。
write able: write able =no 与read only = yes 一样的效果
wire list: 如果前面只读,只有在此里面的用户才有写的权利
creat mask: 指定在共享目录里面建立文件的权限, 权限最高只能为 766
directory mask: 指定建立目录的权限
force user: 指定存取的用户张号
force group: 指定用户存取组
]
(1)、 增加用户: useradd sambashare(用户名)
(2)、 smbpasswd -a sambashare(用户名) 键入回车,提示你输入密码 [必须进入: cd /usr/local/samba/bin/中]
(3)、----------配置如下:(放在配置文件最下面)
[sambashare]
comment = sambashare directory
path = /home/sambashare
public = no
write list = sambashare
valid users = @sambashare
注释:
(1)、如果其他用户想查看sambashare用户下的文件,只需要把valid users = @sambashare,@用户名就可以了。
(2)、建立一个文件共享目录, 要求全部人可查看, 但每个人只能删除自己的文件, 不能删除别人。
[public]
comment = Public Stuff
path = /home/forevergao/
public = yes
browseable = yes
writeable = yes
(4)、 设定public的权限, 因为samba不能做到每个人只能删除自己的文件, 不能删除别人的功能,linux设置目录Sticky bit权限. 目录设定了Sticky的权限,在这个目录下的文件只有root与文件的所有者才能删除, 别的用户可能通过设置,才能查看此用户目录下所有文件,但不能删除,只有本用户才能删除。
chmod 1777 /home/sambashare