루트가 아닌 사용자가 비밀번호를 입력하지 않고 Ubuntu 저장소에서 항목을 설치할 수 있도록 Software Center를 설정하려면 어떻게해야합니까?
보안 관련 사항을 완전히 알고 있으며 위험을 감수 할 의향이 있습니다. Fedora 12는 다음과 같이 제공됩니다. (PolicyKit 구성을 수정함으로써, 나는 믿는다)
루트가 아닌 사용자가 비밀번호를 입력하지 않고 Ubuntu 저장소에서 항목을 설치할 수 있도록 Software Center를 설정하려면 어떻게해야합니까?
보안 관련 사항을 완전히 알고 있으며 위험을 감수 할 의향이 있습니다. Fedora 12는 다음과 같이 제공됩니다. (PolicyKit 구성을 수정함으로써, 나는 믿는다)
답변:
사용자가 Software Center가 사용하는 aptdaemon 백엔드에 액세스 할 수 있도록 PolicyKit 권한을 수정할 수 있습니다.
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
사용자가 패키지 목록을 업데이트 할 수 있도록.
man pklocalauthority
PolicyKit 작업에 대한 로컬 권한을 설정하는 방법을 확인하십시오 . 다음을 /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
/usr/share/polkit-1/actions/org.kubuntu.qaptworker.policy
Identity=*
이것을 askubuntu.com/a/123260 에서 적응시키기 위해 추가 해야 했다 . 또한 더 많은 정책 키트 로그 출력을 얻을 수있는 방법이 /var/log/auth.log
있습니까 ( 예 : 다른 로그 파일)? authentication fails
메시지 만 받았지만 실패한 이유는 없습니다.
나는 현재 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
.
sudo -i
나는 심지어에 액세스 할 수 없습니다 /etc/polkit-1/localauthority
(우분투 17.10) : "디렉토리의 / etc / 폴킷-1 / localauthority을 처리하기 위해 시도하지 않습니다"
패키지 설치를 허용 / 금지 할 수있는 일반 권한 만 필요한 경우 PolicyKit으로 이동하십시오.
불행히도 PolicyKit은 설치할 패키지를 세밀하게 제어 할 수 없습니다. 사용자에게 제한된 응용 프로그램 집합 만 설치할 수있는 권한을 부여하려면 sudo
소프트웨어 채널과 같은 것을 사용 하고 설치 해야 합니다.
나는 또한 그런 것을 찾았지만 아무것도 찾지 못했기 때문에 GitHub 에서 사용 가능한 이 쉬운 솔루션 "softwarechannels"를 코딩했습니다.
관리자가 아닌 일반 사용자가 제한된 카탈로그에서 패키지를 설치할 수 있도록하는 매우 간단한 시스템입니다.
간단한 텍스트 파일로 '채널'(패키지 그룹)을 정의하고 사용자에게 소프트웨어 채널을 시작할 수있는 권한을 부여하십시오.
유닉스 그룹과 일치하는 채널의 패키지 만 볼 수 있습니다.