我之前写过一篇关于怎样就可以使你的应用程序获得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,如需转载请自行联系原作者