단일 사용자 전용으로 DEB 파일로 응용 프로그램을 설치하려면 어떻게합니까?


33

소프트웨어 센터 또는 DEB 파일을 통해 응용 프로그램을 설치하는 경우 일반적으로 모든 사용자를 위해 시스템 전체에 설치됩니다.

단일 사용자에게만 응용 프로그램을 설치하는 방법이 있습니까?

답변:


5

달성하고자하는 것에 따라이 작업을 수행하는 다른 방법이있을 수 있습니다 (또는 적어도 원하는 기능에 대한 해킹을 제공하십시오).

여러 가지 방법으로 소프트웨어를 설치하면 자원을 사용할 수있게하거나 이미 시스템에있는 항목에 액세스 할 수 있습니다.

프린터에 대한 액세스 권한 부여 또는 사용자가 특정 디렉토리에서 프로그램을 실행할 수 있도록 허용하는 방법에 관계없이이를 수행하는 방법이 있으며, 우분투 고유의 솔루션이지만 이러한 유형의 솔루션은 일반적으로 .deb 설치 이후에 추가됩니다.

다음은 추가 할 수있는 두 가지 일반 설치 후 제어 클래스입니다. 예를 들어 엄격하게 통제 된 그룹 정책이있는 경우와 같이 올바른 환경이 제공되면 기본 시스템을 구축 한 후에는 더 쉬울 수 있습니다. 이러한 종류의 권한은 사용자 또는 그룹 별 인증 및 권한을 부여 할 수있는 LDAP 또는 유사한 시스템에 연결될 수도 있습니다.

가시성 제어
나는 아마도 다소 비슷한 상황을 겪었지만 내 경우에는 사용자가 (아직) 매우 정교하지 않았습니다 (모두 7 세 미만). 나에게 Gnome 메뉴를 숨기거나 데스크탑 런처를 제거하는 것이 효과가있었습니다.

디렉토리에서 실행 가능 비트를 제거하면 프로세스가 해당 파일을 검색하거나 통과 할 수 없습니다. 효과적으로 보이지 않게하고, 사용자가 사용할 수 없게 만들 수 있습니다. 예를 들어 파일 액세스를 기반으로 메뉴를 작성하는 기본 시스템 정책이있는 경우 이러한 종류의 미용 솔루션을 확보 한 후 추가 노력없이 후속 설치에 사용할 수 있습니다.

실행 제어
리소스 제어는 Unix 권한, apparmor 프로파일, SELinux 권한 등을 통해 수행 할 수 있습니다. 어플리케이션에 따라 다른 레벨의 제어 필터링이있을 수 있습니다. 보다 구체적인 솔루션이없는 경우 사용자 또는 프로세스 액세스를 제어하기 위해 특정 프로그램 주위에 래퍼를 작성해야 할 수도 있습니다.


3
가시성과 실행 제어 측면 분리를위한 +1
Takkat

10

dpkg이 설계 목표 아니므로 도움이되지 않습니다. 시스템에 설치된 루트 소유의 유일한 패키지 인구 조사가 되길 원합니다.

명심해야 할 유일한 것은 패키지를 추출하고 파일을 홈 디렉토리에 수동으로 배치하는 것입니다.

그러나 이것은 일부 일에만 적용됩니다. 많은 패키지가 청크 (실행 파일 또는 스크립트 /usr/bin, 라이브러리 /lib및 기타 복장 /usr/share등) 로 분할되며 이러한 위치는 빌드 스크립트에 의해 하드 코딩됩니다. 따라서 이와 같은 것을 시도하면 안으로 들어갑니다 ~. 의존성을 풀기 위해 몇 시간을 할애 할 수 있지만 암 치료법을 찾거나 세계의 아름다움을 흡수하는 것과 같은 시간에 유용한 일을 할 수 있습니다.

소프트웨어를 작성하는 사람으로부터 패키지되지 않은 버전을 가져 오는 것이 훨씬 좋습니다. 거의 모든 무료 소프트웨어는 어떤 형태의 압축 아카이브 형태로 소스로 제공되므로이를 확보하고 빌드하십시오. 당신은 make install단계를 수행하지 않습니다 . 앱은 빌드되었으므로 원하는 곳에 두십시오.


1
마지막 옵션에 관해서는 : 그것은 (단순한 프로그램) 경우에 도움이 될 것 같지만 일반적으로 패키지는 init 스크립트를 설치 하거나 /etc/init구성 파일을 /etc찾거나 다른 경로를 하드 코딩했습니다.
준비

2
autoconf 기반 프로젝트 는를 통해 사용자 정의 설치 디렉토리를 설정할 수 있습니다 ./configure --prefix=$HOME/local.
Ingo Karkat

6

나는이 주제에 대해 너무 모른다, 그러나 당신이 다른 디렉토리로 대신 패키지를 설치할 수 있습니다 것을 다른 답변에서 보인다 /dpkg의 사용 --root매개 변수를 다음을 chroot패키지 "이었다 디렉터리에 설치됨 "(사용자의 홈 디렉토리에있는 디렉토리 일 수 있음).

이외의 사용자를위한 패키지를 설치 root하기 위해 위의 프로세스를 fakechroot대신 사용할 수 있습니다 chroot.

면책 조항 :이 시도하지 않았고, 함께 작성시 많은 경험이없는 dpkg또는 chroot내가 무엇을하지만,에서 않는 이러한 도구에 대해 알고,이 과정은 단지 일을.

기능 이 chroot없는 효과를 얻고 자하는 사람들에게 유용한 정보가있는 링크 root:

최신 정보

나는 이제이 주제에 대해 다루는 것들로 조금만 수행했으며 더 많은 것을 발견했습니다 ...

조각 (로컬 환경 빌딩 블록) :

전체 (완전한 로컬 환경 제공자) :

요약 : 로컬로 루트 권한을 에뮬레이트하거나 실제로 사용하여 로컬 환경에 DEB 패키지를 설치할 수 있습니다.


3
이전 정보와 모순되는 정보가 있거나 정보가 추가되었다고 생각되면 답변을 완전히 다시 포맷하십시오. 대부분의 경우 "편집"또는 "업데이트"섹션을 추가하는 대신 문구를 바꾸면 답이 더 명확 해집니다. 귀하의 정보는 흥미롭지 만 가장 관련성이 높은 부분은 바닥에 붙어 있습니다.
belacqua

@jgbelacqua-다시 포맷했습니다. 팁 주셔서 감사합니다.
Abbafei

4

--root옵션 dpkg을 사용하여 다른 디렉토리에 설치할 수 있습니다 . 그러나 응용 프로그램이와 같은 고정 된 장소에서 물건을 찾는 경우 아마도 문제가 발생합니다 /etc.

요컨대, 쉬운 방법이 없다고 생각합니다.


2

한 명의 사용자 만 실행할 수 있도록 실행 파일의 소유권을 변경할 수 있습니다. 그런 다음 필요한 경우 다른 사용자의 메뉴에서 응용 프로그램을 제거 할 수 있습니다.


1
단일 사용자를 위해 응용 프로그램을 설치하려는 일반적인 동기는 설치에 관리자 권한을 사용할 필요가 없도록하는 것입니다.
ændrük

@ ændrük 그러나 이미 .deb에서 설치하는 경우 관리자 권한을 가정하지 않습니까?
belacqua

@jgbelacqua 내 지식으로는 .deb에서 설치하려면 관리자 권한이 필요합니다. 그러나보다 일반적으로 "단일 사용자 전용"을 설치하면 시스템 전체 관리에 사용되는 권한을 높이 지 않아도됩니다. 예를 들어, 프로그램을에 배치하여 나 자신만을위한 프로그램을 자주 설치합니다 ~/bin. 이 질문에는 Takkat이 다중 사용자 응용 프로그램의 액세스 / 표시를 제한 하려는지 또는 단일 사용자 응용 프로그램을 설치 하려는지에 대한 모호성이 있습니다. 귀하와 배열의 질문은 이전 해석을 사용하고 나머지는 후자를 가정합니다.
ændrük

1

못 미더운.

deb는 주로 설치시 파일 시스템의 루트 (및 일부 구성)로 추출되는 아카이브 입니다 . 한 사용자에게만 설치하려면 / home / user 폴더에 설치해야합니다. fe 응용 프로그램 바이너리가 / usr / bin (또는 sth와 유사한)에 들어 가지 않으므로 시스템이 파일을 찾지 않으면 시스템에서 찾지 못하기 때문에 작동하지 않습니다. 마찬가지로 시스템은 / home 어딘가에 있다는 것을 알지 못하므로 라이브러리 등은 쓸모가 없습니다. 당신은 시도 할 수 무차별 접근 방식을 , 그리고 당신이 뎁 아카이브에서 파일의 압축을 푼 곳을 가리 키도록 PATH 변수를 조정하지만 것뿐만 아니라 아주 안전하지 않지만 호환성 문제가 발생할 수 있습니다 (그놈은 .desktop 파일이 / usr / share / applications에 있기 때문에 메뉴 항목이 작동하지 않습니다).

또한 일부 사용자를 위해 패키지를 설치 한 경우 다른 사용자가 자신을 위해 설치 한 다른 패키지와 충돌하는 패키지를 설치하면 다른 패키지 관리 관련 문제가 발생할 수 있습니다.

이러한 모든 문제로 인해 사용자를 위해 패키지를 개별적으로 관리하기가 매우 어려워 지므로 .debs의 아이디어가 허용하지 않기 때문에 한 명의 사용자에게만 패키지를 설치할 수없는 것 같습니다.

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