특정 권한을 가진 사용자 계정을 만드는 방법은 무엇입니까?

특정 권한을 가진 사용자 계정을 만드는 방법은 무엇입니까?

특정 권한을 가진 unix 사용자 계정을 만들고 싶습니다. 사용자는 소프트웨어를 설치할 수 있어야 하지만 소프트웨어를 제거할 수는 없습니다. 또한 루트는 사용자가 로그인할 때 메일로 알림을 받아야 합니다. 가능한?

저는 데비안을 사용하고 있습니다.

답변1

소프트웨어 설치에만 관리 권한을 제한하려면 sudo:를 사용하여 사용자가 설치를 수행하는 패키지 관리 도구만 실행하도록 허용할 수 있습니다. 아마도 /etc/sudoers에 다음과 같은 것이 필요할 것입니다:

Cmnd_Alias SWINST = /path/to/pkg-manager install_action *

power_user hostname= NOPASSWD: SWINST

이를 통해 암호를 입력하지 않고도 power_user컴퓨터에서 첫 번째 인수와 추가 인수를 사용하여 명령을 hostname실행할 수 있습니다(예를 들어 Debian의 경우 SUSE 기반 배포의 경우 로 변환됨 )./path/to/pkg-managerinstall_action/path/to/apt-get install */path/to/zypper in *

기억해야 할 두 가지 사항이 있습니다.

  1. 패키지 관리자는 여러 항목을 허용할 수 없으므로 제대로 작동해야 합니다.행동명령줄에 전달하면(예: pkg-manager install foo, remove bar완전히 중단됩니다) 패키지 관리자도 충돌을 처리하므로 설치만으로도 소프트웨어가 제거될 수 있으므로 가능하면 이 기능을 비활성화하는 스위치/구성을 사용하십시오(아래 Craig의 설명 참조).

  2. 로컬 파일에서 패키지를 설치할 수 있는 하위 수준 패키지 유지 관리 명령에 대한 액세스를 허용해서는 안 됩니다. 이를 통해 사용자는 권한 상승 패키지를 준비하고 설치한 다음 시스템에 작별 인사를 할 수 있습니다. 대신 이 명령을 사용하여 신뢰할 수 있는 소프트웨어만 설치할 수 있는지 확인해야 합니다.

데스크톱 시스템의 경우 현재 PolicyKit 인프라가 자주 사용되므로 이는 또 다른 옵션이 될 것입니다.

답변2

예, 가능합니다. 각 줄의 마지막 옵션에서 /etc/passwd각 사용자에 대한 셸을 지정합니다. 예를 들어, 래퍼를 작성하고 기본 셸 대신 래퍼(셸 스크립트일 수 있음)를 사용할 수 있습니다 bash.csh

기본값을 변경합니다.

mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash

도착하다:

mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/yourpath/yourshell.sh

그런 다음 두 가지를 넣어야 합니다 yourshell.sh.

  1. 루트로 메일을 보내는 명령( mail, mutt command... - 매뉴얼 읽기)
  2. 로그인 쉘 생성exec /bin/bash -l

답변3

해결책에 대한 나의 의견은 다음과 같습니다.

부분 권한이 있는 사용자는 "please-install.sh"라는 스크립트를 실행합니다. 스크립트에 대한 인수는 패키지 또는 프로그램 이름입니다.

#!/bin/bash

cat <<__EOF__ | mail -s "please install" root@localhost 

When you get time, please install these programs for me:

  $@

Thanks,

__EOF__

이것의 장점은 문제 영역에 대해 특별히 훈련된(그리고 문제 해결 작업에서 수백만 년에 걸쳐 진화된) 매우 복잡한 신경 네트워크가 모든 안전 및 기타 실제적 의미를 평가하고 단호하게 대응할 수 있으며 Speed는 모든 요청에 ​​반응한다는 것입니다. . 그럴만한 가치가 있습니다. 예: "아니요, 이 Bit-Torrent 클라이언트를 프로덕션 웹 서버에 설치하지 않겠습니다."

더 멋지게 만들고 싶다면 getopt를 사용하여 사용자가 -l 또는 --low, -h 또는 --high, -u 또는 --urgent와 같은 우선순위 옵션을 지정하도록 허용할 수 있습니다.

관련 정보