때때로 Pi over SSH를 사용하기 때문에 SSH가 sudo 명령에 액세스하는 것이 위험하다는 것을 알게되었습니다. 따라서 가까운 시일 내에이 권한을 해제 할 계획입니다. 그러나 패키지를 설치할 때 일반적으로 재부팅해야합니다. 현재 이것은 수퍼 유저를 통해서만 허용됩니다.
sudo reboot
pi 사용자의 권한을 편집하여 패키지를 재부팅 (및 설치) 할 수있는 방법이 있습니까?
권한이 다른 여러 계정을 가질 수 있습니까?
감사
때때로 Pi over SSH를 사용하기 때문에 SSH가 sudo 명령에 액세스하는 것이 위험하다는 것을 알게되었습니다. 따라서 가까운 시일 내에이 권한을 해제 할 계획입니다. 그러나 패키지를 설치할 때 일반적으로 재부팅해야합니다. 현재 이것은 수퍼 유저를 통해서만 허용됩니다.
sudo reboot
pi 사용자의 권한을 편집하여 패키지를 재부팅 (및 설치) 할 수있는 방법이 있습니까?
권한이 다른 여러 계정을 가질 수 있습니까?
감사
답변:
비트를 명확히하려면 : "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는"에!).
visudo기본 편집기를 사용하여 sudoers 파일을 편집하는 명령입니다. 이 파일을 사용하지 않고이 파일을 편집하면 번거로우므로 권장 하지 않습니다. 다음을 발행하여 선호 편집기를 변경할 수 있습니다sudo update-alternatives --config editor
VISUAL=vim visudo는 이것을 시도해 볼 수 있습니다 . 그러나 편집기와 같은 기본 프로그램을 변경하는 좋은 예입니다.
예, 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다른 명령에 액세스 할 수 있도록 구성 할 수 있습니다 .
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명령이 작동하며 거기서 갈 수 있습니다.
sudoers것은 일반적으로 사용자가 생성 될 때 수행됩니다. 사용 예 : 공통 명령 문자열 sudo apt-get update && sudo apt-get upgrade은 sudo를 두 번 호출하지만 업그레이드 전에 중지하고 암호를 다시 요청할 수 있다는 성가심을 나타냅니다. 따라서 내 로그인 이름 (pi) sudo apt-get update -y && sudo apt-get upgrade -y을 묻지 않도록 설정 한 다음 사용 하여 크기를 변경할 수있는 확인을 요구하지 않습니다. 더 유닉스처럼 만들기 위해. 내가 부탁 한대로하고, 나가도 마치고 싶다.
사용자가 패키지를 설치하는 것보다 SSH를 통해 sudo 액세스를 허용하는 것이 더 안전합니다. 정말로 걱정이된다면 다음 줄을 바꾸십시오 /etc/sudoers:
pi ALL=(ALL) NOPASSWD: ALL
에
pi ALL=(ALL) PASSWD: ALL
즉, 세션에서 sudo를 처음 사용할 때와 몇 분 후에 다시 암호를 입력하라는 메시지가 표시됩니다. /etc/sudoers직접 편집 할 수 없습니다 . sudo visudo그렇게 하기 위해 사용하십시오 .
Krzysztof가 거기에 대한 대답으로 뛰어 들었습니다. 새 패키지를 설치할 때마다 재부팅해야합니까? 새 커널이나 펌웨어를 설치하지 않는 한 재부팅 할 필요가 없습니다. 이것은 우리가 여기있는 품질의 OS입니다 ...
timestamp타임 아웃을 언급 하는 것이 좋습니다. 기본적으로 15 분 (BTW)입니다. 주 PASSWD(경우 기본값 NOPASSWD이전이 명령 목록에 지정되지 않았습니다). 또한 /etc/sudoers수행중인 작업을 알고 있으면 문제없이 직접 편집 할 수 있습니다. 를 사용 visudo하면 임시 파일을 변경 하여 변경 도중에 파일을 자동으로 쓰지 못하도록합니다 (구문 오류 및 / 또는 보안 문제가 발생할 수 있음).
scruss가 말한 것에 대한 대안으로을 /etc/sudoers.d/010_pi-nopasswd실행 하여 파일을 삭제하십시오 sudo rm /etc/sudoers.d/010_pi-nopasswd. 주 sudoers 파일을 편집하는 것이 훨씬 쉽고 안전하여 sudo를 손상시킬 수 있습니다.