어떤 사용자가 디렉토리를 삭제했는지 어떻게 알 수 있습니까?


8

내 우분투 서버에는 약 30 명의 활성 사용자가 있습니다. 나는 서버를 사용하는 모든 사람을 개인적으로 알고 있습니다. 최근에 몇몇 친구와 나는 프로젝트를하고있었습니다. 우리는 프로젝트를위한 새로운 디렉토리를 만들었고 모든 사람들이 모든 것을 알고 있기 때문에 우리는 많은 권한 하에서 우리의 작업을 보호하지 않아도됩니다. 우리는 오늘 아침에 누군가가 전체 디렉토리를 제거했다는 것을 깨우기 위해 일어났기 때문입니다.

우리의 작업은 매일 밤마다 백업되므로 작업을 복원하는 것이 큰 문제는 아닙니다. 그러나 우리는 누가 그것을 제거 할 수 있는지 알아 내고 싶습니다. 지금까지 우리의 범인을 찾기 위해 우리가 생각해 낸 최선의 방법은 모든 사람의 배쉬 이력을 확인하는 것입니다. 그러나 이것은 길고 지루하며 디렉토리 제거 뒤에 악의적 인 의도가 있다면 우리의 범인이 트랙을 덮기 위해 그들의 의도를 수정했을 것입니다 (또는 물론 다른 쉘을 사용할 수도 있습니다).

그렇다면 기본적으로 누가 디렉토리를 삭제했는지 알아내는 가장 쉽고 빠른 방법은 무엇입니까?

시간 내 주셔서 감사합니다.


2
나는 그것이 가능하지 않다고 생각합니다.
enzotib 2016 년

4
다음에 는 Ubuntu One 또는 Dropbox와 동기화 된 버전 제어 시스템 또는 SparkleShare (VCS 사용 git) 또는 암호화 된 폴더 ( [gnome- ] encfs 사용 )를 사용하십시오 .
dAnjou 2016 년

@dAnjou 우리는 서버에 git과 subversion을 설치했지만 파일을 지속적으로 추가 / 제거하는 웹 사이트에서 작업했기 때문에 필요없는 번거 로움이있는 것처럼 보였습니다. 내 질문에서 언급했듯이 그룹을 만들고 그룹에서만 디렉토리에 액세스 할 수있게해야합니다. 어쨌든 백업 한 이후 모든 작업을 되돌릴 수 있습니다. 지금 당장 걱정하는 것은 사용자가 시스템에서 디렉토리와 관련이없는 디렉토리를 삭제하는 것을 원하지 않습니다. 나는 모든 사용자가 이와 같은 일을하지 않도록 믿어 정말 귀찮게합니다.
Rob S.

그렇습니다. 불가능합니다.
psusi

1
파일의 삭제 (또는 수정)를 감시 할 수 있습니다. 참조 cyberciti.biz/tips/...을 하고man auditctl
Lekensteyn

답변:


5

귀하의 질문에 대한 마법의 총알 답변을 찾지 못했습니다. 그 이유 중 일부는 여기에 자세히 나와 있습니다 : /superuser/178596/checking-user-command-history-in-unix

이 간단한 명령은 모든 사용자 홈 디렉토리의 모든 쉘 히스토리 파일에서 rm & mv 명령을 검색하여 발생한 상황을 추적하는 데 도움이 될 수 있습니다.

find /home -type f -iname .*history -exec grep "rm\|mv" {} \;

저장하려면 유효한 백업이 좋지만 프로젝트 폴더에 대한 일부 그룹을 생성하고 해당 그룹에 사용자 계정을 추가하는 것이 좋습니다. 앞으로 많은 고통을 덜게 될 것입니다.

예 : 그룹 추가 및 프로젝트 팀 구성원 추가

groupadd coolproject
adduser jim coolproject
adduser joe coolproject
adduser charlie coolproject

누가 파일을 작성 / 편집하는지에 관계없이 권한을 올바르게 재귀 적으로 설정하고 팀에 대한 액세스를 보장합니다.

chown -R yourusername:coolproject /path/to/projectdir
find /path/to/projectdir -type d -exec chmod 2775 {} \;

(2는 그룹 소유권을 "고정"으로 설정하여 프로젝트의 그룹 소유자가 "coolproject"로 유지되도록합니다)

find /path/to/projectdir -type f -exec chmod 664 {} \;

희망이 당신을 도와줍니다! 비-)


감사! "find / home -type f -iname. * history -print -exec grep"rm \ | mv "{} \;"로 명령을 수정하여 흥미로운 정보를 보여주는 기록 파일 이름을 얻을 수있었습니다.
Rob S.

훌륭한 Rob! 도움이 될 수있어서 다행입니다. =)
Chad Stovern 2016 년

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