루트가 아닌 사용자가 비밀번호를 입력하지 않고 Ubuntu 저장소에서 항목을 설치할 수 있도록 Software Center를 설정하려면 어떻게해야합니까?
보안 관련 사항을 완전히 알고 있으며 위험을 감수 할 의향이 있습니다. Fedora 12는 다음과 같이 제공됩니다. (PolicyKit 구성을 수정함으로써, 나는 믿는다)
SoftwareKit 권한을 수정하여 사용자가 Software Center에서 사용하는 aptdaemon 백엔드에 액세스 할 수 있습니다.
dpkg --listfiles aptdaemon
은 /usr/share/polkit-1/actions/org.debian.apt.policy
이 aptdaemon 백엔드에서 가능한 조치를 지정하는 파일임을 보여줍니다.
해당 파일을 보면 < action id="">
태그가 가능한 조치를 지정합니다. org.debian.apt.install-packages
가 사용자가 아카이브에서 새 패키지를 설치할 수있게하고 org.debian.apt.update-cache
가 사용자가 패키지 목록을 업데이트 할 수 있도록하려고합니다.
PolicyKit 작업에 대한 로컬 권한을 설정하는 방법은 man pklocalauthority
를 참조하십시오. 다음을 /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>
gksudo
로 명령 앞에 software-center
를 호출하도록 Software Center의 데스크탑 메뉴 항목을 편집 할 수 있습니다.
PolicyKit Sudo 없이는 그렇게 할 수 있지만, 지금은 이해할 수 없습니다.
패키지 설치를 허용/금지 할 수있는 일반 권한 만 필요한 경우 PolicyKit으로 이동하십시오.
불행히도 PolicyKit은 설치할 패키지를 세밀하게 제어 할 수 없습니다. 사용자에게 제한된 응용 프로그램 집합 만 설치할 수있는 권한을 부여하려면 Sudo
을 사용하고 소프트웨어 채널과 같은 것을 설치해야합니다.
나는 또한 그런 것을 찾았지만 아무것도 찾지 못했기 때문에이 쉬운 솔루션 "softwarechannels"를 코딩했습니다. 여기 GitHub에서 사용할 수 있습니다
관리자가 아닌 일반 사용자가 제한된 카탈로그에서 패키지를 설치할 수 있도록하는 매우 간단한 시스템입니다.
간단한 텍스트 파일로 '채널'(패키지 그룹)을 정의하고 사용자에게 소프트웨어 채널을 시작할 수있는 권한을 부여하십시오.
유닉스 그룹과 일치하는 채널의 패키지 만 볼 수 있습니다.
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
를 사용하십시오.