Приветствую,
Отключил root правкой /etc/passwd:
root:x:0:0:root:/root:/sbin/nologin
все вроде работает правильно, за исключением bash-скриптов запускаемых по крону от root'a.
дело в том, что крон в системе нестандартный, задания запускаются следующим кодом (исходник на Си):
if ((pid = fork()) == 0) {
syslog(LOG_DEBUG, "executing %s", job->command);
dup2(infd, STDIN_FILENO);
dup2(outfd[1], STDOUT_FILENO);
dup2(outfd[1], STDERR_FILENO);
/* close any open files */
close(infd);
close(outfd[0]);
close(outfd[1]);
closelog();
setsid();
execle(shell, shell, "-c", job->command, NULL, env);
doLogOpen(LOG_CRON, LOG_PID, "%s(child)", progName);
syslog(LOG_ERR, "Couldn't exec '%s -c %s': %m", shell, job->command);
_exit(1);
}
если скрипт вызывать из консоли «$ sudo /etc/script», то скрипт выполняется корректно, но если вызвать его из крона, то в ответ получаю сообщение «This account is currently not available.»
Подскажите, как отключить рута, чтобы возможно было выполнять скрипты из крона? Или может быть надо менять код крона, что бы он не пытался логинится для выполнения скриптов?
Операционка CentOS 6.5