El 18/09/2015 a las 11:58, Rommel Rodriguez Toirac escribió:
El Viernes, 18 de septiembre de 2015 11:43:36 Arian Molina Aguilera escribió:
El 18/09/15 a las 10:07, Rommel Rodriguez Toirac escribió:
Mis saludos;
he usado algunas documentaciones para lograr instalar y configurar samba4;
pero en la parte del script para arrancarlo tengo un pequeño problema.
Hay una línea que dice: ". /lib/lsb/init-functions" he buscado y no
encuentro>
esa localización y por tanto el script no me funsiona. Uso CentOS 7 e
instalé desde samba-4.3.0.tar.gz
Alguna sugerencia?
estas usando un script que no es compatible con RHEL/Centos 7, debes
usar un script con soporte para systemd, que es el sistema de init que
usan estas distros. Puedo mandarte al privado el script de inicio de
sernet-samba4-ad, para debian 8 que usa igual systemd, pero quizás
tengas que modificarle algo, por otra parte puedes arrancar samba4
manualmente samba -i -d & o sin el & para ver que todo va bien. Salu2.
este es el script que usé:
#! /bin/bash
#
# samba4 Bring up/down samba4 service
#
# chkconfig: - 90 10
# description: Activates/Deactivates all samba4 interfaces configured to \
# start at boot time.
#
### BEGIN INIT INFO
# Provides:
# Should-Start:
# Short-Description: Bring up/down samba4
# Description: Bring up/down samba4
### END INIT INFO
# Source function library.
. /etc/init.d/functions
if [ -f /etc/sysconfig/samba4 ]; then
. /etc/sysconfig/samba4
fi
CWD=$(pwd)
prog="samba4"
start() {
# Attach irda device
echo -n $"Starting $prog: "
/usr/local/samba/sbin/samba
sleep 2
if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then success
$"samba4 startup"; else failure $"samba4
startup"; fi
echo
}
stop() {
# Stop service.
echo -n $"Shutting down $prog: "
killall samba
sleep 2
if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then failure
$"samba4 shutdown"; else success $"samba4 shutdown"; fi
echo
}
status() {
/usr/local/samba/sbin/samba --show-build
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status irattach
;;
restart|reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
el script que tengo con soporte a systemd, es para la compilación
estándar del samba4, donde todo va en su lugar y no en /usr/local/samba
que es la manera en que estoy compilando samba4 para que sea homogénea
con sernet-samba4. El cual puedes usar directamente del repo de sernet,
sin necesidad de compilar. Y seguir todos los pasos del manual sin
importar si usas una versión u otra.
Este es el script:
#!/bin/sh
# Copyright (c) 2004-2013 SerNet GmbH
#
# SerNet Samba Team <sa...@sernet.de>
#
### BEGIN INIT INFO
# Provides: sernet-samba-ad ldap slapd
# Required-Start: $network $remote_fs
# Should-Start: $syslog cupsd
# Should-Stop: $syslog cupsd
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: initscript for the SAMBA AD services
### END INIT INFO
SAMBA_USR_PREFIX=${SAMBA_USR_PREFIX:=/usr}
SAMBA_CONF_PREFIX=${SAMBA_CONF_PREFIX:=/etc/samba}
SMB_CONF=${SAMBA_CONF_PREFIX}/smb.conf
SAMBA_PIDDIR=${SAMBA_PIDDIR:=/var/run/samba}
SAMBA_LOCKDIR=${SAMBA_LOCKDIR:=/var/lock/samba}
ENV_SAMBA_START_MODE=${SAMBA_START_MODE-}
ENV_SAMBA_RESTART_ON_UPDATE=${SAMBA_RESTART_ON_UPDATE-}
ENV_SAMBA_IGNORE_NSUPDATE_G=${SAMBA_IGNORE_NSUPDATE_G-}
. /etc/default/samba4
SAMBA_START_MODE=${ENV_SAMBA_START_MODE:=${SAMBA_START_MODE-}}
SAMBA_RESTART_ON_UPDATE=${ENV_SAMBA_RESTART_ON_UPDATE:=${SAMBA_RESTART_ON_UPDATE-}}
SAMBA_IGNORE_NSUPDATE_G=${ENV_SAMBA_IGNORE_NSUPDATE_G:=${SAMBA_IGNORE_NSUPDATE_G-}}
. /lib/lsb/init-functions
NAME="AD services"
BINARY="${SAMBA_USR_PREFIX}/sbin/samba"
EXTRA_OPTS="${SAMBA_EXTRA_OPTS-}"
PIDFILE="${SAMBA_PIDDIR}/samba.pid"
START_MODE="ad"
LC_ALL=en_US.UTF-8
sernet_verify_configuration()
{
local _script="$1"
local _cmd="$2"
if [ ! -x ${BINARY} ] ; then
log_failure_msg "${BINARY} not installed ! "
return 5
fi
if ! test "${SAMBA_START_MODE}" = "${START_MODE}" ; then
echo "${_script} wants to ${_cmd} but SAMBA_START_MODE is set to
\"${SAMBA_START_MODE}\"."
echo "Disable ${_script} or set SAMBA_START_MODE in"
echo "/etc/default/sernet-samba to \"${START_MODE}\"."
log_warning_msg "Exiting gracefully now."
return 6
fi
if [ x"${SAMBA_IGNORE_NSUPDATE_G}" != x"yes" ]; then
CHECK_NSUPDATE_G="`cat /dev/null | nsupdate -g 2> /dev/null && echo 1
|| echo 0`"
if [ ${CHECK_NSUPDATE_G} -eq 0 ]; then
echo "WARNING: nsupdate does not support the GSS-TSIG
mode!"
echo "Have a look at SAMBA_IGNORE_NSUPDATE_G in
/etc/default/sernet-samba."
log_warning_msg "Exiting gracefully now."
return 6
fi
fi
if [ ! -f ${SMB_CONF} ]; then
log_failure_msg "Samba configuration file ${SMB_CONF} does not
exist."
return 6
fi
return 0
}
case "$1" in
start)
sernet_verify_configuration "$0" "$1" || exit $?
echo -n "Starting SAMBA ${NAME} : "
test -e ${SAMBA_PIDDIR} || mkdir -m 755 ${SAMBA_PIDDIR}
test -e ${SAMBA_LOCKDIR} || mkdir -m 750 ${SAMBA_LOCKDIR}
if pidofproc -p ${PIDFILE} ${BINARY} >/dev/null ; then
log_warning_msg "Warning: ${BINARY} already running ! "
exit 0
else
test -e ${PIDFILE} && log_warning_msg "Warning: ${PIDFILE} exists !
"
fi
if start_daemon -p ${PIDFILE} ${BINARY} -D ${EXTRA_OPTS} >/dev/null ;
then
log_success_msg ""
else
log_failure_msg ""
exit 1
fi
;;
stop)
sernet_verify_configuration "$0" "$1" || exit 0
echo -n "Shutting down SAMBA ${NAME} : "
if ! pidofproc ${BINARY} >/dev/null ; then
log_warning_msg "Warning: ${BINARY} not running ! "
exit 0
fi
killproc -p ${PIDFILE} ${BINARY}
if (pidofproc ${BINARY} && sleep 1 && pidofproc ${BINARY}) >/dev/null ;
then
RESULT="...trying once more "
log_warning_msg "${RESULT}"
killproc ${BINARY}
else
log_success_msg ""
fi
;;
try-restart)
if $0 status > /dev/null ; then
test "${SAMBA_RESTART_ON_UPDATE}" != yes || $0 restart
else
exit 0
fi
;;
restart)
$0 stop
$0 start
;;
force-reload)
$0 reload
;;
reload)
sernet_verify_configuration "$0" "$1" || exit $?
echo -n "Reloading SAMBA ${NAME} : "
if ! pidofproc ${BINARY} >/dev/null ; then
RESULT="Warning: ${BINARY} not running ! "
log_warning_msg "${RESULT}"
exit 7
else
killproc ${BINARY} -HUP
log_success_msg ""
fi
;;
status)
sernet_verify_configuration "$0" "$1" || exit $?
echo -n "Checking for SAMBA ${NAME} : "
if pidofproc ${BINARY} >/dev/null ; then
log_success_msg ""
else
log_failure_msg ""
exit 3
fi
;;
probe)
## Optional: Probe for the necessity of a reload,
## give out the argument which is required for a reload.
test ${SMB_CONF} -nt ${PIDFILE} && echo reload
;;
*)
echo "Usage: $0
{start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 3
;;
esac
Se debe colorar en /etc/init.d/ con nombre samba4 y darle permisos de
ejecución. y activarlo usando systemctl enable samba4 luego inicia con
service samba4 start.
Se debe crear un archivo de configuración en /etc/default/samba4 que
contiene la configuración de inicio.
# SAMBA_START_MODE defines how Samba should be started. Valid options
are one of
# "none" to not enable it at all,
# "classic" to use the classic smbd/nmbd/winbind daemons
# "ad" to use the Active Directory server (which starts the smbd
on its own)
# (Be aware that you also need to enable the services/init scripts that
# automatically start up the desired daemons.)
SAMBA_START_MODE="ad"
# SAMBA_RESTART_ON_UPDATE defines if the the services should be
restarted when
# the RPMs are updated. Setting this to "yes" effectively enables the
# functionality of the try-restart parameter of the init scripts.
SAMBA_RESTART_ON_UPDATE="no"
#SAMBA_RESTART_ON_UPDATE="yes"
# NMBD_EXTRA_OPTS may contain extra options that are passed as additional
# arguments to the nmbd daemon
NMBD_EXTRA_OPTS=""
# WINBINDD_EXTRA_OPTS may contain extra options that are passed as
additional
# arguments to the winbindd daemon
WINBINDD_EXTRA_OPTS=""
# SMBD_EXTRA_OPTS may contain extra options that are passed as additional
# arguments to the smbd daemon
SMBD_EXTRA_OPTS=""
# SAMBA_EXTRA_OPTS may contain extra options that are passed as additional
# arguments to the samba daemon
SAMBA_EXTRA_OPTS=""
# SAMBA_IGNORE_NSUPDATE_G defines whether the samba daemon should be started
# when 'nsupdate -g' is not available. Setting this to "yes" would mean that
# samba will be started even without 'nsupdate -g'. This will lead to severe
# problems without a proper workaround!
SAMBA_IGNORE_NSUPDATE_G="no"
Con eso es suficiente, para compilar samba4 de forma estandar y que todo
quede en su lugar, el ./configure quedaría así:
./configure --enable-fhs --prefix=/usr --sysconfdir=/etc
--localstatedir=/var --enable-debug --enable-selftest -j2
--cross-answers --cross-execute --disable-cups --disable-iprint
Si tienes la versión 4.3.0 si es una previa eliminar --cross-answers
--cross-execute
Con esta compilación todo quedaría así.
root@debian8:/# samba -b
Samba version: 4.3.0
Build environment:
Build host: Linux debian8 2.6.32-37-pve #1 SMP Wed Feb 11 10:00:27
CET 2015 x86_64 GNU/Linux
Paths:
BINDIR: /usr/bin
SBINDIR: /usr/sbin
CONFIGFILE: /etc/samba/smb.conf
NCALRPCDIR: /var/run/samba/ncalrpc
LOGFILEBASE: /var/log/samba
LMHOSTSFILE: /etc/samba/lmhosts
DATADIR: /usr/share
MODULESDIR: /usr/lib/samba
LOCKDIR: /var/lock/samba
STATEDIR: /var/lib/samba
CACHEDIR: /var/cache/samba
PIDDIR: /var/run/samba
PRIVATE_DIR: /var/lib/samba/private
CODEPAGEDIR: /usr/share/samba/codepages
SETUPDIR: /usr/share/samba/setup
WINBINDD_SOCKET_DIR: /var/run/samba/winbindd
WINBINDD_PRIVILEGED_SOCKET_DIR: /var/lib/samba/winbindd_privileged
NTP_SIGND_SOCKET_DIR: /var/lib/samba/ntp_signd
Es algo para que vayan adelantando y trabajando. Salu2.
--
Ing. Arian Molina Aguilera
Administrador de Redes y Servicios Telemáticos
Nodo Central ARTex S.A. La Habana. Cuba.
Telfs: +53(7)2047874, +53(7)204-2710 ext 123
jabber: ar...@artex.sa
Linux Usuario Registrado #392892
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l