运行“pkexec”时出现错误:“在 /etc/shells 文件中未找到 SHELL 变量的值”

运行“pkexec”时出现错误:“在 /etc/shells 文件中未找到 SHELL 变量的值”

pkexec在 Ubuntu 14.04 上,运行脚本时出现错误“在 /etc/shells 文件中未找到 SHELL 变量的值” 。

最有可能的是,这个错误是在我删除了被设置为默认 shell 的 fish shell 之后开始的。

的内容/etc/shells为:

# /etc/shells:有效的登录 shell
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

我该如何修复这个问题?

答案1

问题是这样的:pkexec正在访问$SHELL以确定使用哪个shell来评估命令的其余部分;由于您卸载了fish但没有执行任何其他操作,$SHELL仍然包含/usr/bin/fish,但pkexec不被视为/usr/bin/fish有效的shell,因为/usr/bin/fish已从中删除/etc/shells

你需要做以下两件事:

  1. 为您的用户设置一个新的 shell,以便下次加载环境时$SHELL将包含有效 shell 的路径。例如,将 Bash 设置为您的用户的新 shell(替换user为您的用户名):

    sudo chsh -s /bin/bash user
    
  2. 注销/登录以重新加载环境,以便$SHELL包含用户新 shell 的路径。

相关内容