루트가 아닌 사용자가 apt 또는 rpm을 사용하여 시스템 전체에 패키지를 설치하도록 허용할 수 있습니까?
제가 일하고 있는 Linux 시스템의 설정은 현재 구식이며 관리자는 사용자의 요청에 따라 사용자를 위한 모든 설치를 수행하는 데 지쳤기 때문에 모든 사용자에게 전체 sudo 권한을 부여하는 것을 고려하고 있습니다. 이는 명백한 보안상의 단점을 가지고 있습니다. 그렇다면 일반 사용자가 소프트웨어를 설치하고 업그레이드하고 제거할 수 있는 방법이 있는지 궁금합니다.
답변1
sudo를 사용하여 허용되는 명령을 지정할 수 있습니다. 예를 들어 무제한 액세스를 허용할 필요는 없습니다.
사용자 이름모두 = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude
이렇게 하면사용자 이름sudo apt-get
비밀번호 없이 실행할 수 있지만 sudo aptitude
다른 명령은 허용되지 않습니다.
당신은 또한 사용할 수 있습니다패키지 키트결합하다폴킷 sudo보다 더 세밀한 제어가 가능합니다.
사용자가 패키지를 설치/제거하도록 허용하는 것은 위험할 수 있습니다. libc6, dpkg, rpm 등과 같은 필수 소프트웨어를 제거하기만 하면 쉽게 시스템이 작동하지 않게 될 수 있습니다. 정의된 아카이브에서 임의의 소프트웨어를 설치하면 공격자가 오래되었거나 악용 가능한 소프트웨어를 설치하고 루트 액세스 권한을 얻을 수 있습니다. 가장 중요한 질문은 직원들에 대한 신뢰가 얼마나 되는지인 것 같아요.
물론 관리 팀은 퍼펫, 셰프, 우주 유영 연구 등의 구성 관리 시스템을 사용하여 시스템을 관리할 수도 있습니다. 이를 통해 중앙 시스템에서 시스템을 구성하고 관리할 수 있습니다.
답변2
매뉴얼 페이지에서:
aptdcon
: aptdaemon을 사용하여 소프트웨어 설치 또는 제거와 같은 패키지 관리 작업을 수행할 수 있습니다. 이 프로그램을 실행하는 데 루트 권한이 필요하지 않습니다.
답변3
username ALL = NOPASSWD : /usr/bin/yum, /bin/rpm
답변4
저도 비슷한 것을 찾았지만 아무 것도 나오지 않아서 다음과 같은 간단한 솔루션인 "softwarechannels"를 작성했습니다.
https://github.com/alfem/softwarechannels
이는 일반(관리자가 아닌) 사용자가 제한된 디렉터리에서 패키지를 설치할 수 있도록 하는 매우 간단한 시스템입니다.
간단한 텍스트 파일에 "채널"(패키지 그룹)을 정의하고 사용자에게 소프트웨어 채널을 시작할 수 있는 권한을 부여하기만 하면 됩니다.
Unix 그룹과 일치하는 채널의 패키지만 볼 수 있습니다.