如何以用户而不是 root 用户身份运行 cron 作业 [关闭]

     2023-03-15     87

关键词:

【中文标题】如何以用户而不是 root 用户身份运行 cron 作业 [关闭]【英文标题】:How to run the cron job as a user instead of root user [closed] 【发布时间】:2011-12-31 23:43:07 【问题描述】:

我有几个 bash 脚本可以添加到指定时间的 cron 作业中,但它需要以 root 用户身份执行。我正在尝试运行这些脚本,即 crob 作业,但它需要 root 用户权限,因为我在 root 用户受限的 ubuntu ec2 实例中运行此作业。以 root 用户身份运行这些脚本的解决方法是什么。

谢谢

【问题讨论】:

我不确定是否理解这个问题。也许supersudo 命令可以帮助你? 这属于 ServerFault,而不是 ***。 您已经存在了足够长的时间,知道这不属于这里。如果您想知道如何在不同的用户帐户下在 linux 上 cron 执行 bash 脚本,请尝试 Unix & Linux。如果 EC2 在其中发挥了重要作用,请尝试 Server Fault。 askubuntu.com/questions/173924/… 【参考方案1】:

您可以使用setuid flag 使脚本以root 身份执行,这使脚本以其所有者身份运行:

chmod +s yourscript
chown root yourscript

只需让 yourscript 以 root 身份运行您想运行的任何命令。

请注意,使用此方法,任何用户都可以运行脚本。

【讨论】:

出于安全原因,许多平台会忽略脚本文件中的setuid【参考方案2】:

Basile 的评论是正确的。如果你想在 Ubuntu 中以root 运行某些东西,请使用sudo

如果您想以超级用户权限自动执行脚本(或某些命令)而无需输入密码,请运行

sudo visudo

编辑sudoers 文件。让sudo 停止要求输入特定脚本(或命令)的密码

username ALL = NOPASSWD: /path/to/script

其中username 是调用 sudo 的用户的名称。

【讨论】:

【参考方案3】:

有几种可能:

1) 将脚本添加到 root 的 crontab。为此,您必须通过 sudo su -su - 成为 root,然后使用 crontab -e 添加 cron 作业

2) 允许非 root 用户使用 crontab,并使用 crontab -e 将 cron 作业添加到该用户的 crontab 中 设置脚本的 set-uid 标志并将所有权更改为 root,因此它将以 root chmod +s scriptname; chown root scriptname

身份执行

【讨论】:

如何在 Docker 容器中以非 root 用户身份启动 cron?

】如何在Docker容器中以非root用户身份启动cron?【英文标题】:Howtostartcrondasnon-rootuserinaDockerContainer?【发布时间】:2019-04-0519:34:35【问题描述】:我正在使用下面的Dockerfile和entrypoint.sh。我需要以非root用户身份在容器中启动crond... 查看详情

我可以以不同于 root 的用户身份运行 cloud init 吗?

】我可以以不同于root的用户身份运行cloudinit吗?【英文标题】:CanIruncloudinitasadifferentuserthanroot?【发布时间】:2021-12-1606:41:56【问题描述】:由于使用git时的权限问题,我试图以不同于root的用户身份运行cloudinit。有没有这样的... 查看详情

可以以 root 身份而不是 ubuntu 用户身份 SSH 到 EC2 ubuntu 服务器

】可以以root身份而不是ubuntu用户身份SSH到EC2ubuntu服务器【英文标题】:canSSHintoEC2ubuntuserverasarootnotasaubuntuuser【发布时间】:2018-12-1203:16:20【问题描述】:您好,我有3个来自服务器A、B的ubuntuEC2实例,我需要通过ssh连接到服务器C... 查看详情

Install4j 以本地用户而不是域用户身份运行服务

】Install4j以本地用户而不是域用户身份运行服务【英文标题】:Install4jrunserviceaslocaluserinsteaddomainuser【发布时间】:2018-02-2016:44:05【问题描述】:我有一项任务是通过外部路径(UNC)获取文件。我使用当前域用户的权限检查此文件... 查看详情

如何更改 laravel 中的用户模型以使用其他表进行身份验证而不是用户?

】如何更改laravel中的用户模型以使用其他表进行身份验证而不是用户?【英文标题】:Howtochangetheusermodelinlaraveltouseothertableforauthenticationthanusers?【发布时间】:2017-04-2205:39:16【问题描述】:如何在laravel5.3中更改默认用户模型以... 查看详情

如何以编程方式获得 root 权限?

】如何以编程方式获得root权限?【英文标题】:Howtoprogrammaticallygainrootprivileges?【发布时间】:2011-01-2920:05:58【问题描述】:我正在编写一些软件(在C++中,用于Linux/MacOSX),它以非特权用户身份运行,但在某些时候需要root特权... 查看详情

golang如何让子进程以另一个用户身份运行

参考技术AGolang如何让子进程以另一个用户身份运行当父进程launch一个子进程的时候,如何使得子进程使用另一个用户身份运行。前提条件当前用户得用足够的权限切换到另一个用户,所以通常父进程是root。下面的例子是root用户... 查看详情

如何以 root 身份运行 Perl 脚本但仍会影响用户 gconf 设置

】如何以root身份运行Perl脚本但仍会影响用户gconf设置【英文标题】:HowcanIrunaPerlscriptasrootyetstillaffectusergconfsettings【发布时间】:2011-04-2200:02:34【问题描述】:新问题:我正在尝试制作一个统一的脚本,根据我的喜好初始化新的U... 查看详情

新装linux系统如何获得root权限

...户,那么你用su命令就可以了,而如果你是问,一个用户如何以root权限运行程序,那么首先这个程序要是root的,你在这个文件的权限上加上suid就可以了。 参考技术B请问你安装的linux版本是。。如果你安装的是RedHat的,在安装的... 查看详情

以 root 用户身份运行 ElasticSearch

】以root用户身份运行ElasticSearch【英文标题】:RunningElasticSearchastherootuser【发布时间】:2017-04-0713:42:23【问题描述】:当我尝试使用./elasticsearch启动ElasticSearch5.0时出现以下错误:[2016-11-23T13:44:09,507][WARN][o.e.b.ElasticsearchUncaughtExcepti... 查看详情

如何以非 root 用户身份使用 CPAN?

】如何以非root用户身份使用CPAN?【英文标题】:HowcanIuseCPANasanon-rootuser?【发布时间】:2011-02-2803:32:03【问题描述】:我想在我没有root访问权限的共享服务器上安装perl模块。我怎样才能做到这一点?他们似乎也有旧版本的CPAN(... 查看详情

无法以 root linux 用户身份运行 mysql 命令

】无法以rootlinux用户身份运行mysql命令【英文标题】:Can\'trunmysqlcommandsasrootlinuxuser【发布时间】:2022-01-0712:43:37【问题描述】:作为linuxroot用户:root@local:~#mysqlERROR1045(28000):Accessdeniedforuser\'root\'@\'localhost\'(使用密码:否)我很... 查看详情

确保脚本以root用户身份运行

importosifos.geteuid()!=0:print"Thisprogrammustberunasroot.Aborting."sys.exit(1) 查看详情

警告:以“root”用户身份运行 pip

】警告:以“root”用户身份运行pip【英文标题】:WARNING:Runningpipasthe\'root\'user【发布时间】:2021-10-1020:30:35【问题描述】:我正在Docker中制作我的pythonDjango应用程序的简单图像。但是在构建容器结束时它会抛出下一个警告(我在... 查看详情

crontab计划任务执行命令或者脚本(代码片段)

...一个全局配置文件(/etc/crontab)来控制,另一组基于个别用户使用crontab命令所创建的配置文件。使用crontab命令crontab-u//指定某个用户的cron服务crontab-l//列出某个用户的cron服务的详细内容crontab-r//删除某个用户的cron服务crontab-e//编... 查看详情

以 root 身份运行 Python 脚本(使用 sudo) - 有效用户的用户名是啥?

】以root身份运行Python脚本(使用sudo)-有效用户的用户名是啥?【英文标题】:RunningPythonscriptasroot(withsudo)-whatistheusernameoftheeffectiveuser?以root身份运行Python脚本(使用sudo)-有效用户的用户名是什么?【发布时间】:2011-08-0822:56:46... 查看详情

以非 root 用户身份运行 Nginx

】以非root用户身份运行Nginx【英文标题】:RunningNginxasnonrootuser【发布时间】:2017-07-0819:53:59【问题描述】:我使用Ansible安装了Nginx。为了在Centos7上安装,我使用了yum包,所以它默认以root用户身份运行。我希望它在Centos框中以不... 查看详情

如何以当前用户身份运行 GIT 容器?

】如何以当前用户身份运行GIT容器?【英文标题】:HowcanyourunaGITcontainerasthecurrentuser?【发布时间】:2019-05-2904:12:22【问题描述】:我想在Docker容器中使用GIT。https://hub.docker.com/r/alpine/git/上记录的用法非常简单:dockerrun-it--rm-v$HOME:... 查看详情