LINUX.ORG.RU
решено ФорумAdmin

Последствия отключения root'а


0

1

Приветствую,

Отключил 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


Сделай

sudo cat /root/.bash_profile
потом включи голову, которой у тебя нет, судя по первым строкам топа, подумай немного, проанализируй увиденное, после этого ответь на вопрос: зачем ты сам выстрелил себе ногу?
Если и тут всё плохо, то хотя бы вику почитай штоле

novitchok ★★★★★
()
Последнее исправление: novitchok (всего исправлений: 1)
Ответ на: комментарий от novitchok

Благодарю за ответ, судя по которому ты прочел лишь первые строки и придумал все остальное. Почитай дальше, подумай, проанализируй и быть все-таки найдется что-нибудь по делу сказать...

mrs
() автор топика

Доктор, почему мне больно, когда я стреляю себе в ногу?

beastie ★★★★★
()
Ответ на: комментарий от comp00

Тогда надо еще и всех юзеров с доступом к sudo отключить.

Lavos ★★★★★
()
Ответ на: комментарий от blackst0ne

Точно, вот этот вариант я и искал, пасиб! ) Подумывал еще над тем, чтобы пароль root'у сделать невероятно сложным, скажем из сотни случайных символов.

mrs
() автор топика

Еще один считает себя умнее линукса.

anonymous
()

Если хотел «отключить» рута таким корявым способом, то нужно было редактировать /etc/shadow

Mr_Alone ★★★★★
()
Ответ на: комментарий от mrs

Системные вызовы ни при чем. Просто шелл у рута = /sbin/nologin, и когда ты пытаешься запустить в этой «оболочке» скрипт, получается фигня, потому что она ничего не делает, а только выдает сообщение что аккаунт отключен.

Kiborg ★★★
()
Ответ на: комментарий от mrs

Как уже сказали выше, man passwd:

       -l, --lock

           Lock the password of the named account. This option disables a
           password by changing it to a value which matches no possible
           encrypted value (it adds a ´!´ at the beginning of the password).

           Note that this does not disable the account. The user may still be
           able to login using another authentication token (e.g. an SSH key).
           To disable the account, administrators should use usermod
           --expiredate 1 (this set the account's expire date to Jan 2, 1970).
Kiborg ★★★
()
Ответ на: комментарий от Kiborg

Спасибо, нужное мне решение нашлось!

mrs
() автор топика
Ответ на: комментарий от novitchok

я пытался выудить из ваших слов что-нибудь полезное, но увы, не получилось... однако, еще раз благодарю за внимание... вопрос решен

mrs
() автор топика
Ответ на: комментарий от comp00

> Просвети нас пожайлуста всех, ЗАЧЕМ отключать root-а?
Убунтята кричат, что небезопасно.

Простите, не могли бы вы перечисли риски? «Мне так, для себя, чисто поржать» (С)

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Блин, полоркай, тредов дофига. Даже у меня был тред, почему в убунте нет полноценного рута.

comp00 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.