ルートでVLCプレーヤーを実行する方法


23

CentOS 6.5にvlcをインストールしました。ルートとして実行したい。しかし、次のエラーが表示されます。

「VLCはrootとして実行されることは想定されていません。リアルタイムの優先順位や特権TCPポートを使用する必要がある場合は、vlc-wrapperを使用できます(Set-UID rootであり、最初に信頼できるユーザー)。」


13
好奇心から、これを行う理由は何でしょうか?
クルス14

2
vlc-wrapperそれが言うように使用しますか?
ケビン14

3
アドバイス:これをしないでください。
HalosGhost

1
これがお役に立てば幸いです。hackingzones.com/run-vlc-as-root-in-linux-ubuntu-pear-os Chirag Singh
chirag Hz

1
いくつかのレベルでは、参照されるリンクは興味深いハックです(16進エディターを使用してgetuid呼び出しをに置き換えますgetpid)。ソースコードが利用できるため、よりクリーンなアプローチは、ソースを編集してテストを完全に削除し、再コンパイルすることです。どちらの場合もそうしないことをお勧めしますが、足を撃ちたい場合は。。。
-hildred

回答:


51

これは私のために働いたものです。コンパイルは不要です。

sed -i 's/geteuid/getppid/' /usr/bin/vlc

Raspberry PiでVLCメディアプレーヤー2.0.3 Twoflower を使用する。


3
魅力のように働いた。:)
Krishnadas PC

3
うん、これは地獄:) +1
onalbi

ハハハはuidの代わりにpidをチェックするようにパッチを当てており、うまく機能しています。素晴らしいハック!
ハンシェンリック

1
これは、同様にVLC 3.0.1に素晴らしい仕事を
オフェルサダン

あまりにも私のために働いた...
ダニー

17

これを回避する1つの方法は再コンパイルです。--enable-run-as-rootフラグを渡す./configureと、vlcがrootとして実行できるはずです。上記の答えはここからです


2
再コンパイルは、私がこれを説明する唯一の方法ではありません、ただ1を提供するためにgeteuidの呼び出しを変更linuxintro.org/wiki/Run_vlc_as_root
トルステンStaerk

@ThorstenStaerk、情報を提供してくれてありがとう。
ラメシュ14年

質問に回答済みのマークを付けていただけますか?
トールステンスターク14年

@ThorstenStaerk:デッドリンク...
アレクサンドル・ブルリエ

1
@アレクサンドルブルリア:作品(再び)
トールステンスターク

1

http://www.linuxintro.org/wiki/Run_vlc_as_rootを参照してください

  • VLCバイナリをバックアップします。

    # cp /usr/bin/vlc /usr/bin/vlc-backup
    
  • geteuidVLCバイナリ内の呼び出しを見つけます。

    # 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ユーザーで実行されるはずです!


1

VLCバイナリを変更することにより、VLCをrootとして実行できます。 /usr/bin

まず、Blessのような16進エディターが必要です。

sudo apt-get install bless

次に、16進エディターでVLCバイナリを開きます。

sudo bless /usr/bin/vlc

geteuid文字列を検索して変更しgetppid、保存して終了します。

これで、VLCをルートとして起動できます。


0

VLCはルートとして実行されることは想定されていません。ごめんなさい。–ソリューション

とにかく、次のコマンドを使用してvlcをインストールしました。

# aptitude install vlc

そして、rootでvlcを実行しようとしましたが、端末でエラーが発生しました;

# vlc

VLCはrootとして実行されることは想定されていません。ごめんなさい。

リアルタイムの優先順位や特権TCPポートを使用する必要がある場合

vlc-wrapperを使用できます(Set-UID rootであることを確認し、

信頼できないユーザーが最初に実行することはできません)。

このエラーは、単純なvlcをroot特権ユーザーとして実行できないことを示しています。今何をする?パニックにならないでください。ハッキングされたソリューションはこちらです😀

# vi /usr/bin/vlc

検索しgeteuidて置き換えますgetppid

ファイルを保存して終了します。

これで動作するはずです。もう一度実行してみてください😉

または

sed -i 's/geteuid/getppid/' /usr/bin/vlc

rodvlopesで与えられた同一の解決策は18か月前に答えます!

0

プロパティをmain menu見つけvlcて設定します:

gksu -u vlc

または単に端末タイプで

gksu -u <username(no root)> vlc

たとえば、abcユーザーがいる場合、コマンドは次のようになります。

gksu -u abc vlc

0

vlc-wrapperの使用を提案する質問のコメントでKevin。私はそれを使用する方法を見つけるのに苦労しましたので、私はそれをどのように機能させたか説明します:

SUDO_UIDで非特権ユーザーを設定する必要があります:export SUDO_UID = 1000

createの下でvlcを実行するユーザーがいない場合:

useradd -g users vlc
# this will show you the uid of vlc user
id -u vlc

SUDO_UID変数を永続的にしたい場合は、bashrcに追加します。

echo "export SUDO_UID=1000" >> /root/.bashrc

>>ではなく、単一の>を記述しないように注意してください

次に、vlcの代わりにvlc-wrapperを使用します


-1
sed -i 's/geteuid/getppid/' /usr/bin/vlc

できます。


2
この特定の回答が問題を解決する理由を説明できればよいでしょう。
ジェフシャラー

1
rodvlopesで与えられた同じ解決策は8か月前に答えます!

1
-1。これは、この正確なページの別の回答のコピーアンドペーストだからです。
aggregate116​​6877

@Jeff Schaller geteuidが0を返す場合、vlcはそれがルートであることを認識します。ただし、getppidは常にゼロ以外の結果を返し、その名前の長さはgeteuidの長さと同じです。したがって、バイナリはgeteuidの代わりにgetppidをリンクするようになり、vlcはそれがルートであることを決して認識しません!
ジョージ

1
@ジョージはそれが何をしているのか知っています。私はuser149272が説明で答えを改善できることを望んでいました。
ジェフシャラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.