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

Responder a