我在centos 6.5上安装了vlc。我想以 root 身份运行它。但我收到以下错误,
“VLC 不应该以 root 身份运行。抱歉。如果您需要使用实时优先级和/或特权 TCP 端口,您可以使用 vlc-wrapper(确保它是 Set-UID root 并且不能由非用户运行)值得信赖的用户优先)。”
答案1
这对我有用。无需编译。
sed -i 's/geteuid/getppid/' /usr/bin/vlc
使用VLC媒体播放器2.0.3Raspberry Pi 上的 Twoflower。
解释:
初始化脚本检查 UID 是否等于 0。零是为 root 用户保留的。使用sed
替换geteuid
会getppid
愚弄初始化脚本,因为它始终是> 0
.
虽然不建议以 root 身份运行 VLC,但它是有效的。请注意风险,显然不要在生产环境中这样做。
对于 Freebsd 和其他挑剔的 unices 和 macos,请使用正确的完整语法:
sed -i '' 's/geteuid/getppid/' /usr/local/bin/vlc
答案2
解决这个问题的一种方法是重新编译。将标志传递--enable-run-as-root
给./configure
vlc 应该能够以 root 身份运行。以上答案来自这里。
答案3
看以 root 身份运行 vlc - LinuxIntro:
备份 VLC 二进制文件:
# cp /usr/bin/vlc /usr/bin/vlc-backup
geteuid
找到对VLC 二进制文件内部的调用:# needle=$(objdump -d /usr/bin/vlc | grep euid | tail -1 | awk '{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6;}')
将呼叫替换为仅交付
01
:# sed -ir "s/$needle/\xb8\x01\x00\x00\x00/" /usr/bin/vlc
测试一下
VLC 现在应该在 root 用户下运行!
答案4
您将能够通过修改 VLC 二进制文件以 root 身份运行 VLC,该二进制文件位于/usr/bin
首先,你需要一个十六进制编辑器,比如 Bless:
sudo apt-get install bless
然后,您将使用十六进制编辑器打开 VLC 二进制文件:
sudo bless /usr/bin/vlc
geteuid
按搜索并更改字符串getppid
,保存并退出。
您现在可以以 root 身份启动 VLC。