我的系统上的 sudo 标志/参数不起作用。
peter@Sirius:~$ sudo -h
env: -h: No such file or directory
peter@Sirius:~$ sudo -u postgres
env: -u: No such file or directory
但是,sudo 路径中的可执行文件可以正常工作。我的问题不是被从管理员组中删除,也不是文件损坏/etc/sudoers
。重新安装 sudo 也没有解决问题——https://askubuntu.com/a/46459/42720
最近升级到 12.04;升级后没有其他问题。
有什么想法吗?谢谢
答案1
问题可能在于sudo
您正在运行的可能与系统的不同sudo
。
这(可能是)用户配置。
首先:检查使用是否/usr/bin/sudo
正常,以测试该假设。
如果确实如此:那么您正在使用另一个二进制文件或别名
使用另一个二进制文件:用户可以制作不同版本的系统二进制文件来使用(通常,它们只是脚本)。要检查这种可能性,请运行which sudo
。这将告诉您正在运行的位置sudo
。如果它显示 /usr/bin/sudo,那么我们排除了这种可能性。如果是其他原因,那可能就是问题所在
使用别名:别名是一种轻量级的个性化命令方法。您无需编写二进制文件,只需进行一些小改动,例如添加一个选项。这在读取命令的程序 BASH 的配置脚本中完成。要检查这一点,请键入alias
并查看 sudo 是否出现在列表中。如果出现,那么这可能是问题所在。使用find ~/ -maxdepth 1 -size -20k -exec grep -H 'alias sudo.*' {} \;
查找设置别名的文件(一些常见的猜测是:~/.bashrc;~/.bash_profile;~/.bash_login 和 ~/.profile)。如果找不到该文件,请改用find ~/ -size -20k -exec grep -H 'alias sudo.*' {} \;
查看所有用户的文件。(这将需要长的时间)