node.js mkdirp를 사용하여 다른 사용자 영역에 디렉토리를 만들려고합니다.node.js with mkdir/mkdirp 및 setuid
다른 말로하면, 나는 사용자 foo와 bar를 가지고 있습니다. 나는 mkdirp를 foo 사용자로 실행시키고 바 영역에 디렉토리를 생성하고 싶습니다.
이전 SO 게시물에서 많은 실험을 통해이 작업을 수행 할 수없는 것으로 보입니다. 나는 두 bar를 foo의 그룹에 넣고, usermod, foo를 bar의 그룹에 넣고, setfacl으로 광범위하게 시도했다.
이것은 내가 할 수있는 것으로 생각하면 조금 이상합니다. su foo;을 열고 바의 디렉토리에서 디렉토리를 만들고, 터치하고, 삭제하는 등의 작업을 수행하십시오.
나는 일반 fs.mkdir 명령을 사용하여 시도해 보았지만 동일한 문제 (아마도 놀랄 일은 없음)가 있습니다. 코드는 아래에 있습니다.
노드 프로그램이 처음 시작될 때 setuid/setgid를 사용하여 실행 권한을 사용자 'root'에서 'foo'사용자로 다운 그레이드합니다.
내 질문 : 루트 권한을 어떻게 든 유지할 수 있지만 mkdirp 명령 만 실행하면 될만큼 루트 권한을 길게 제한 할 수 있습니까?
귀하의 시간과 배려에 감사드립니다. 내 실험적인 코드는 다음과 같습니다 :
fs = require('fs') ;
process.setgid(556); // foos groupid
process.setuid(560); // foos userid
fs.mkdir('/test1/test2/testTester/', 0770, function(err){
if (err) console.error(err) else console.log('works!');
});
ID foo는;
UID = 560 (foo는) GID = 556 (foo는) 그룹 = 556 (foo에) (512) (바)
ID 바;
UID = 515 (바) GID = 512 (바) 그룹 = 512 내가 (지금은) 해결 솔루션을 발견