Centos 6.5에 vlc를 설치했습니다. 루트로 실행하고 싶습니다. 하지만 다음과 같은 오류가 발생합니다.
"VLC는 루트로 실행되어서는 안 됩니다. 죄송합니다. 실시간 우선 순위 및/또는 권한 있는 TCP 포트를 사용해야 하는 경우 vlc-wrapper를 사용할 수 있습니다. 사용자) 그럴 가치가 있습니다. 신뢰할 수 있는 사용자가 먼저입니다).
답변1
이것은 나에게 효과적입니다. 컴파일할 필요가 없습니다.
sed -i 's/geteuid/getppid/' /usr/bin/vlc
VLC 미디어 플레이어 사용2.0.3라즈베리파이의 투플라워.
설명하다:
초기화 스크립트는 UID가 0인지 확인합니다. 0은 루트 사용자용으로 예약되어 있습니다. sed
대체를 사용하면 항상 그렇듯이 초기화 스크립트를 속이게 geteuid
됩니다 .getppid
> 0
VLC를 루트로 실행하는 것은 권장되지 않지만 작동합니다. 위험을 인지하고 프로덕션 환경에서는 이 작업을 수행하지 마십시오.
Freebsd 및 기타 까다로운 unices 및 macos의 경우 올바른 전체 구문을 사용하십시오.
sed -i '' 's/geteuid/getppid/' /usr/local/bin/vlc
답변2
이 문제를 해결하는 한 가지 방법은 다시 컴파일하는 것입니다. 플래그를 vlc --enable-run-as-root
에 전달하면 ./configure
루트로 실행될 수 있습니다. 위의 답변은 다음에서 나왔습니다.여기.
답변3
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가 루트 사용자로 실행되어야 합니다!
답변4
다음 위치에 있는 VLC 바이너리를 수정하여 루트로 VLC를 실행할 수 있습니다./usr/bin
먼저 Bless와 같은 16진수 편집기가 필요합니다.
sudo apt-get install bless
그런 다음 16진수 편집기를 사용하여 VLC 바이너리를 엽니다.
sudo bless /usr/bin/vlc
geteuid
검색을 누르고 문자열을 변경한 후 getppid
저장하고 종료합니다.
이제 루트로 VLC를 시작할 수 있습니다.