스크린 세션이 루트로 실행 중입니까? (그렇지 않아야 함) node.js

스크린 세션이 루트로 실행 중입니까? (그렇지 않아야 함) node.js
cd /serv  
screen -R node  
{in the screen}  
node test.js  
C^a d  

초기의,

ls -l /dev/pts  
total 0  
crw--w---- 1 tick-tock tty 136, 0 2011-04-19 16:41 0  
crw--w---- 1 tick-tock tty 136, 1 2011-04-19 16:41 1 

그런데 불과 몇 초 뒤

ls -l /dev/pts  
total 0  
crw--w---- 1 tick-tock tty 136, 0 2011-04-19 16:47 0  
crw--w---- 1 root      tty 136, 1 2011-02-21 20:00 1  

스크린 터미널에서 루트로 전환하는 방법은 무엇입니까? 이는 노드 서버가 실제로 루트 권한으로 실행되고 있음을 의미합니까? 적당하지 않은, 알맞지 않은. 문제가 될 수 있는 유일한 점은 iptables가 포트 80을 노드 서버가 수신 대기하는 포트 8000으로 전달하므로 루트로 실행될 필요가 없다는 것입니다. 잘못된 위치라면 사과드립니다. Node.js 커뮤니티에 문의해야 할까요?

또한 사전에 su 루트를 실행하거나 sudo 명령을 실행하지도 않았습니다.

답변1

귀하의 시스템에서 작업을 처리하는 방법을 올바르게 이해했다면 시스템이 screen분리되면 시스템이 파괴되고 pts어떤 이유로 다시 생성됩니다.udev

udev동적으로 생성되는 파일 시스템인 /dev에서 장치의 생성과 파괴를 제어하는 ​​하위 시스템입니다. 생성/파괴는 의사 터미널 마스터/슬레이브 쌍을 생성하는 데 사용되는 pts에 의해 처리됩니다 . 해당 슬레이브 또는 의사 터미널 호스트입니다. 따라서 표시되는 모든 권한 수정은 해당 장치 노드를 파괴하고 생성한 직접적인 결과이지,ptmxpts/*PTM개정하다. 파일 날짜의 경우, 장치 노드는 복제본이므로 이러한 노드를 생성하는 데 사용된 원본 장치의 생성 날짜가 출력에 표시되는 날짜일 가능성이 높습니다 ls.

  • man ptmx-- ptmx가 새로운 pts 의사 터미널 장치 노드를 생성하는 방법을 설명합니다.

내가 이해하지 못하는 것은 귀하의 시스템이 내 시스템과 동일하게 작동하는 이유입니다 /dev/pts/. 인식된 장치 권한 변경이 발생하지 않거나 완전히 사라지거나(이것은 그래야 합니다) 내 작업에 관계없이 권한이 변경되지 않습니다. .이 변경됩니다(예: 화면이 분리되고 장치는 그대로 유지되며 파괴/재생되지 않습니다.). 그뿐만 아니라 새로 생성된 장치와 pts/*관련된 날짜 도 현재 날짜입니다.

한 가지 가능성은 사용 중인 VPS가 이 동작과 관련이 있다는 것입니다. 예를 들어 VPS에서 분산 업그레이드를 수행할 수 없었습니다. 사용 중인 시스템은 크랙하여 설치한 커널 버전 하나만 허용했기 때문입니다. 자신의 커널을 업데이트하지 못하게 하는 제한 사항은 다른 하위 시스템의 기능에도 영향을 미칠 수 있습니다. 이것은 단지 추측일 뿐이지만 의미가 있습니다.

udev가 다르게 구성되었을 수도 있습니다.

Gilles의 큰 도움을 받아 3판이 나왔습니다. ;)

답변2

Screen에는 여러 가지 컴파일 시간 옵션이 있으며 그 중 하나는 다중 사용자 모드입니다. 이 모드로 설치하면 화면은 일반적으로 suid 루트를 사용하여 설치됩니다. 바라보다다중 사용자 모드 문서. 귀하의 제품도 이렇게 설치되어 있습니까? 의 출력은 무엇입니까 ls -l /usr/bin/screen?

관련 정보