루트에서 VLC 플레이어를 실행하는 방법


23

centos 6.5에 vlc를 설치했습니다. 루트로 실행하고 싶습니다. 하지만 다음과 같은 오류가 발생합니다.

"VLC는 루트로 실행되지 않아야합니다. 죄송합니다. 실시간 우선 순위 및 / 또는 권한이 부여 된 TCP 포트를 사용해야하는 경우 vlc-wrapper를 사용할 수 있습니다 (VUI-wrapper 루트인지 확인하십시오). 신뢰할 수있는 사용자부터) "


13
호기심에서, 이것을하는 이유는 무엇입니까?
kursus 2014

2
그렇게 vlc-wrapper말하는 것처럼 사용 합니까?
케빈

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 1

3
Yeah This Is Hell :) +1
onalbi

하하하 대신 uid 대신 pid를 확인하도록 패치하면 훌륭하게 작동합니다. 멋진 해킹!
hanshenrik

1
이것은 vlc 3.0.1에서도 훌륭하게 작동했습니다
Ofer Sadan

나를 위해 일한 ...
대니

17

이 문제를 해결하는 한 가지 방법은 재 컴파일입니다. 패스 --enable-run-as-root에 플래그를 ./configure하고 VLC는 루트로 실행 할 수 있어야한다. 위의 답변은 여기에서 입니다.


2
유일한 방법은되지 컴파일, 그냥에서이 설명 1.을 제공하기 위해 geteuid에 대한 호출을 변경 linuxintro.org/wiki/Run_vlc_as_root
토르스텐 Staerk

@ThorstenStaerk, 정보를 제공해 주셔서 감사합니다.
Ramesh

질문에 답변 된 것으로 표시 하시겠습니까?
Thorsten Staerk 8

@ThorstenStaerk : 죽은 링크 ...
Alexandre Bourlier

1
@Alexandre Bourlier는 : (다시) 작동
토르스텐 Staerk

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가 루트 사용자로 실행됩니다!


1

VLC 바이너리를 수정하여 루트로 VLC를 실행할 수 있습니다. /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

그리고 루트로 vlc를 실행하려고했는데 터미널에서 오류가 발생했습니다.

# vlc

VLC는 루트로 실행되지 않아야합니다. 죄송합니다.

실시간 우선 순위 및 / 또는 권한있는 TCP 포트를 사용해야하는 경우

vlc-wrapper를 사용할 수 있습니다 (Set-UID 루트인지 확인하고

신뢰할 수없는 사용자는 먼저 실행할 수 없습니다.)

이 오류는 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

Kevin은 질문에 대한 의견에서 vlc-wrapper를 사용하도록 제안했습니다. 사용 방법을 찾는 데 어려움이 있었으므로 작동 방식을 설명하겠습니다.

SUDO_UID에서 권한이없는 사용자를 설정해야합니다. export SUDO_UID = 1000

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
이 특정 답변이 문제를 해결하는 이유를 설명 할 수 있다면 좋을 것 입니다.
Jeff Schaller

1
rodvlopes에 제공된 동일한 솔루션은 8 개월 전에 응답합니다!

1
이 정확한 페이지에 다른 답변을 복사하여 붙여 넣기 때문에 -1입니다.
집합

@Jeff Schaller geteuid가 0을 반환하면, vlc는 그것이 루트임을 알고 있습니다. 그러나 getppid는 항상 0이 아닌 결과를 반환하며 이름의 길이는 geteuid의 길이와 동일합니다. 따라서 바이너리는 이제 geteuid 대신 getppid로 연결되며 vlc는 루트를 인식하지 못합니다!
George

1
@George 나는 그것이 무엇을하고 있는지 알고있다. user149272가 설명을 통해 답변을 향상시킬 수 있기를 바랍니다.
Jeff Schaller
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.