Ubuntu 18.04 上的 cron 作业的身份验证问题

     2023-03-04     56

关键词:

【中文标题】Ubuntu 18.04 上的 cron 作业的身份验证问题【英文标题】:Authentication issue with cron job on Ubuntu 18.04 【发布时间】:2018-11-07 10:56:17 【问题描述】:

我全新安装了 Ubuntu 18.04,但无法让 cron 作业执行脚本。

Crontab -l 包含以下内容:

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/user/local/sbin:/usr/sbin:/home/rob/scripts

*/1 * * * * /bin/bash /home/rob/scripts/scan2.sh >> /home/rob/scripts/scan.log 2>&1
0 1 * * * /bin/bash /home/rob/scripts/trimdb.sh
0 1 * * * /bin/bash /home/rob/scripts/sortf.sh

我可以看到 cron 作业在 /var/log/syslog 内的正确时间执行,如下所示:

May 28 21:38:01 net CRON[1899]: (rob) CMD (/bin/bash /home/rob/scripts/scan2.sh >> /home/rob/scripts/scan.log 2>&1)
May 28 21:39:01 net CRON[1915]: (rob) CMD (/bin/bash /home/rob/scripts/scan2.sh >> /home/rob/scripts/scan.log 2>&1)
May 28 21:40:01 net CRON[1931]: (rob) CMD (/bin/bash /home/rob/scripts/scan2.sh >> /home/rob/scripts/scan.log 2>&1)
May 28 21:41:01 net CRON[1947]: (rob) CMD (/bin/bash /home/rob/scripts/scan2.sh >> /home/rob/scripts/scan.log 2>&1)

但是,当我检查 cron 服务时,我可以看到有一个身份验证错误:

May 28 21:46:01 net sudo[2146]: pam_unix(sudo:auth): conversation failed
May 28 21:46:01 net sudo[2146]: pam_unix(sudo:auth): auth could not identify password for [rob]
May 28 21:46:01 net CRON[2134]: pam_unix(cron:session): session closed for user rob
May 28 21:47:01 net CRON[2152]: pam_unix(cron:session): session opened for user rob by (uid=0)
May 28 21:47:01 net CRON[2153]: (rob) CMD (/bin/bash /home/rob/scripts/scan2.sh >> /home/rob/scripts/scan.log 2>&1)
May 28 21:47:01 net sudo[2164]: pam_unix(sudo:auth): conversation failed
May 28 21:47:01 net sudo[2164]: pam_unix(sudo:auth): auth could not identify password for [rob]
May 28 21:47:01 net CRON[2152]: pam_unix(cron:session): session closed for user rob

脚本在手动运行时完美运行。

感谢您的帮助。

scan.log 的内容:

sudo: no tty present and no askpass program specified
/home/rob/scripts/scan2.sh: line 43: grep: command not found
/home/rob/scripts/scan2.sh: line 1: date: command not found
/home/rob/scripts/scan2.sh: line 2: date: command not found
/home/rob/scripts/scan2.sh: line 3: date: command not found
/home/rob/scripts/scan2.sh: line 5: date: command not found
/home/rob/scripts/scan2.sh: line 6: date: command not found
/home/rob/scripts/scan2.sh: line 7: date: command not found
/home/rob/scripts/scan2.sh: line 41: grep: command not found

【问题讨论】:

这是“rob”还是“root”crontab? 你在scan.log中看到了什么有用的东西吗? 这是 rob crontab 将scan.log的内容添加到问题中 听起来您是在要求我们调试 /home/rob/scripts/scan2.sh 而不向我们显示 /home/rob/scripts/scan2.sh 中的代码。 【参考方案1】:

我已经通过以下步骤解决了这个问题:

请检查该用户的密码是否应该过期。

chage -l scfuser

如果过期,请按照以下步骤进行设置:

密码 scfuser

【讨论】:

【参考方案2】:

看起来scan2.sh 中的某些东西正在尝试运行sudo,而sudo 需要您的密码进行身份验证。但是,sudo 无法获取您的密码,因为 cron 作业未与终端关联,因此 pam_authsudo 用于提示输入密码的库)报告失败。

要解决这个问题,您可以使用sudo -A 和设置为程序名称的$SUDO_ASKPASS 环境变量(它可以只是一个shell 脚本),该程序将提供您的密码。如果您这样做,请确保只有您的 UID 能够读取、写入和运行您的密码提供程序程序。

【讨论】:

PHP - cronjob 无法在 Ubuntu 18.04 上执行 [关闭]

】PHP-cronjob无法在Ubuntu18.04上执行[关闭]【英文标题】:PHP-cronjobfailingtoexecuteonUbuntu18.04[closed]【发布时间】:2022-01-2302:59:26【问题描述】:我有一个PHP文件,我想将其作为cron作业运行。在服务器上,该文件位于/var/www/html/directory/fi... 查看详情

共享主机上的 CodeIgniter Cron 作业?

】共享主机上的CodeIgniterCron作业?【英文标题】:CodeIgniterCronJobonSharedHosting?【发布时间】:2012-01-1001:30:26【问题描述】:我正在尝试学习如何使用CodeIgniter完成我的第一份cron工作。过去,使用CI执行此操作的唯一方法似乎是使用... 查看详情

如何为服务器上的 codeigniter 脚本设置 cron 作业

】如何为服务器上的codeigniter脚本设置cron作业【英文标题】:Howtosetupcronjobforacodeigniterscriptonserver【发布时间】:2015-11-1718:27:36【问题描述】:您好,我正在尝试使用cpanel为服务器上的脚本设置cron作业,但是我从未这样做过,如... 查看详情

Centos 5 上的慢 cron 作业

】Centos5上的慢cron作业【英文标题】:SlowcronjobsonCentOS5【发布时间】:2011-12-1504:59:24【问题描述】:我有1个每60分钟运行一次的cronjob,但由于某种原因,最近它运行缓慢。环境:centos5+apache2+mysql5.5+php5.3.3/raid10/10kHDD/16gigram/4xeon处... 查看详情

Ubuntu 上的 dotnet 运行时安装在哪里?

】Ubuntu上的dotnet运行时安装在哪里?【英文标题】:WhereisthedotnetruntimeinstalledtoonUbuntu?【发布时间】:2018-01-1309:43:29【问题描述】:我正在尝试将dotnet(.NETCore)与cron作业一起使用,但似乎dotnet的路径变量在cron范围内不存在。我想... 查看详情

在 Elastic Beanstalk 上的 docker 中的 cron 作业中访问 S3

】在ElasticBeanstalk上的docker中的cron作业中访问S3【英文标题】:AccessS3incronjobindockeronElasticBeanstalk【发布时间】:2016-10-0116:52:53【问题描述】:我在部署到弹性beanstalk的docker映像中有一个cron作业。在该工作中,我希望在S3上包含读... 查看详情

Ubuntu 18.04 上的 KivyMD 安装错误

】Ubuntu18.04上的KivyMD安装错误【英文标题】:KivyMDinstallationerroronUbuntu18.04【发布时间】:2020-04-1711:01:43【问题描述】:我尝试使用pip3installkivymd安装kivymd,但出现错误:/tmp/pip-build-46hjob8h/kivy/kivy/include/gl_redirect.h:72:13:fatalerror:GL/gl.h... 查看详情

如何删除安装在 ubuntu 18.04 上的 boost

】如何删除安装在ubuntu18.04上的boost【英文标题】:Howtoremoveboostinstalledonubuntu18.04【发布时间】:2021-02-1012:45:27【问题描述】:我已通过命令删除了Boost。在version.hpp中显示1.65.1sudoapt-get--purgeremovelibboost-all-dev但是我有boost1.75版本我... 查看详情

使用 cron 作业“访问页面”

...并点击回车)。我正在尝试找到一种方法,通过共享主机上的cron作业定期触发此操作。我可以配置cron来运行这个命令:curl 查看详情

如何从安装在 Ubuntu 18.04 VirtualBox 上的 Wordpress Web 界面写入/上传

】如何从安装在Ubuntu18.04VirtualBox上的WordpressWeb界面写入/上传【英文标题】:HowtoWrite/UploadfromWordpressWebInterfaceInstalledonUbuntu18.04VirtualBox【发布时间】:2019-06-1815:59:27【问题描述】:主机:Windows1064bitVirtualBox:Ubuntu18.04Apache2.4、MySQL5.... 查看详情

Android SDK Manager 无法在 Ubuntu 18.04 上的 Eclipse 中打开

】AndroidSDKManager无法在Ubuntu18.04上的Eclipse中打开【英文标题】:AndroidSDKManagerfailstoopenineclipseonUbuntu18.04【发布时间】:2019-04-1720:33:13【问题描述】:我已经在ubuntu18.04上安装了“eclipse-java-2018-09-linux-gtk-x86_64”,并将ADT添加到eclipse... 查看详情

在 linux/apache 服务器上的 cron 作业上运行 script.php,但限制对 php 文件的公共访问

】在linux/apache服务器上的cron作业上运行script.php,但限制对php文件的公共访问【英文标题】:Runascript.phponcronjobonlinux/apacheserverbutrestrictpublicaccesstothephpfile【发布时间】:2011-05-1600:01:57【问题描述】:我有这个script.php文件,我想在... 查看详情

ubuntu18.04上的pyside2安装问题,anaconda上的python 3.8.3

】ubuntu18.04上的pyside2安装问题,anaconda上的python3.8.3【英文标题】:pyside2installationproblemonubuntu18.04,python3.8.3onanaconda【发布时间】:2020-07-3105:50:27【问题描述】:安装anaconda3后,我开始安装pyside2。我直接输入pipinstallpyside2,成功安... 查看详情

ubuntu 18.04 上的 octave 5.2:print -dpng 不起作用

】ubuntu18.04上的octave5.2:print-dpng不起作用【英文标题】:octave5.2onubuntu18.04:print-dpngdoesnotwork【发布时间】:2020-11-1216:28:33【问题描述】:我使用snap安装在Ubuntu18.04octave5.2上。现在我有八度音阶5.2。有一个问题。如果我尝试使用打... 查看详情

使用弹性 beantalk 和 SQS 处理失败的 cron 作业

...,通过一个cron.yaml文件设置,这些文件都指向主Web服务器上的API端点。以前我的cron作业 查看详情

Docker 并行运行 cron 作业

...述】:使用简单的服务器我使用一个简单的节点(centos或ubuntu)来运行我的Web应用程序,并在那里配置了一些cron作业来运行计划任务。在那一刻,一切都奏效了。使用DockerSwarm集群我将我的应用程序迁移到DockerSwarm集群。现在cron... 查看详情

Ubuntu 18.04 上的“E:无法找到包 python-pip”[重复]

】Ubuntu18.04上的“E:无法找到包python-pip”[重复]【英文标题】:"E:Unabletolocatepackagepython-pip"onUbuntu18.04[duplicate]【发布时间】:2019-08-2017:15:46【问题描述】:我正在尝试在Ubuntu上安装virtualenv。首先是command\'pip\'notfound,所以... 查看详情

Ubuntu 18.04 上的 FLTK:在 Dock 上设置图标的弹出文本

】Ubuntu18.04上的FLTK:在Dock上设置图标的弹出文本【英文标题】:FLTKonUbuntu18.04:Seticon\'spopuptextondock【发布时间】:2019-11-0821:21:00【问题描述】:我在Ubuntu18.04上使用FLTK1.3.4。我的项目使用FLTK开发了一个带有GUI的桌面应用程序。当... 查看详情