linux上chrome、vlc等程序root不能运行的解决办法
Tofloor
poster avatar
1354057778
deepin
2015-09-23 02:51
Author
本帖最后由 1354057778 于 2015-9-22 19:12 编辑

   chrome、vlc等程序使root用户无法使用的原理是:它获取程序的所有者,如果它是root用户,就让它不能运行。
   程序中用到的函数是geteuid()。geteuid就是get essensial user id,获取有效用户id。每一个用户都有一个id,root用户id为0,普通用户id为1000以上。
   知道原理后就可以得出解决办法了,就是将geteuid替换成getppid。getppid是获取此进程的父进程id,由于它是独立进程,它的父进程就是init进程(启动后的第一个进程),进程id为1,永远不可能为0。
   首先查询程序的位置,以chromium为例,
  locate chromium
   选取的路径是 /usr/lib/chromium/chromium
   不是/usr/bin/chromium,因为这个文件是一个脚本文件而不是二进制程序,然后

   vim /usr/lib/chromium/chromium
   输入/geteuid,输入i进入输入模式,将geteuid改成getppid,然后ESC,输入wq,保存退出,这样程序root用户就可以运行了,vlc等其他程序也是一样的办法。


Reply Favorite View the author
All Replies
hsyysy
deepin
2015-09-23 03:37
#1
本帖最后由 hsyysy 于 2015-9-22 21:31 编辑

我很好奇chrome,vlc哪些情况需要使用root用户,楼主可否说明一下?
Reply View the author
Comments
pjbright
2015-09-23 04:36
+1
pjbright
deepin
2015-09-23 04:29
#2
https://bbs.deepin.org/post/32574
我很好奇哪些情况需要使用root用户,楼主可否说明一下?

请对从WIN过来的朋友宽容些。一些习惯已经被惯坏了。。。
使用root用户的情况还是很多的,比如备份或者还原的时候,比如反复测试驱动的时候
从你的头像可以猜测是从Archlinux过来逛的吧,很羡慕她的WIKI写的如此之好
以致于让你也养成了一个孤独的侠客了

我在想如果能在FreeBSD的WIKI上能读到如ARCH一样的关于KVM的文章的话就谢天谢地了
Reply View the author
SnDream
deepin
2015-09-23 04:33
#3
https://bbs.deepin.org/post/32574
请对从WIN过来的朋友宽容些。一些习惯已经被惯坏了。。。
使用root用户的情况还是很多的,比如备份或 ...

ROOT敢死队啊这个……
平时还是用sudo来执行高级权限命令吧,养成好习惯。
Reply View the author
hsyysy
deepin
2015-09-23 05:31
#4
https://bbs.deepin.org/post/32574
请对从WIN过来的朋友宽容些。一些习惯已经被惯坏了。。。
使用root用户的情况还是很多的,比如备份或 ...

抱歉没有写清楚,我是指chrome,vlc这样的程序什么情况下使用root。
Reply View the author
byboating
deepin
2015-09-23 17:28
#5
学到东西,谢谢
Reply View the author
okeyear
deepin
2015-09-23 18:55
#6
archlinux好像确实会提示root用不不能运行
Reply View the author
New Thread

Popular Events

More
国际排名
WHLUG