답변:
단순한 해결책은 다음과 같이 VLC를 사용자의 로그인 쉘로 만드는 것입니다.
joe:AU03oahyYRjl6:1234:56:Joe Smith:/usr/joe:/usr/bin/cvlc
또는 원하는 프로그램을 실행할 수 있습니다. 이 제한은 명령 줄 인수를 지정할 수 없다는 것입니다. 당신은 아마 정상을 가질 필요가 있습니다. passwd
항목 :
joe:AU03oahyYRjl6:1234:56:Joe Smith:/usr/joe:/bin/sh
각 사용자에게 .profile
그 말
exec /usr/bin/cvlc --
(귀하의 옵션)playlist.xspf
또는 원하는 모든 인수.
"ASCII 비디오 렌더링"이 무슨 뜻인지 잘 모르겠습니다. 사용자 워크 스테이션에서 오디오 / 비디오를 재생 하시겠습니까? 사용자가 X11 서버를 실행하고 있습니까? 그렇다면,
w=`who am i`
d=`expr "$w" : '.*(\(.*\))'`
로 .profile
, 다음을 추가하십시오
--x11-display "$d":0
에 당신의 선택 . 경고 :이 문제를 일으킬 수있는 다양한 조건이 있습니다.
vlc
비밀 번호가 없으므로 귀하의 익명 성 요구 사항을 충족시킬 것이라고 공개됩니까?
vlc
'에스 .profile
원본 주소의 유효성을 검사 할 수는 있지만 보안이 거의 제공되지 않습니다.
telnetd
우분투에서,하지만 난 아직도 조사 중이 야. 그러나 나는 인증 된 사용자를 위해 비디오를 재생할 수있었습니다. test
간단한 쉘 스크립트를 작성하고이를 로그인 쉘로 설정하십시오. #!/bin/bash \n cvlc -V aa /var/local/vlc/test.mp4
(수퍼 유저가 답장에서 줄 바꿈을 접기 때문에 여기에 개행 대신 \ n을 사용합니다.)
http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLE_ADDRESS_EXEC
socat TCP4-LISTEN:5555,fork,tcpwrap=script \
EXEC:/bin/myscript,chroot=/home/sandbox,su-d=sandbox,pty,stderr
에이 연결을 허용하는 간단한 서버 (TCP4-LISTEN) 및 fork 각 연결에 대한 자식 프로세스. 모든 어린이는 하나의 릴레이 역할을합니다. 클라이언트는 데몬 프로세스 이름 "script"에 대한 규칙과 일치해야합니다. /etc/hosts.allow 및 /etc/hosts.deny, 그렇지 않으면 액세스가 거부됩니다. ( "man 5 hosts_access"참조). 프로그램을 실행하기 위해 아동 chroot를 / home / sandbox로, su를 사용자 샌드 박스로, 그리고 나서 / home / sandbox / bin / myscript 프로그램을 시작합니다. Socat 및 myscript pseudo tty (pty)를 통해 통신한다. myscript의 stderr로 리디렉션됩니다. stdout, 그래서 그것의 에러 메시지는 socat을 통해 연결된 클라이언트.
5555를 23 (텔넷의 기본 포트 번호)으로 변경할 수 있습니다.
/ bin / myscript를 VLC 스크립트 또는 바이너리로 변경하십시오.
http://www.dest-unreach.org/socat/doc/socat.html#ADDRESS_TYPES
EXEC:<command-line>
통신을 수립하는 하위 프로세스를 포킹합니다. 부모 프로세스와 함께 실행하고 지정된 프로그램을 다음과 같이 호출합니다. execvp (). & lt; 명령 줄 & gt; 인수가 분리 된 간단한 명령입니다. 단일 공백으로. 프로그램 이름에 '/'가 포함 된 경우, 마지막 '/'는 ARGV [0]으로 간주됩니다. 프로그램 이름이 상대 일 경우 경로에서 $ PATH를 통해 프로그램을 찾기위한 execvp () 의미가 적용됩니다. 프로그램이 성공적으로 시작된 후, socat은 프로세스를 생성하고 UNIX 도메인 소켓을 사용하여 stdout에서 읽음 socketpair ()에 의해 기본값 당.