感谢支持
我们一直在努力

Fedora 16 安装 Samba 3.6

Fedora 16 ,各种晕, 各种高科技,真是考验我的耐心啊,解决了 Gnome 3.2 的 Fallback 模式问题,http://www.linuxidc.com/Linux/2012-03/56380.htm


有些小激动,准备继续,然后继续安装其他软件,然后第一个软件就出问题了——Samba。


注 :我是在VirtualBox 虚拟机下安装的 32 位 Fedora 16, 自己水平有限,有些步骤没看资料,


如果有安全隐患或者错误,请不吝赐教。


Fedora 15 ,安装完 Samba ,会默认在 /etc/rc.d/init.d/目录下生成一个名为 smb 的脚本文件,


于是我们只要便可以运行: 


/etc/rc.d/init.d/smb start 启动 samba;


/etc/rc.d/init.d/smb stop 停止 samba;


/etc/rc.d/init.d/smb restart 重新启动 samba ……


(start|stop|restart|reload|status|condrestart)


然后开机运行samba,只需要修改/etc/rc.d/rc.local 文件, 添加一行:


/etc/rc.d/init.d/smb start



即可。


可现在问题来了:

# yum install samba


安装完 samba,没有生成 /etc/rc.d/init.d/smb


然后 /etc/rc.d/rc.local 文件也不见了。


我晕,太高科技了!




于是到官方wiki搜索了一下:


http://docs.fedoraproject.org/en-US/Fedora/16/html/Release_Notes/sect-Release_Notes-Changes_for_Sysadmin.html


———-———-———-———-
3.2.5. rc.local no longer packaged

 The /etc/rc.d/rc.local local customization script is no longer included by default. Administrators who need this functionality merely have to create this file, make it executable, and it will run on boot. 


 Upgrades are not affected by this change.


———-———-———-———-


我英语四级不到380分,就当是她默认不支持 rc.local 了(Fedora 15 升级过来的仍然有效)。


我尝试新建一个rc.local,然后分配可执行权限,果然不起作用。


于是我又迷茫了,坑爹啊,我 Linux 基本命令还没看完,怎么改设置啊,ln -s 到 rcN.d 建立连接么……


然后我想到了 /etc/inittab 文件,虽然已经不用了,看一下也无妨: 


  # inittab is no longer used when using systemd.


  #


  # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.


  #


  # Ctrl-Alt-Delete is handled by /etc/systemd/system/ctrl-alt-del.target


  #


  # systemd uses ‘targets’ instead of runlevels. By default, there are two mai    n targets:


  #


  # multi-user.target: analogous to runlevel 3


  # graphical.target: analogous to runlevel 5


  #


  # To set a default target, run:


  #


  # ln -s /lib/systemd/system/<target name>.target /etc/systemd/system/default    .target


 15 # 


哦,我就看懂了这个东西:/lib/systemd/system/ ,果断


# cd /lib/systemd/system/;ll


看到一堆文件,然后有许多runlevelN.target.wants 文件夹


果断


#cd /lib/systemd/system/runlevel5.target.wants; ll


里面有一个符号链接文件


systemd-update-utmp-runlevel.service -> ../systemd-update-utmp-runlevel.service




于是我在 /lib/systemd/system/ 文件夹找到了 systemd-update-utmp-runlevel.service 文件,


然后我发现许多 runlevelN.target.wants 文件夹里都有这个符号链接;

而在 /lib/systemd/system/ 文件夹里有一个 smbd.service 和一个 nmbd.service 文件,


于是果断 vi 看了一下: 


smbd.service:



[Unit]


Description=Samba SMB Daemon


After=syslog.target network.target


 


[Service]


Type=forking


PIDFile=/run/smbd.pid


LimitNOFILE=16384


EnvironmentFile=-/etc/sysconfig/samba


ExecStart=/usr/sbin/smbd $SMBDOPTIONS


 


[Install]


WantedBy=multi-user.target




nmbd.service:



[Unit]


Description=Samba NMB Daemon


After=syslog.target network.target


 


[Service]


Type=forking


PIDFile=/run/nmbd.pid


EnvironmentFile=-/etc/sysconfig/samba


ExecStart=/usr/sbin/nmbd $NMBDOPTIONS


 


[Install]


WantedBy=multi-user.target




:以下蓝色部分似乎不太正确


我还知道 smb 的两个命令 就是 /usr/sbin/smbd 与 /usr/sbin/nmbd


于是我尝试建立个符号链接到 cd /lib/systemd/system/runlevel5.target.wants

#ln -s /lib/systemd/system/smbd.service  /lib/systemd/system/runlevel5.target.wants/smbd.service


#ln -s /lib/systemd/system/nmbd.service  /lib/systemd/system/runlevel5.target.wants/nmbd.service


也可以将符号链接放到  /etc/systemd/system/grafical.target.wants 或者放到  /etc/systemd/system/default.grafical.target.wants


这两个文件夹的区别我还没有弄懂……


重启一下,果然启动samba;




用 systemctl enable 命令 即可



—————————— 


# systemctl is-enabled smb.service


 屏幕显示:disabled


# systemctl enable smb.service


 屏幕显示:ln -s ‘/lib/systemd/system/smb.service’ ‘/etc/systemd/system/multi-user.target.wants/smb.service’


 # systemctl is-enabled smb.service


屏幕显示: enabled


——————————


# systemctl is-enabled nmb.service


 屏幕显示:disabled


# systemctl enable nmb.service


 屏幕显示:ln -s ‘/lib/systemd/system/nmb.service’ ‘/etc/systemd/system/multi-user.target.wants/nmb.service’


 # systemctl is-enabled nmb.service


屏幕显示: enabled 


 —————————— 

然后就简单了,先在防火墙添加例外,如我的Win7电脑地址是192.168.1.3:


#vi /etc/sysconfig/iptables


在中间添加 :


-A INPUT -j ACCEPT -s 192.168.1.3


保存退出。 


之后是 SELinux :


#setsebool -P samba_enable_home_dirs on


之后确认一下:


 #getsebool -a | grep samba


若看到有一项 samba_enable_home_dirs –> on 则表示成功 


然后建立 samba 验证密码:


#smbpasswd -a 用户名(Linux系统里必须存在)




好了,到 Windows 的网上邻居里查一下,看看能否访问 Fedora,


或者 开始 -> 运行 -> \\Fedora的 IP 地址 ,如 \\192.168.1.4




另外,Fedora的主机名,如果在默认安装时不改,会在 Windows 网上邻居里显示 LOCALHOST ,


这会与Windows 的本机冲突,双击 LOCALHOST 进入的是 Windows 本机,


所以需要在 Fedora 里修改:


#vi /etc/sysconfig/network


将HOSTNAME修改成其他名字。 


好了,如此基本成,另附Samba 3.5 的 smb 脚本:



#!/bin/sh


#


# chkconfig: – 91 35


# description: Starts and stops the Samba smbd daemon \


#       used to provide SMB network services.


#


# pidfile: /var/run/samba/smbd.pid


# config:  /etc/samba/smb.conf


 


 


# Source function library.


if [ -f /etc/init.d/functions ] ; then


  . /etc/init.d/functions


elif [ -f /etc/rc.d/init.d/functions ] ; then


  . /etc/rc.d/init.d/functions


else


  exit 1


fi


 


# Avoid using root’s TMPDIR


unset TMPDIR


 


# Source networking configuration.


. /etc/sysconfig/network


 


if [ -f /etc/sysconfig/samba ]; then


   . /etc/sysconfig/samba


fi


 


# Check that networking is up.


[ ${NETWORKING} = “no” ] && exit 1


 


# Check that smb.conf exists.


[ -f /etc/samba/smb.conf ] || exit 6


 


RETVAL=0


 


 


start() {


        KIND=”SMB”


echo -n $”Starting $KIND services: “


daemon smbd $SMBDOPTIONS


RETVAL=$?


echo


[ $RETVAL -eq 0 ] && touch /var/lock/subsys/smb || \


  RETVAL=1


return $RETVAL


}


 


stop() {


        KIND=”SMB”


echo -n $”Shutting down $KIND services: “


killproc smbd


RETVAL=$?


echo


[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/smb


return $RETVAL


}


 


restart() {


stop


start


}


 


reload() {


        echo -n $”Reloading smb.conf file: “


killproc smbd -HUP


RETVAL=$?


echo


return $RETVAL


}


 


rhstatus() {


status -l smb smbd


return $?


}


 


 


# Allow status as non-root.


if [ “$1” = status ]; then


       rhstatus


       exit $?


fi


 


uid=`id | cut -d\( -f1 | cut -d= -f2`


 


# Check that we stop here for non-root users


[ $uid -ne 0 ] && exit 4


 


 


 


case “$1” in


  start)


  start


;;


  stop)


  stop


;;


  restart)


  restart


;;


  reload)


  reload


;;


  status)


  rhstatus


;;


  condrestart)


  [ -f /var/lock/subsys/smb ] && restart || :


;;


  *)


echo $”Usage: $0 {start|stop|restart|reload|status|condrestart}”


exit 2


esac


 


exit $?

赞(0) 打赏
转载请注明出处:服务器评测 » Fedora 16 安装 Samba 3.6
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏