当前位置: 首页 > news >正文

linux环境问题

linux操作系统sudo执行程序问题

问题描述

今天在linux上编译了一个应用程序,操作系统是ubuntu,运行程序时采用的采用的是sudo方式执行,如sudo MedieServer,通过ldd命令查看MediaServer的依赖项,其依赖于libssl.so,3,于是我通过export LD_LIBRARY_PATH命令将libssl.so.3的路径(/usr/local/openssl/lib)添加到环境变量中,然后通过ldd MediaServer查看依赖关系,发现动态库已经能够找到,但是通过sudo ./MediaServer 执行程序还是提示无法找到libssl.so.3

问题分析

针对上面的问题,百思不得其解,使用ldd MediaServer查看及查看LD_LIBRARY_PATH始终都是正常的,但是一旦运行程序则无法找到libssl.so.3,非常偶然的执行了sudo ldd MediaServer,发现在sudo下确实无法找到libssl.so.3动态库,这种情况下意识到是权限问题导致的应用程序执行异常,这就有了切入点,通过查询资料,得到在linux系统中(不一定是所有的linux操作系统)sudo执行程序,一般不会将当前用户的环境变量拷贝到root用户,因为我添加该环境变量是在普通用户下添加的环境变量,当通过sudo MediaServer执行程序时,无法复制普通用户的环境变量,所以才造成动态库找不到。

问题总结

  1. sudo方式执行程序不会复制当前用户设置的环境变量
  2. 切换到root用户的方法有好几种,最开始尝试su命令,无法切换过去,最后执行了sudo su才切换到root用户
http://www.dtcms.com/a/341580.html

相关文章:

  • HyperMesh许可证分配优化策略
  • 【Ansible】变量、机密、事实
  • 福昕PDF编辑软件高级版下载与详细图文安装教程!!
  • Pub/Sub是什么意思
  • LWIP的Socket API 与实现关系
  • c#入门笔记(3)
  • 图像数据增强的高效执行
  • Linux下运行Jmeter压测
  • Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发生重平衡(reblanace)
  • 攻克PostgreSQL专家认证
  • Git Commit 提交信息标准格式
  • Python打卡Day47 注意力热图可视化
  • 字符设备驱动、块设备驱动和网络设备驱动
  • Gitee仓库 日常操作详细步骤
  • Linux服务器性能优化总结
  • 【数据结构】快速排序算法精髓解析
  • shell脚本——搜索某个目录下带指定前缀的文件
  • 50.Seata-AT模式
  • Cyberduck (FTP和SFTP工具) v9.2.3.43590
  • 189.轮转数组
  • 设计模式的一些笔记
  • list集合可以一边遍历一遍修改元素吗?
  • Rust 入门 包 (二十一)
  • 计算机网络基础复习
  • 【数据分享】295个地级市互联网用户、邮电业务数据(2001-2022)
  • win10安装最新docker 4.44.2版图文教程(2025版)
  • 3.Shell脚本修炼手册之---Shell 变量基础知识
  • Android动画小补充
  • 【Obsidian插件】HiNote
  • 爬虫项目实践之淘宝商品详情数据采集​||电商API接口