码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 在由buildroot制作出来的根文件系统中移植sudo命令


    目录

    问题描述:

    思路:

    解决步骤:

    1、下载sudo源码并解压缩:

    2、进入解压后的目录并配置编译:

    3、make & make install

    4、拷贝/usr/local/sudo/bin/sudo和/usr/local/sudo/libexec/sudo/下的所有库文件到板子上

    我遇到的问题:

    其实呀:


    问题描述:

    使用2020年版本的buildroot,制作了linux 根文件系统,结果发现其中没有sudo命令,每次ssh都需使用root权限登录。我的板子是正点原子的stm32mp157D。

    思路:

    下载sudo源码,

    交叉编译,

    在虚拟机中安装,

    最后将生成的文件移动到板子上。

    解决步骤:

    1、下载sudo源码并解压缩:

    sudo下载网址:https://www.sudo.ws/news.html

    新建文件夹并解压缩:

    tar -xvf sudo-1.8.9p5.tar.gz

    2、进入解压后的目录并配置编译:

    ./configure --prefix=/usr/local/sudo CC=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-gcc AR=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-ar --host=arm-linux-gnueabihf

    --prefix表示安装的路径

    CC表示交叉编译链,使用绝对路径

    AR也使用绝对路径

    --host一定要加,表示这是交叉编译


    3、make & make install

    4、拷贝/usr/local/sudo/bin/sudo和/usr/local/sudo/libexec/sudo/下的所有库文件到板子上

    /usr/local/sudo/bin/sudo拷到/usr/bin下,

    在板载系统内中新建路径:mkdir /usr/local/sudo/libexec/sudo,再将所有库文件拷到该新建的目录中,注意这些库文件,有两个是软连接,他们都指向当前目录下的第三个库文件,我们先删除软连接,复制第三个库文件并重命名为软连接。

    注意:板子上存放库文件的路径和虚拟机中的路径保持一致。因为库文件中已经写入了该路径。一旦两者不一致,sudo命令运行时会报错提醒。

    以上步骤参照该文:linux ubuntu18 移植sudo指令到ARM开发板记录_Robo夏的博客-CSDN博客_arm sudo

    我遇到的问题:

    1、

    安装上述步骤操作完之后,敲sudo -help报错:cannot open shared object file: No such file or directory。访问sudo库文件时,找不到文件位置。

    方法:export LD_LIBRARY_PATH=/usr/local/sudo/libexec/sudo:$LD_LIBRARY_PATH 

    添加sudo命令执行时默认的搜索路径。export只能临时使用,系统重启后便失效。我们可以将上述命令复制到文件/etc/profile的末尾,这样的话,每次系统开机都会执行一遍。

    上述方法参照:cannot open shared object file: No such file or directory解决方法_宗而研之的博客-CSDN博客

    该文章还有其他方法,如使用命令ldconfig,但是我的板载系统没有该命令。 

    2、

    虽然使用LD_LIBRARY_PATH解决了上述问题,敲sudo命令不报错,但是当重新开一个ssh窗口,用非root命令登录后,再执行sudo,发现还是报错cannot open shared object file。

    这个问题我就没法解决了。

    移植失败

    其实呀:

    在buildroot源码中敲make menuconfig能找到sudo命令,我们选中它,重新制作根文件系统就行了,哎!!!!白忙活一场!

  • 相关阅读:
    蓝桥杯真题 - 费解的开关题解
    Vue2023 面试归纳及复习(2)
    基于SpringBooy的安康旅游网站的设计与实现
    淘宝API技术文档解析,从入门到实战
    09_上传漏洞_文件包含&二次渲染&代码逻辑漏洞
    [go 面试] 分布式事务框架选择与实践
    js数组操作——对象数组根据某个相同的字段分组
    【TES745D】青翼自研基于复旦微的FMQL45T900全国产化ARM核心模块(100%国产化)
    行为型模式-解释器模式
    软件‘小程序‘前台开发软件定制的知识|app网站搭建
  • 原文地址:https://blog.csdn.net/hannibaychty/article/details/126890460
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号