2017-10-11 9 views
0

나는 ssh를 통해 연결된 모든 사용자와 그들이 수행하고있는 것을 sudo w -u으로 보여주는 bash 스크립트를 가지고있다. 사용자가 문서 (예 : index.php)를 편집중인 경우 해당 디렉토리가 어디에 있는지 알고 싶습니다 (시스템 전체에 여러 개의 index.php 파일이 있음). 다른 사용자가있는 디렉토리를 가져올 방법이 있습니까? 이것은 Raspbian Jesse에 있습니다.다른 사용자가있는 디렉토리를 bash로 찾으려면 어떻게해야합니까?

+2

지금까지 해보신 것은 무엇입니까? 어서, 노력 좀 보여줘. 여기에 팁이 있습니다. PID를 가지고 있다면,/proc//environ'에서 PWD를 찾으십시오. – Mort

+1

모름이 있으면 StackOverflow는 사람들이 기존 프로그래밍 코드를 수정하도록 돕는 것에 관한 것입니다. https://stackoverflow.com/help/on-topic, http://stackoverflow.com/help/how-to-ask, http://stackoverflow.com/help/dont-ask, http : //를 읽어보십시오. stackoverflow.com/help/mcve 여기에 더 많은 Q를 게시하기 전에 [둘러보기] (http://stackoverflow.com/tour)를 가져 가십시오. 행운을 빕니다. – shellter

+0

작업 디렉토리는 * 사용자 *가 아닌 * 프로세스 *의 속성입니다. '/ proc/$ pid/cwd'를 살펴볼 때 사용자 프로세스가 다른 작업 디렉토리에있을 수 있습니다. –

답변

0

이것은 다소 복잡하지만, 제 유스 케이스에서는 작동하는 것처럼 보입니다. 가정은 a) UID, b) 문제의 파일 이름, c) 다른 프로세스에서 같은 이름으로 여러 파일을 동시에 편집하지 않는다는 것입니다. 후자는 하나 이상의 PID를 추가하여 외부 lsof를 손상시킵니다. 그 문제를 운동으로 남겨 두겠습니다.}

lsof -p $(sudo lsof -u <USERID> | awk '/<FileName>/ {print$2}') | awk '$4 ~ /cwd/ {print $9}'