sudo -u를 사용하여 다른 사용자로 명령을 실행하는 중 문제점


12

다음 명령 ls으로 사용자 로 실행하려고 abc하면 오류가 발생합니다.

xyz@host:~/temp$ sudo -u abc ls
[sudo] password for xyz:
Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host.

그러나 내가 su abc하고 실행하면 ls아무런 문제가 없습니다.

답변:


17

사용자 xyz exec가 사용자 abc와 같은 것을 허용하도록 sudo 보안 정책을 구성해야합니다. 'man sudoers'를 읽고 visudo 명령을 사용하여 / etc / sudoers를 구성하십시오.

예를 들어 사용자 xyz exec / usr / bin / whoami를 암호없이 사용자 abc로 허용하도록하겠습니다. 이 문자열을 / etc / sudoers에 추가하십시오 (viss를 사용하면 / etc / sudoers를 직접 편집하지 마십시오).

xyz ALL = (abc) NOPASSWD: /usr/bin/whoami

이제 테스트 해보십시오.

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc

왜 / etc / sudoers를 직접 편집하지 말아야하는지 설명해 주시겠습니까?
Adi Prasetyo

/ etc / sudoers를 직접 편집 할 때 실수를 할 수 있기 때문에 sudoers 파일을 손상시키고 최악의 경우 sudo를 사용하여 자신을 차단하십시오. 'Visudo'는 단순한 편집기가 아니라 sudoers 파일의 구문을 검사하고 실수, 오타 등을 피하는 데 도움이됩니다.
svq

4

와 (과) 다르기 때문 sudo입니다 su. 의 경우 시스템에 관한 su abc한 사용자가 abc됩니다. 그런 다음 할 수있는 모든 것을 abc할 수 있습니다.

반면에, 다른 sudo사용자가 프록시로 일부 명령을 실행할 수 있도록하는 데 사용됩니다. 즉, sudo구성을 통해을 (를) 대신하여 일부 명령을 수행 할 수 있습니다 abc. 실행하려는 명령 중 하나가 아닌 경우보고 된 오류가 발생합니다.


0

모든 것이 잘 보이지만 여전히 Sorry user xxx cannot execute...메시지 가 표시되고 sudo매번 비밀번호 를 묻는 메시지가 계속 표시 됩니다.

당신은 이것을 할 수 있습니다 :

  1. 에서 /etc/sudoers사용자 설정을 삭제 라인
  2. 파일을 저장
  3. 파일을 열고 해당 사용자에 대한 옵션을 (NO COPING) 입력하십시오.
  4. 파일을 저장
  5. 시도 해봐.

이것은 나를 위해 일했습니다. 이메일에서 실행이 필요한 명령을 복사했기 때문에 그 줄의 결말이 좋지 않은 것으로 나타났습니다.


visudo처음부터 편집하는 데 사용했다면 , 그런 말을 들었습니까?
Auspex

안 돼요
borbar

아 정말 생각했을 것입니다 ... 어쨌든 복사 및 붙여 넣기보다 수동으로 입력하는 동안 오류가 발생할 가능성이 훨씬 큽니다. 라인 엔드가 다르다는 점에 유의하십시오.
Auspex
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.