sudo 권한없이 애플리케이션을 빌드하는 방법은 무엇입니까?


15

사용자가 sudo / admin 권한 없이도 원하는 응용 프로그램 (예 : ./configure, make && make install)을 빌드 할 수 있도록 Ubuntu 9.10 서버에서 무엇을 설정해야합니까?

앱을 빌드하는 데 필요하지 않은 시스템 부분에 대한 액세스 권한을 사용자에게 부여 해야하는 보안 위험이 있다고 생각합니다.

답변:


40

사용자가 사용하는 경우

./configure --prefix=/home/user/opt/

또는 cmake 프로젝트

cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

그러면 기본 / usr / local / 대신 해당 접두사에 프로그램이 설치되고 사용자는 다음과 같이 프로그램을 실행할 수 있습니다.

/home/user/opt/bin/program

전체 경로없이 이름 만 사용하여 프로그램을 실행할 수있게 /home/user/opt/bin하려면 경로 환경 변수에 추가해야하는 사용자 .profile을 편집하고 다음 행을 추가하십시오.

export PATH=/home/user/opt/bin:$PATH

이 방법으로 설치된 프로그램은 특정 사용자에게만 공개되지만이를 수행하는 방법입니다


다른 사용자가 전체 경로를 제공하고 권한이 적절하게 설정된 경우 이와 같이 설치된 프로그램을 사용할 수 있습니다. 기본 umask가 데스크탑 설치에서 이것을 허용하는 것으로 보입니다.
Alistair Buxton

내가 컴파일하고있는 코드베이스 Makefile에는 구성 이 없었지만 방금 들어가서 prefix = /some/path줄을 내 홈 디렉토리 (후행 슬래시 없음)로 변경 한 다음 make installsudo없이 실행했습니다. 모두 이제 작동합니다. 감사합니다.
Big Rich

8

사용자는 sudo 권한없이 애플리케이션을 빌드 할 수 있습니다. sudo 권한이 필요한 유일한 시간은 시스템 디렉토리에 무언가를 설치하려는 경우입니다.

./configuremakesudo를 권한없이 항상 작동합니다. make install이 응용 프로그램을 설치하기 때문에 일반적으로 요구 권한을 sudo를 /usr/local또는 /usr(때때로 /opt).

그러나 ./configure --prefix=~/usr/local설치가 사용자의 홈 디렉토리 트리 내에서 수행되는 방식으로 설치 경로의 접두어를 변경하는 경우 sudo 권한이 필요하지 않습니다 make install.


여전히 귀하의 답변이 완전히 백업되지 않았다고 생각합니다. 왜 ./configuremake작업을 항상 하지 않고 sudo? sudo make install예를 들어 계속 실행하는 사람에게 어떻게 정당화해야 합니까?
Nikos Alexandris

0

txwikinger 가 말한 것에 덧붙여 , 당신은 또한 상승 권한을 필요 fakerootdpkg하지 않고 .deb 패키지를 구축 할 수있는 기회를 제공 할 수도 있습니다 . 물론, 이들을 설치하려면 일반적으로 sudo 액세스가 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.