以“dummy”身份从“root”执行命令时提升帐户“dummy”的权限?

以“dummy”身份从“root”执行命令时提升帐户“dummy”的权限?

语境:在登录时 尝试su a -c task以用户身份执行命令时(在 Ubuntu 16.04上),我收到以下错误消息:dummysudo suroot

root@DESKTOP-344ab:/home/dummy# su dummy -c task

[task next] Taskwarrior does not have the correct permissions for '/home/dummy/.task/pending.data'. root@DESKTOP-344ab:/home/dummy#

而当我第一次用 * 切换root回用户su dummy然后执行时,task它运行良好。 *当dummy帐户登录时,在用户可以执行任何操作之前,会自动执行以下.bashrc文件:/home/dummy/.bashrc

sudo -i service cron start

#get root
if [ ! -f /home/a/maintenance/getRootBool ]; then
   echo "Getting sudo rights now."
   touch /home/a/maintenance/getRootBool
   sudo -s
fi

# remove got root boolean for next time you boot up Unix
sudo rm /home/a/maintenance/getRootBool

#Start cron service
#sudo -i service cron start

#Startup taskwarrior
export TASKDDATA=/var/taskd
cd $TASKDDATA
sudo taskd config --data $TASKDDATA

taskdctl start
task sync

这导致终端左下角出现以下“用户描述”:root@DESKTOP-344ab:~#。这让我有点困惑,因为它仍然说root即使当我cd ~它去时/home/dummy,这似乎已经获得root许可,但仍然在虚拟中account

所以我认为sudo -s脚本.bashrc将用户的权限提升dummy为root。

问题:dummy执行命令时如何提高帐户的权限:su dummy -c task作为用户dummy来自root

尝试:

  1. su dummy -c sudo task,这表明 的用法sudo不正确,这意味着我没有使用有效的语法。
  2. info sudo检查脚本sudo -s中的确切功能.bashrc,因为这似乎是权限提升命令,同时仍保留在dummy用户中。说的是:

-s, --shell 运行由 SHELL 环境变量指定的 shell(如果已设置)或由调用用户的密码数据库条目指定的 shell。如果指定了命令,则会通过 shell 的 -c 选项将其传递到 shell 执行。如果未指定命令,则执行交互式 shell。

它主要似乎影响shell命令,目前我不确定是否task是shell命令,如果是,如何sudo -s提升权限。这让我怀疑我的假设,即它可能确实是sudo -s权限提升命令。我正在进一步研究这一点。

此外:

作为对以下评论的回应,该.bashrc文件的输出是:

    * Starting periodic command scheduler cron                                                                                                                                                 [ OK ]
    Getting sudo rights now.
    touch: cannot touch '/home/dummy/maintenance/getRootBool': Permission denied
     * Starting periodic command scheduler cron                                                                                                                                                 [ OK ]
    Getting sudo rights now.
     * Starting periodic command scheduler cron                                                                                                                                                 [ OK ]

    Configuration read from /var/taskd/config

    Variable       Value
    -------------  --------------------------
    ca.cert        /var/taskd/ca.cert.pem
    client.cert    /var/taskd/client.cert.pem
    client.key     /var/taskd/client.key.pem
    confirmation   1
    debug.tls      3
    extensions     /usr/libexec/taskd
    ip.log         on
    log            /var/taskd/taskd.log
    pid.file       /var/taskd/taskd.pid
    queue.size     10
    request.limit  1048576
    root           /var/taskd
    server         0.0.0.0:53583
    server.cert    /var/taskd/server.cert.pem
    server.crl     /var/taskd/server.crl.pem
    server.key     /var/taskd/server.key.pem
    trust          strict
    verbose        1

    /usr/bin/taskdctl start: daemon started
    Syncing with myserver.com:53583

    Sync successful.  No changes.
    root@DESKTOP-344ab:/var/taskd#    test

相关内容