사용자 pi sudo 권한을 변경하는 방법; 다른 권한으로 다른 계정을 추가하는 방법은 무엇입니까?


14

때때로 Pi over SSH를 사용하기 때문에 SSH가 sudo 명령에 액세스하는 것이 위험하다는 것을 알게되었습니다. 따라서 가까운 시일 내에이 권한을 해제 할 계획입니다. 그러나 패키지를 설치할 때 일반적으로 재부팅해야합니다. 현재 이것은 수퍼 유저를 통해서만 허용됩니다.

sudo reboot

pi 사용자의 권한을 편집하여 패키지를 재부팅 (및 설치) 할 수있는 방법이 있습니까?

권한이 다른 여러 계정을 가질 수 있습니까?

감사


1
주어진 답변 중 도움이 되었습니까? 그들 중 누구도 당신이 찾은 대답입니까? 그런 다음 답변으로 표시하십시오.
Anders

예. 여전히 관심이 있다면 2017 년 6 월로 업데이트했습니다.이 질문은 4 년 2 개월 전에 요청되었으며 오늘 문제를 해결할 수있는 길로 이끌어 냈습니다. 아래 답변을 확인하십시오.
SDsolar

답변:


22

비트를 명확히하려면 : "sudo 명령"이없고, 올바르게 작동하기 위해 루트 권한이 필요한 명령 만 sudo있으며 한 명령에 대해 명령을 얻는 명령입니다. sudo주어진 명령을 root로 실행하기 만하면됩니다 ( "sudo"를 명령형으로 읽으십시오). "수퍼 유저, 무언가를하십시오!" 이를 수행 할 수있는 사용자에 대한 규칙은에 기록되어 /etc/sudoers있습니다. 기본 Raspbian 설치에서 기본 사용자 "pi"는 다음 줄에서 권한을 갖습니다.

pi ALL=(ALL) NOPASSWD: ALL

"모든 호스트의 사용자 'pi'는 모든 사용자로 전환 할 수 있으며 ALL (읽기 : 임의) 명령을 사용할 때 자신의 PASSWD를 입력 할 필요가 없습니다." (여기서 미친 문법을 사용하여 줄의 순서를 유지했습니다. .. 호스트를 구별 할 수있는 방법에 대한 메모 :이 방법으로 동일한 sudoers 파일을 네트워크의 여러 시스템에 배포하여 네트워크 관리자의 작업이 줄어 듭니다) .

관리자 암호를 발행하지 않고 sudo를 사용하여 명령을 실행할 수 있다는 것이 SSH를 통해 sudo를 사용하는 것이 위험하다고 생각하는 이유입니다 (일반적인 문제에 대해서는 들어 본 적이 없습니다 ... 무슨 위험이 있는지 정확히 설명해주세요.)

물론 다른 권한을 가진 여러 사용자가있을 수 있습니다. 그러나 sudo를 사용하는 것이 여전히 이러한 권한을 관리하는 가장 좋은 방법이라고 생각합니다.

그래서, 여기이 작은 레시피가 당신에게 필요한 것이기를 바랍니다.

$ sudo adduser admin

이것은 "admin"사용자를 생성하고, 비밀번호를 요청하고, 그의 홈 디렉토리를 생성하는 등의 작업을 수행합니다.

$ sudo adduser admin sudo
$ sudo adduser admin adm

"admin"사용자를 "sudo"및 "adm"사용자 그룹에 넣습니다. 또한 사용자 그룹에 사용자를 추가하여 Linux에서 권한이 관리되므로 "admin"사용자에게 필요한 모든 권한과 권한이 부여됩니다. /etc/sudoers"sudo"사용자 그룹에있는 모든 사용자가 루트로 모든 명령을 실행할 수 있도록 하는 행 이 있습니다. 이 권한은 관리자에게 필요한 것입니다 ( "adm"에 추가하면 몇 가지 로그 파일을 /var/log사용하지 않고도 읽을 수 있습니다 sudo). sudo관리자로 로그인 한 상태 에서도 여전히 사용해야 하지만, sudo를 약 5 분 동안 사용하지 않을 때마다 sudo가 관리자 비밀번호를 계속해서 묻습니다.

이제 "admin"사용자로 로그 오프 한 후 로그온하십시오. 여부 확인

$ sudo apt-get update
$ sudo apt-get upgrade

공장. 그렇다면 "pi"사용자의 일부 권한을 취소 할 수 있습니다. 이제 관리자 사용자에게 올바른 권한이 있는지 확인하십시오.

$ sudo deluser pi sudo
$ sudo deluser pi adm

그러면 사용자 그룹 "sudo"에서 사용자 "pi"가 발생합니다.

$ sudo visudo

편집 할 수있는 편집기가 시작됩니다 /etc/sudoers. #"pi"로 시작하는 줄 앞에 해시 태그 ( )를 넣고 주석 처리하거나 간단히 제거하십시오. 그런 다음 편집기를 저장하고 종료하면 visudo가 권한 규칙을 즉시 다시로드합니다. 이제 "pi"사용자는 더 이상 sudo를 사용할 수 없습니다.

그런 다음 사용자 "pi"로 다시 로그온 할 수 있습니다. 일부 명령에 대해 관리자로 su전환 하려면 ( "사용자 전환")을 사용하십시오.

$ su - admin

더 많은 사용자를 추가하려면 sudo adduser <name>위와 같이 사용 하고 사용자 "pi"가 가진 사용자 그룹 목록을 확인하십시오.

$ groups pi
pi : pi dialout cdrom audio video plugdev games users netdev input

사용이 sudo adduser <username> <groupname>그를 오디오 사용할 수 있도록, 이러한 사용자 그룹의 여러 가지에 새 사용자를 추가, 비디오 가속 모르는 경우 이러한 사용자 그룹 모두에 그를 추가 등의 플러그 장치를 사용합니다 (그러나 "sudo는"에!).


2
visudo기본 편집기를 사용하여 sudoers 파일을 편집하는 명령입니다. 이 파일을 사용하지 않고이 파일을 편집하면 번거로우므로 권장 하지 않습니다. 다음을 발행하여 선호 편집기를 변경할 수 있습니다sudo update-alternatives --config editor
earthmeLon

또는 이번에 VISUAL=vim visudo는 이것을 시도해 볼 수 있습니다 . 그러나 편집기와 같은 기본 프로그램을 변경하는 좋은 예입니다.
Anders

6

예, sudo사용자가 추가 권한으로 특정 명령을 실행하도록 구성 할 수 있습니다 . /etc/sudoers파일 에서 이것을 변경할 수 있지만 직접 수행하지 말고 sudo visudo명령을 사용하는 것이 좋습니다 .

기본 시스템 설치에서 다음 줄을 찾아야합니다.

pi ALL=(ALL) NOPASSWD: ALL

그것은 말한다 sudo사용자가 허용하는 pi모든 cammands 실행하는 데 root에도 암호를 제공하지 않고 사용자를. 마지막으로 변경 ALL하고 쉼표로 구분 된 명령 목록 (전체 경로 포함)을 실행하도록 지정할 수 있습니다. 귀하의 경우이 줄을 다음과 같이 변경해야합니다.

pi ALL=(ALL) NOPASSWD: /usr/bin/apt-get, /sbin/shutdown

사용자에게 sudoers영향을주는 줄이 하나 더 pi있습니다.

%sudo   ALL=(ALL:ALL) ALL

이 행은 그룹의 모든 사용자 sudo( %이름 앞의 문자는 사용자 이름 대신 그룹 이름을 의미 함) 자신의 OWN 비밀번호 를 알고있는 모든 비밀번호를 실행 하도록 합니다 . 이 줄을 벗어나면 사용자 pi는 다른 모든 명령을 실행할 수 있지만 암호를 묻는 메시지가 표시됩니다.

이를 방지하려면이 줄을 제거하거나 그룹 pi에서 사용자 를 제거하십시오 sudo.

/etc/sudoers파일 을 변경 한 후 sudo -l -U picommand 를 호출하여 실제로 원하는 작업을 수행하는지 검사 할 수 있습니다 .

물론 다른 계정을 만들고 sudoers다른 명령에 액세스 할 수 있도록 구성 할 수 있습니다 .


1

2018 년 5 월, 이것은 여전히 ​​개념 상 정확하지만 이후 버전에서는 절차가 변경되었습니다.

첫째, 파일은 vi 또는 nano 또는 leafpad 또는 emacs (가장 좋아하는 텍스트 편집기)에서 직접 편집해야합니다.

이 파일에는 사용자 이름 pi가 언급되어 있지 않습니다.

/etc/sudoers

파일의 마지막 줄은 다음과 같습니다.

#includedir /etc/sudoers.d

이것은 파일 이름이 들어있는 디렉토리입니다

010_pi-nopasswd

이 한 줄을 포함

pi ALL=(ALL) NOPASSWD: ALL

사용자 pi로 로그인 한 경우 sudo 명령을 프롬프트하지 않는 효과가 있습니다. (구문은 정확히 이런 식이어야합니다)

대단하다.

그룹 라인 %sudo ALL=(ALL:ALL) ALL은 여전히

따라서 질문의 첫 번째 부분에 답하십시오.

/etc/sudoers/sudoers.d/010_pi-nopasswd 파일을 하나의 디렉토리 수준으로 이동하여 포함 실패를 한 다음 15 분 동안 기다렸다가 sudo를 사용할 때 내 Raspbian 시스템에서 내 비밀번호를 묻는 메시지를 표시했습니다. 우분투 14.04 LTS 시스템처럼.

그런 다음 내가 속한 곳으로 다시 이동했을 때조차 10 분이 지나도 더 이상 메시지가 표시되지 않습니다.

재부팅이 필요 없습니다. Voila, sudo를 사용할 때 비밀번호를 묻지 않습니다

내 lubuntu 14.04 LTS 테스트 시스템에는 010_pi-nopasswd 파일이 없다는 것을 제외하고 동일한 설정이 있습니다. lubuntu는 루트 사용자로 pi와 함께 설치되었습니다. sudo를 사용할 때마다 메시지가 표시되고 그 후 10 분 동안 프롬프트가 표시되지 않았습니다.

Raspbian을 설정하는 것과 같은 방식으로 동일한 파일을 Ubuntu 시스템에 추가했습니다 (여전히 10 분 동안 창에있는 동안이 파일에서 chmod 0440을 기억하십시오).

Voila, 15 분 후에도 pi로 로그인 할 때 더 이상 내 비밀번호를 묻는 메시지가 표시되지 않습니다.

다시 부팅 할 필요없이 변경 사항이 즉시 발생 합니다.

이것은 root 사용자 pi로 로그인 할 때 sudo 명령 사용을위한 프롬프트를 비활성화 및 활성화하는 방법에 대한 2018 년 5 월 답변입니다. 다른 사용자 및 그룹도 이와 같은 방식으로 구성 할 수 있습니다.

Ubuntu 16.04 LTS에 대한 --UPDATE이 시스템은 매우 유사합니다. 그러나 가장 큰 차이점은 16.04의 파일 사용 권한이 훨씬 엄격하므로 작업을 su모드 에서 수행해야한다는 것입니다 . 루트 비밀번호를 잊어 버린 경우 sudo passwd root다음 을 사용하여 일반 프롬프트에서 비밀번호를 재설정 할 수 있습니다. 그러면 su명령이 작동하며 거기서 갈 수 있습니다.


방금 Google을 통해 이것을 찾았습니다. 따라서 사용자가 여전히 sudoers 그룹에 있어야하지만 /etc/sudo.d는 특정 사용자에게 암호를 묻는 빈도를 제어합니까?
론스타

1
네. 당신은 그것을 얻었다. 멤버가되는 sudoers것은 일반적으로 사용자가 생성 될 때 수행됩니다. 사용 예 : 공통 명령 문자열 sudo apt-get update && sudo apt-get upgrade은 sudo를 두 번 호출하지만 업그레이드 전에 중지하고 암호를 다시 요청할 수 있다는 성가심을 나타냅니다. 따라서 내 로그인 이름 (pi) sudo apt-get update -y && sudo apt-get upgrade -y을 묻지 않도록 설정 한 다음 사용 하여 크기를 변경할 수있는 확인을 요구하지 않습니다. 더 유닉스처럼 만들기 위해. 내가 부탁 한대로하고, 나가도 마치고 싶다.
SDsolar

0

사용자가 패키지를 설치하는 것보다 SSH를 통해 sudo 액세스를 허용하는 것이 더 안전합니다. 정말로 걱정이된다면 다음 줄을 바꾸십시오 /etc/sudoers:

pi ALL=(ALL) NOPASSWD: ALL

pi ALL=(ALL) PASSWD: ALL

즉, 세션에서 sudo를 처음 사용할 때와 몇 분 후에 다시 암호를 입력하라는 메시지가 표시됩니다. /etc/sudoers직접 편집 할 수 없습니다 . sudo visudo그렇게 하기 위해 사용하십시오 .

Krzysztof가 거기에 대한 대답으로 뛰어 들었습니다. 새 패키지를 설치할 때마다 재부팅해야합니까? 새 커널이나 펌웨어를 설치하지 않는 한 재부팅 할 필요가 없습니다. 이것은 우리가 여기있는 품질의 OS입니다 ...


3
timestamp타임 아웃을 언급 하는 것이 좋습니다. 기본적으로 15 분 (BTW)입니다. 주 PASSWD(경우 기본값 NOPASSWD이전이 명령 목록에 지정되지 않았습니다). 또한 /etc/sudoers수행중인 작업을 알고 있으면 문제없이 직접 편집 할 수 있습니다. 를 사용 visudo하면 임시 파일을 변경 하여 변경 도중에 파일을 자동으로 쓰지 못하도록합니다 (구문 오류 및 / 또는 보안 문제가 발생할 수 있음).
Krzysztof Adamski

나는 항상 새로운 커널을 얻지 못하는 OP 업데이트가 있다고 생각합니다. 또는 일부 동료는 OP가 업데이트 목록에서 커널 패키지를 발견하는 방법을 설명하고 싶지 않기 때문에 매번 재부팅하도록 지시했습니다.
orithena

이 의견에 대한 TNX, @Krzysztof. 나는 대답을 수정했다. 그리고 당신은 편집에 대한 권리입니다. 실제로 16.04 시스템에서는 sudoers.d에 readme가 포함되어 있기 때문에 pi 행을 sudoers 파일에 직접 넣었습니다. 나는 그것을 단지 원인으로 남겨 두었지만 적어도 pi 권한이 처리되고 있습니다. (내 편애 편집기는 VI / VIM, btw이지만 때때로 리프 패드 또는 유휴를 사용합니다. 15 년이 걸리는 emacs를 다시 마스터하지 않았으며 emacs에서 할 수있는 것보다 vim에서 훨씬 더 빠르고 더 빨리 할 수 ​​있습니다. 다시 한 번 감사드립니다.
SDsolar

0

scruss가 말한 것에 대한 대안으로을 /etc/sudoers.d/010_pi-nopasswd실행 하여 파일을 삭제하십시오 sudo rm /etc/sudoers.d/010_pi-nopasswd. 주 sudoers 파일을 편집하는 것이 훨씬 쉽고 안전하여 sudo를 손상시킬 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.