再谈Linux修改应用程序获得root权限

简介:
我之前写过一篇关于怎样就可以使你的应用程序获得root权限运行,那个对于一些测试程序或小工程的程序时比较实用,但如果你的工程文件多达几十个甚至上百,那么这种方法就不太适用了。
Ubuntu下面,我选择适用了codelite,它可以编写Windows等跨平台的程序,只是现在用的人还比较少,而且软件确实还存在比较多的问题。不过比起写makefile要方便多了,因为我移植的工程,文件太多了。
在移植中,发现程序中的部分实现需要保证在root权限下执行,这时就需要我下面的方法来改变文件的属性,使得应用程序生成的可执行文件具有root权限。
首先查看文件的权限:
jazka@jazka-desktop:~$ ls -l test
-rwxr-xr-x 1 jazka jazka 9760 2009-12-30 17:07 test
 
然后修改其拥有者为root,并继续查看:
jazka@jazka-desktop:~$ sudo chown root test
[sudo] password for jazka:
jazka@jazka-desktop:~$ ls -l test
-rwxr-xr-x 1 root jazka 9760 2009-12-30 17:07 test
 
之后修改其同组用户为root,并查看:
jazka@jazka-desktop:~$ sudo chgrp root test
jazka@jazka-desktop:~$ ls -l test
-rwxr-xr-x 1 root root 9760 2009-12-30 17:07 test
 
最后,修改其权限为任何用户可读、可写、可执行,并查看:
jazka@jazka-desktop:~$ sudo chmod 4777 test
jazka@jazka-desktop:~$ ls -l test
-rwsrwxrwx 1 root root 9760 2009-12-30 17:07 test
 
此时,你就可以在任何用户下面执行test文件了。
 
可惜的是,该可执行文件并能够以root的权限进行调试运行,因为调试时会重新生成一些目标文件,导致该可执行文件的权限等被修改了,所以回到了上面设置的第一步的状态。


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/253335,如需转载请自行联系原作者
相关文章
|
1月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
|
2月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
145 2
|
2月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
47 2
|
2天前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
20 11
|
8天前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
18 5
|
2月前
|
Unix Linux Ruby
在windows和linux上高效快捷地发布Dash应用
在windows和linux上高效快捷地发布Dash应用
|
2月前
|
Linux iOS开发 开发者
跨平台开发不再难:.NET Core如何让你的应用在Windows、Linux、macOS上自如游走?
【8月更文挑战第28天】本文提供了一份详尽的.NET跨平台开发指南,涵盖.NET Core简介、环境配置、项目结构、代码编写、依赖管理、构建与测试、部署及容器化等多个方面,帮助开发者掌握关键技术与最佳实践,充分利用.NET Core实现高效、便捷的跨平台应用开发与部署。
67 3
|
2月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
|
2月前
|
Unix Linux Go
Linux中的chmod权限问题
Linux中的chmod权限问题
30 0
|
2月前
|
Linux Windows Python
最新 Windows\Linux 后台运行程序注解
本文介绍了在Windows和Linux系统后台运行程序的方法,包括Linux系统中使用nohup命令和ps命令查看进程,以及Windows系统中通过编写bat文件和使用PowerShell启动隐藏窗口的程序,确保即使退出命令行界面程序也继续在后台运行。
下一篇
无影云桌面