【问题标题】:Execute Scripts in /etc/profile.d/ at Startup as Root?以 Root 身份启动时在 /etc/profile.d/ 中执行脚本?
【发布时间】:2019-08-25 02:47:59
【问题描述】:

我目前正在使用 arch linux,并且我在 /etc/profile.d/ 中有一个脚本,该脚本在启动时成功运行。但是,在第一个 sudo 命令之后,系统会提示我输入密码,并且在登录时输入两次密码有点烦人。如果可能的话,我不希望我的帐户在执行 sudo 命令时从不要求输入密码,而不是为了这个启动脚本。有任何想法吗?提前致谢。

【问题讨论】:

  • 这更适合 SuperUser 或可能是 Serverfault,请参阅:stackoverflow.blog/2009/05/31/the-stack-overflow-trilogy
  • 该位置的脚本以root身份执行,所以我的问题是,你为什么在脚本中使用sudo?至于sudo的密码,查看sudoers文件
  • @grail 实际上是不正确的,接受的答案也是如此。 /etc/profile.d 处的脚本是 sourced(未执行),由 shell 以当前登录用户身份运行。因此,除非登录帐户实际上是 root,否则 shell 不会以 root 身份执行,其源脚本命令也不会。

标签: linux bash terminal startup archlinux


【解决方案1】:

您有一个问题不是 profile.d 脚本以 root 身份运行的问题。

另一方面,如果您的脚本内部使用“sudo”一词,您可以删除它,因为 profile.d 中不需要。

如果此脚本您也将手动运行它,那么您需要在脚本之前在 cli 中添加 sudo 才能在两种情况下都能正常运行。

除了前面已经讲过的,包括@serdroid的回答,你可以看看我这个问题的回答,它基本上描述了在某些场景下如何避免sudo认证。

https://unix.stackexchange.com/a/210395/28312

负责任地使用它。

【讨论】:

    【解决方案2】:

    /etc/profile.d/ 目录中的脚本以 root 身份执行。无需在此脚本中使用 sudo 命令。但是如果你想以另一个用户的身份运行命令,你应该像下面的命令一样。

    su - user -c 'command'
    

    【讨论】:

    猜你喜欢
    • 2021-02-26
    • 2012-02-04
    • 2019-05-19
    • 2022-11-05
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多