2017-04-24 3 views
-1

특정 사용자의 마지막 명령을 반환하는 함수를 정의했습니다. 이 코드입니다 :Centos 7-flask 다른 사용자의 배시 기록을 볼 수있는 권한을 부여하십시오.

def user_commands(user): 
    line = "/home/"+user+"/.bash_history" 
    commands = Popen([ "tail", line], stdout=PIPE, stderr=PIPE).communicate()[0].split('\n') 
    return commands 

그러나 그것은 단지 내가 다른 사용자를 사용하는 경우 그것은 나에게 명령의 목록을 표시 나던

enter image description here

내 사용자 파이썬 함께 작동합니다. 그것은 다른 사용자의 bash_history를 볼 수있는 권한이 필요하기 때문에 내가 생각

enter image description here

이다. 모든 사용자와 함께 작동하려면 어떻게해야합니까?

+0

당신은 그들이 흐릿 오프 사이트가 아닌 텍스트 등 어떻게 다른지, 실제로 무슨 일이 당신이 기대하는 것을, 당신이 얻을 오류를 게시 할 수 없습니다 모래밭? – pvg

+0

@pvg 플라스크로 작업 중이며 특정 사용자의 명령 목록을 보여주는 스크립트를 만들고 싶습니다. 내 문제는 그것이 한 사용자로부터 만 작동한다는 것입니다 : 파이썬, 파이썬 스크립트를 실행할 때 실제 사용자입니다. 브라우저에 다른 사용자를 둔다면이 예에서 사용자 루트 http://192.168.56.101:8080/v1.0/users/root/commands를 입력하면 명령이 표시되지 않습니다. 파이썬에서 작동하는 것처럼 브라우저가 사용자 루트의 명령리스트를 보여줄 것으로 기대합니다. 다른 사용자의 bash_history에 액세스 한 다음 플라스크에 스크립트를 사용하여 브라우저에 명령을 표시하십시오. –

+0

추가 세부 사항을 질문에 편집해야합니다. 거기에 추가하십시오. – pvg

답변

0

권한 문제와 비슷합니다. bash 내역 파일에 액세스 할 수있는 권한이 스크립트가 실행중인 사용자인지 확인하십시오.

신속하고 유익한 대답은 스크립트를 루트로 실행하는 것입니다.

더 좋은 아이디어는 필요한 정보를 수집하고 스크립트로 액세스 할 수있는 디렉토리에 배치하는 cron 작업을 실행하는 것입니다.

0

감사가 권한 문제이고, 내가 추가 해결했다이 명령 :

chown -R python /home 
chown -R u+rX /home 
+0

거대한 보안 구멍처럼 보입니다. – pvg