비밀번호를 묻지 않고 Eclipse PyDev 프로젝트에서 감독자 명령을 실행하는 방법은 무엇입니까?

비밀번호를 묻지 않고 Eclipse PyDev 프로젝트에서 감독자 명령을 실행하는 방법은 무엇입니까?

따라서 npm 패키지가 설치되어 있는지 확인해야 하는 다음 코드가 있습니다.

def is_installed(name, as_global=True):
    # Returns whether NPM package is installed. 
    s = shell(_get_npm_command("ls -p --depth 0", as_global))
    match = re.search(r'\b%s\b' % (name), s['stdout'])
    if match:
        return True
    return False

쉘 함수는 subprocess.Popen()을 둘러싼 래퍼입니다.

def shell(c, stdin=None, env={}):
    # Simplified wrapper for shell calls to subprocess.Popen()
    environ = os.environ
    environ["LC_ALL"] = "C"
    for x in env:
        environ[x] = env[x]
    if not "HOME" in environ:
        environ["HOME"] = "/root"
    p = subprocess.Popen(shlex.split(c),
            stderr=subprocess.PIPE,
            stdout=subprocess.PIPE,
            stdin=subprocess.PIPE,
            env=environ)
    data = p.communicate(stdin)
    return {"code": p.returncode, "stdout": data[0],
        "stderr": data[1]}

다음과 같이 get_npm_command를 사용하세요.

def _get_npm_command(command, as_global, path=None):
    # returns npm command
    if as_global:
        return _get_global_npm_command(command)
    else:
        return _get_local_npm_command(command, path)

def _get_global_npm_command(command):
    # returns global npm command
    os.chdir(NPM_PATH)
    return "gksu -u npm 'npm " + command + " -g'"

def _get_local_npm_command(command, install_path):
    # returns local npm command
    if install_path:
        os.chdir(install_path)
    return "npm " + command + " "

보시다시피 최종 명령은 다음과 같습니다.

gksu -u npm npm ls -p --depth 0

즉, 얼마 전 npm에서 루트 권한을 사용하지 말 것을 권장했기 때문에 전역 npm 패키지를 설치하기 위해 npm이라는 사용자를 만들었습니다. 그들은 마음을 바꿨지만 누군가가 제안한 온라인에서 찾은 해결책을 고수할 것입니다.

어쨌든 gksu는 이 명령에 대한 비밀번호를 묻는 메시지를 표시하지만 npm에는 비밀번호가 없으므로 비밀번호를 묻지 않고 이 명령을 실행할 수 있기를 원합니다.

나는 다음을 시도했습니다 :

/etc/sudoers.d/arkos.sudo

npm     ALL=(ALL) NOPASSWD: /usr/bin/npm

..하지만 별 효과는 없는 것 같습니다.

관련 정보