为什么我不能在 Ubuntu 上使用“su --session-command”?

为什么我不能在 Ubuntu 上使用“su --session-command”?

在尝试解决问题时,我发现--session-commandsu这里。我尝试在工作中的 Ubuntu 12.04 系统上使用它,但出现“无法识别的选项”错误。果然,它甚至没有出现在手册页上su

链接的手册页确实说--session-command“不鼓励”,但没有说明原因。

出于好奇,我连接到了我工作上的 CentOS 6.2 服务器,并且--session-command被识别了。

进一步的研究让我发现suUbuntu 使用的 来自 软件包login,而 CentOS 使用的 来自coreutils。Ubuntu 也coreutils默认安装了一个软件包,但它不包含 FSF 的标准su实现。详细比较显示,coreutils两个发行版的 都包含 105 个可执行文件,但存在一些差异(其中大部分似乎只是文件的安装位置)。

我的问题是:--session-commandUbuntu(或 Debian)的超级用户命令是否故意省略了它,还是 Ubuntu 的不同实现只是没有赶上 FSF?如果是故意的,省略的原因是什么?相关问题:为什么不使用全部FSF 的 GNU Utils 呢?

我确信这在某处有记录,但根据我的搜索条件,谷歌没有提供。

答案1

Ubuntu 和 Debian 自从开始使用 shadow-utils 包以来就一直使用(日志文件可追溯到 1996 年 1 月 1 日)。util-linuxsu最近从 coreutils 移到了 util-linux 包,coreutils 中的版本需要专门用它构建(大多数发行版不需要)。显然,唯一的原因是 Debian 一直使用 shadow-util 自己的实现,而不是 coreutils su。


标题中你会看到一条消息,说还有另一个shadow-utils 提供的手册页与 Debian/Ubuntu 使用的软件包相同。如果您查看 Ubuntu 和 CentOS 的手册页底部,您也会注意到这一点。

总而言之,你读错了人。

相关内容