2013-12-08 2 views
3

hadoopmaster에서 hduser로 su하고 싶습니다. 다음 암호 나에게 묻는쉘 스크립트에서 다른 사용자에게 패스워드없는 전환을시키는 방법

su - hduser 

을하고 나는 그것을 입력하고 내가 hduser에 도착 : 나는 터미널에 그것을 할 때, 나는 않습니다. 암호에 대해 걱정할 필요없이 어떻게 쉘 스크립트에서 동일한 작업을 수행 할 수 있습니까? 내가 넣어 sudoers 파일 방법을 시도 :

root ALL=(ALL:ALL) ALL 
hduser ALL=(ALL:ALL) ALL 
hadoopmaster ALL=(ALL:ALL) NOPASSWD: /bin/su hduser 
(here I tried different combinations of the line with and without the '-' and also 
with and without /bin) 

내가 이런 짓을 내가 su hduser 또는 su - hduser을 수행 할 때, 다시 암호 나 메시지를 표시합니다. 나는 무엇을해야합니까?

답변

8

sudoers 파일에 "su"를 사용하지 않으려면 "sudo"를 사용해야합니다. 당신의 sudoers 파일의 해당 라인을 가지고 제공, 당신이 원하는 싶어 할 것

sudo su - hduser

: 그래서, 당신은 같은 명령 행을 원하는 것입니다. 이 같은 라인 :

hadoopmaster ALL=(ALL:ALL) NOPASSWD: su - hduser

트릭을 할해야합니다.

+0

차갑다. 나는 그것을 밖으로 시도 할 것이다. 감사! :) 그것이 작동한다면 내일까지 알려 드리겠습니다. – CodingInCircles

+0

밝혀졌습니다. 사용하지 않아도되었지만 어쨌든 감사드립니다! :) – CodingInCircles

+0

조금 더 쉬운 방법을 찾았습니다. 'sudoers'에서'hadoopmaster ALL = (hduser) NOPASSWD :/bin/sh' 행을 사용하십시오. 그런 다음'sudo -s -u hduser'를 입력하면 새로운 사용자로 전환 할 수 있습니다. –

0

나는 /의 sudoers 같은 파일,

ranjith ALL=(ALL)  NOPASSWD: ALL 

지금 우리가 사용할 수있는 등 사용자 =에 란 지트/나를 위해 작업

"sudo, sudoedit - execute a command as another user" 

[[email protected] ~]$ sudo -i 
# id 
uid=0(root) gid=0(root) groups=0(root) 

그것의 추가가 지금은에서 루트로 로그인 할 수 있습니다 내 로컬 사용자 "ranjith".

+0

다른 루트 사용자를 만들지 않는 한 매우 나쁜 생각입니다. 사용자는 효과적으로이 질문의 의도가 아닌 "무제한의 슈퍼 유저 권한"을 사용자에게 부여합니다. 이 sudoer 규칙을주의해서 사용하십시오. – N1ckles

관련 문제