리눅스 서버에서 파일을 여는 사람


2

Windows 환경의 Linux (Ubuntu) 파일 서버에서 누가 파일을 열 었는지 찾는 일반적인 작업이 있습니다.

우리는 네트워크에서 Samba를 사용하고 내 워크 스테이션에서 Putty를 사용하여 bash 스크립트를 실행하기위한 쉘 창을 설정합니다.

열린 파일을 찾기 위해 이와 같은 것을 사용했습니다.

Robert:$ sudo lsof | grep "/srv/office/some/folder"

그런 다음 프로세스를 소유 한 사람을 표시하기 위해 다음과 같은 작업을 수행합니다.

Robert:$ sudo lsof -p 27295 | grep "IPv4"

이제 파일을 열고 거기에서 조치를 취할 수있는 Windows 클라이언트를 알고 있습니다.

당신이 알 수 있듯이 이것은 어렵지 않지만 시간이 많이 걸립니다. 나는 내가 원하는 것을 줄 수있는 Windows 응용 프로그램을 실행하는 것을 선호합니다.

따라서 포트에서 수신 대기 한 다음 파일을 연 호스트의 IP 주소를 사용하여 열려있는 모든 파일의 정리 된 목록을 반환하는 Linux에서 실행할 수있는 일부 프로세스를 작성하려고합니다. 그런 다음 포트에서 요청을 보낼 수있는 작은 Windows 클라이언트 응용 프로그램입니다.

이것은 매우 일반적인 요구 인 것처럼 보이지만 이전에 수행 된 것과 같은 것을 찾을 수는 없습니다.

어떤 제안?


이를 위해 작은 bash 스크립트 작성을 고려 했습니까?
digitxp

답변:


0

I. 한 대의 컴퓨터에서 해당 작업을 수행해야하는 경우 다음과 같이하십시오.

  1. 보안 향상을 위해 이러한 작업에 대한 Linux 계정 (예 : "sambaadmin")을 만드십시오.
  2. 해당 계정에서 자동 로그인을위한 퍼티 구성
  3. 관리 작업을 수행하는 스크립트를 작성하십시오 ( /home/sambaadmin/see_clients.sh예 :). 나는 당신의 작업을 이런 식으로 할 것입니다 :

    smbstatus -p read -p "[Enter]를 눌러 종료하십시오 ..."exit

  4. 여기에 실행 권한 추가 ( chmod +x /home/sambaadmin/see_clients.sh)

  5. /home/sambaadmin/.bash_profile 파일 끝에서이 스크립트를 호출하십시오. .bash_profile은 사용자 로그인 후 자동으로 실행됩니다.

  6. 자동 로그인 세션을 위해 Windows 바탕 화면에 퍼티 shoutcut을 만듭니다.

그렇게하면 shourtuc이 퍼티를 열고 로그인하면 "admin task script"가 실행되고 putty 창에 표시되고 Enter를 누르면 세션이 종료됩니다.

II. 회사에서 많은 컴퓨터를 사용하는 경우 간단한 웹 응용 프로그램을 파이썬으로 작성하거나 일부 서버 웹 관리 소프트웨어 (예 : Webmin)를 사용하십시오.

III. cron을 사용하여 다음과 같이 매분 또는 두 개의 스크립트를 실행할 수 있습니다.

smbstatus -p > /somewhere/sambashare/openfiles.txt

Windows에서 해당 파일의 바로 가기를 만들고 파일을 열어서 진행 상황을 확인할 수 있습니다.

\\sambaserver\sambashare\openfiles.txt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.