데비안 Wheezy에서 Sudoers 파일을 올바르게 구성하는 방법은 무엇입니까?


10

나는 많은 블로그 게시물을 보았습니다.

aptitude install sudo
su root
adduser USERNAME sudo

그러나 그것은 단지 aptitude다른 말로만 보호합니다 .

  • aptitude install sendmail암호를 물을 것입니다, 당신은 sudo실행 해야 합니다aptitude

  • apt-get install sendmail비밀번호를 묻지 않고 sudo권한이 필요 하지 않습니다

  • 파일과 같이 보호 된 파일을 편집하면 etc암호를 요구하지 않으며 sudo권한이 필요 하지 않습니다

  • 와 같은 서비스를 실행 및 중지 할 수 있습니다. apache비밀번호를 요구하지 않으며 sudo권한이 필요 하지 않습니다.

이 문제를 해결하는 방법? 이것은 내 sudoers 파일입니다.

 This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

# Host alias specification

# User alias specification

# Cmnd alias specification

이것은 다음의 출력입니다 sudo -l.

Matching Defaults entries for root on this host:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User root may run the following commands on this host:
    (ALL : ALL) ALL
    (ALL : ALL) ALL

3
이후 su root에는 root사용자 로 로그인 하여 모든 것에 대한 전체 액세스 권한을 갖습니다. sudo권한있는 작업 에 사용해야하는 일반 사용자로 돌아가려면로 실행중인 셸에서 로그 아웃하십시오 root.
depquid

나는 리눅스에서 처음이지만 데비안 위키는 말한다 -adduser
AntiCZ

답변:


16

sudo 규칙을 추가하지 않았으므로 sudo를 아무것도 사용할 수 없습니다.

이 명령 adduser USERNAME sudo은 지정된 사용자를이라는 그룹에 추가합니다 sudo. 해당 이름의 그룹이 존재해야합니다. addgroup sudo그렇지 않은 경우로 작성하십시오 . 사용자를 그룹에 추가 한 후 그룹 멤버십을 적용하려면 사용자가 로그 아웃했다가 다시 로그인해야합니다.

sudo특별한 그룹 이름이 아닙니다. 호출 된 그룹의 사용자 sudosudo유틸리티 를 통해 루트로 명령을 실행할 수 있도록하는 규칙 입니다. sudoers파일에 다음 줄이 필요 합니다.

%sudo ALL = (ALL) ALL

visudosudoers 파일을 편집하려면 직접 실행 하지 마십시오.

나는 왜“적성을 보호하는 것”이라고 믿는지 전혀 모른다. 적성에 특별한 것은 없습니다. 당신이 루트로 명령을 실행하는 사용자 권한을 부여하면, 해당 사용자는 실행 sudo aptitude …하거나 sudo apt-get …또는 sudo service …, 또는 sudoedit편집에 대한 루트 권한을 필요로 편집 파일. sudoers 파일에 있다고해서 사용자의 권한이 직접 변경되는 것은 아니며, sudo루트로 명령 을 실행 하도록 실행할 수 있다는 것 입니다. 명령은 명령을 실행할 때만 루트로 실행됩니다 sudo. 일부 프로그램, 특히 사용자 인터페이스가 특별한 권한없이 실행되고 백엔드 만 루트로 실행되는 GUI 프로그램이 자동으로 수행 될 수 있지만 루트로 실행 된 명령은 항상에 의해 실행됩니다 sudo.


그는 sudo -l루트로 실행 했습니다. 사용자에게 유용한 정의가 있어도 표시되지 않았을 것입니다. 따라서 "당신은 sudo 규칙을 추가하지 않았습니다"라는 추측이 틀릴 수 있습니다.
Hauke ​​Laging

@HaukeLaging 귀하의 의견을 이해하지 못합니다. “당신은 sudo 규칙을 추가하지 않았습니다”는 추측이 아닙니다. sudoers파일이 문제입니다.
Gilles 'SO- 악마 그만해'

나는 우울에 가까워서 sudo -l출력 에 너무 집중했다는 것을 알았지 만 운 이 좋았습니다 ... 질문 내용이 출력과 일치하지 않기 때문에 전체 파일이 될 수없는 것 같습니다. 적어도 내 sudo버전은 명령 정의없이 (사용자 질문과 같은) "사용자 루트가 다음 명령을 실행할 수 있습니다"라고 주장 하지 않습니다sudoers .
Hauke ​​Laging

@HaukeLaging 당신이 옳아 요, 나는 wheezy로 확인했고 실제로 sudo -l"사용자 루트는 darkstar에서 sudo를 실행할 수 없습니다."라고 말합니다. 그리고 sudo그룹은 기본적으로 wheezy의 sudoers 파일에 있습니다. 필수 항목이 아래의 파일로 이동되었을 수 있습니다 /etc/sudoers.d. 어쨌든 sudoers 파일에 포함 된 내용이 무엇이든 Fischer는 가정하지 않습니다.
Gilles 'SO- 악한 중지'

4

무슨 일어난 것은 : sudo는 암호를 캐싱한다. 따라서 시스템에서 sudo 구현을 올바르게 완료 한 후 첫 번째 명령 의 비밀번호를 입력 한 후 얼마 동안 캐시됩니다. 그런 일이 발생하고 시퀀스를 실행하면

sudo aptitude install sendmail
sudo apt-get install sendmail

그런 다음 첫 번째 명령에는 암호를 제공해야하지만 두 번째 명령에는 암호를 제공해야합니다 (적어도 여전히 시간 초과 내에있는 동안). 이것은 첫 번째 명령 만 보호하고 두 번째 명령은 보호하지 않는 것처럼 느낄 수 있습니다 . 추가 정보가 없으면 (완전한 셸 성적표) 말할 방법이 없습니다 ...


예. 하나는 다른 하나를 배제하지 않습니다. 정답은 sudo를 올바르게 설정하는 방법을 잘 설명하고 있으며, 그런 의미에서 질문에 대답합니다. 문제의 말로 "적성을 보호하는"이유를 설명하지 않습니다. Gilles는 자신에게 다음과 같이 썼습니다. "왜"적성을 보호하는 것 "이라고 생각하는지 모르겠습니다. 내가 말했듯이, 그 현상을 실제로 이해하려면 더 많은 정보가 필요합니다. 내 대답이 실제로 정확하고 원래 질문을 해결하고 기존 답변의 격차를 메우는 것을 감안할 때 다운 보트는 약간 가혹하다고 생각합니다.
Josef

좋은 생각인데, 이것이 피셔의 혼란의 원인 일 수 있습니다.
Gilles 'SO- 악한 중지'

0

위의 답변을 따르면 올바른 방향으로 가고 있습니다. 적어도 내 Debian Jessie에서는 / sbin 경로에있는 명령의 / usr / bin에 소프트 링크를 만들었습니다. 예를 들어 : / sbin / ifup, 소프트 링크 (ln -s)를 / usr / bin에 넣고 사용할 수 있습니다.

또 다른 중요한 것은 NOPASSWD를 다음과 같이 두는 것입니다.

User_Alias NET = goviedo
Cmnd_Alias ETH = /sbin/ifup
NET ALL = NOPASSWD:ETH
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.