2014-12-11 8 views
1

설정 :패브릭 sudo는 권한이 거부

  • 패브릭 1.9.1
  • 서버에 CentOS 7
  • 이다 사용자 tester0는 &가의 sudoers에 관리자 권한

문제 파일이 : 나는 '언제 '/ opt /'아래에 폴더를 만들려고하면 "Permission denied"를 반환합니다. 내 fabfile.py에서

:

[192.168.1.108] sudo: ls 
[192.168.1.108] out: rh 
[192.168.1.108] out: 

[192.168.1.108] sudo: id 
[192.168.1.108] out: uid=1000(tester0) gid=1000(tester0) groups=1000(tester0),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 
[192.168.1.108] out: 

[192.168.1.108] sudo: mkdir -p /opt/deploy_dest/ 
[192.168.1.108] out: mkdir: cannot create directory ‘/opt/deploy_dest/’: Permission denied 
Fatal error: sudo() received nonzero return code 1 while executing! 
Requested: mkdir -p /opt/pt_server/ 
Executed: sudo -S -p 'sudo password:' -u "tester0" /bin/bash -l -c "mkdir -p /opt/pt_server/" 

내가 tester0으로 액세스 할 때 ssh를 통해 수동으로 sudo mkdir -p /opt/deploy_dest 같은 폴더를 만들 수 있었다 :

parent_code_dir = '/opt/deploy_dest' 
with settings(sudo_user=pt_root_user,warn_only=False): 
    sudo("ls /opt/") #this works OK with the sudo command 
    sudo("id") #this works OK with the sudo command 
    sudo("mkdir -p %s" % parent_code_dir) #this returns the "Permission denied" 

내 터미널에서 나는 출력을 참조하십시오. 그러나 출력을 sudo -S -p 'sudo password:' -u "tester0" /bin/bash -l -c "mkdir -p /opt/pt_server/" 실행할 때 동일한 오류가 발생하므로 fabric sudo_prefix를 변경해야합니다.

더 좋은 솔루션이 있습니까? 내가 뭔가를 놓친 적이 있습니까?

답변

2

/opt/폴더에서 사용 권한 문제였습니다. 사용자 tester0이 root가 아닙니다.> 루트 권한이있는 그룹 휠에 있지만 실행중인 경우/opt /에 액세스하는 tester0 사용자로 sudo -u =>를 실행하면 그룹에서만 허용되지만 그룹에서는 허용되지 않습니다. 쓰다. 하나의 빠른 솔루션은 chmod g+w /opt/

입니다.