루트가 아닌 사용자를위한 소프트웨어를 설치하도록 Software Center를 설정하려면 어떻게해야합니까? 저장소에서 항목을 설치할 수 있도록

루트가 아닌 사용자가 비밀번호를 입력하지 않고 Ubuntu 저장소에서 항목을 설치할 수 있도록 Software Center를 설정하려면 어떻게해야합니까?

보안 관련 사항을 완전히 알고 있으며 위험을 감수 할 의향이 있습니다. Fedora 12는 다음과 같이 제공됩니다. (PolicyKit 구성을 수정함으로써, 나는 믿는다)



답변

사용자가 Software Center가 사용하는 aptdaemon 백엔드에 액세스 할 수 있도록 PolicyKit 권한을 수정할 수 있습니다.

dpkg --listfiles aptdaemon/usr/share/polkit-1/actions/org.debian.apt.policyaptdaemon 백엔드에서 가능한 조치를 지정하는 파일 임을 보여줍니다 .

해당 파일을 보면 < action id="">태그가 가능한 작업을 지정합니다. 당신은 아마 싶어 org.debian.apt.install-packages사용자가 아카이브에서 새 패키지를 설치하고, 수 있도록 org.debian.apt.update-cache사용자가 패키지 목록을 업데이트 할 수 있도록.

man pklocalauthorityPolicyKit 작업에 대한 로컬 권한을 설정하는 방법을 확인하십시오 . 다음을 /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla입력하면 로컬 컴퓨터에 로그인 한 모든 사용자가 자신의 비밀번호를 입력 한 후 (관리 그룹에없는 경우에도) 패키지를 설치하고 비밀번호를 입력하지 않고 패키지 캐시를 업데이트 할 수 있습니다.

[Untrusted Install]
Action=org.debian.apt.install-or-remove-packages
ResultyAny=no
ResultInactive=no
ResultActive=auth_self

[Untrusted Update]
Action=org.debian.apt.update-cache
ResultAny=no
ResultInactive=no
ResultActive=yes

답변

나는 현재 GUI를 통해 그렇게 할 수 있다고 생각하지 않지만 약간 어색하지만 다음과 같이 작동해야합니다. YMMV.

/ etc / sudoers에 다음 행을 추가하십시오 ( sudo visudo파일 편집에 사용 ).

%packageinstallers ALL = NOPASSWD: /usr/bin/software-center /usr/bin/apt-get

그런 다음 특정 사용자를 작성하여 packageinstallers그룹에 추가하면됩니다 .

$ sudo addgroup packageinstallers
$ sudo adduser jdoe packageinstallers

이제 jdoe다음을 수행 할 수 있습니다.

$ sudo apt-get install <some-package>

Software Center의 데스크탑 메뉴 항목을 편집 software-center하여로 명령 을 추가 할 수 있습니다 gksudo.

PolicyKit 을 사용하면 sudo없이 그렇게 할 수 있지만 지금은 이해하지 못합니다.


답변

RAOF의 답변 은 우분투에만 적용됩니다. 쿠분투는 QAptWorker를 백엔드로 사용합니다 (Natty 및 Oneiric에서 관찰 됨). 비 루트 설치를 허용하려면 /etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pkla다음을 포함 하여 작성하십시오 .

[Update Software Sources]
Action=org.kubuntu.qaptworker.updateCache
ResultAny=no
ResultInactive=no
ResultActive=yes

[Install Software]
Action=org.kubuntu.qaptworker.commitChanges
ResultAny=no
ResultInactive=no
ResultActive=auth_self

관리자가 아닌 일부 사용자가 sudo 액세스 권한을 직접 부여하지 않으면 서 소프트웨어를 설치하도록하려고했습니다. 두 구성 그룹 모두에 다음 줄을 삽입하면됩니다.

Identity=unix-user:some-non-admin-user

권한이 부여되어야하는 그룹이있는 경우 unix-group대신을 사용하십시오 unix-user.


답변

패키지 설치를 허용 / 금지 할 수있는 일반 권한 만 필요한 경우 PolicyKit으로 이동하십시오.

불행히도 PolicyKit은 설치할 패키지를 세밀하게 제어 할 수 없습니다. 사용자에게 제한된 응용 프로그램 집합 만 설치할 수있는 권한을 부여하려면 sudo소프트웨어 채널과 같은 것을 사용 하고 설치 해야 합니다.

나는 또한 그런 것을 찾았지만 아무것도 찾지 못했기 때문에 GitHub 에서 사용 가능한 이 쉬운 솔루션 “softwarechannels”를 코딩했습니다.

관리자가 아닌 일반 사용자가 제한된 카탈로그에서 패키지를 설치할 수 있도록하는 매우 간단한 시스템입니다.

간단한 텍스트 파일로 ‘채널'(패키지 그룹)을 정의하고 사용자에게 소프트웨어 채널을 시작할 수있는 권한을 부여하십시오.

유닉스 그룹과 일치하는 채널의 패키지 만 볼 수 있습니다.