You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04编译原生su源码后无法正常认证的问题求助及相关疑问

Ubuntu 20.04编译原生su源码后无法正常认证的问题求助及相关疑问

最近我在Ubuntu 20.04上尝试编译原生的su工具,先从官方源码开始测试(没做任何代码修改),结果遇到了认证失败的问题,具体过程如下:

  1. 首先执行命令获取login相关源码:

    apt-get source login
    

    得到了shadow-4.8.1目录。

  2. 进入该目录后,依次运行:

    ./configure
    make
    
  3. 尝试运行编译好的su:

    src/su testuser
    

    结果提示认证失败;但系统自带的/usr/bin/su testuser却能正常工作,完全没问题。

我猜测是编译过程中缺少了某些必要的模块或配置参数,于是去查找shadow包的官方构建配置,看到官方使用的./configure命令是这样的:

./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking --disable-shared --without-libcrack --mandir=/usr/share/man --with-libpam --enable-shadowgrp --enable-man --disable-account-tools-setuid --with-group-name-max-length=32 --without-acl --without-attr --without-su --without-tcb

注意到里面有--without-su参数,用这个配置编译确实不会生成su二进制文件。于是我把这个参数改成--with-su重新编译,但新生成的su还是无法通过认证,依然报错。

现在有两个疑问想请教大家:

  • 哪里可以找到Ubuntu原生su的完整构建日志?
  • 为什么新编译的su无法识别系统中已存在的用户(这些用户明明在/etc/shadow和/etc/passwd里)?

备注:内容来源于stack exchange,提问作者Flibustero Blanco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:48:06