LINUX

Linux/ACL/권한 응용해서 계정 복구하기

25G 2021. 11. 3. 12:51

 

ACL (access control list)

- 파일이나 디렉터리의 확장 속성을 만들어주는 기능

 

setfacl == acl설정 명령어

 

-m : acl수정

-x : acl삭제

-b : 모든 acl삭제

 

getfacl == acl 확인 명령어

acl 설정 ex)

setfacl -m u:korea:rwx /acl

setfacl -m g:korea:rwx /acl

setfacl -m o:rwx /acl

 

alc 삭제 ex)

setfacl -x u:korea /acl

모든 acl 삭제 ex)

setfacl -d /acl

 

acl 확인 ex)

getfacl /acl

-acl 작업 이전의 기본 속성 정보는 ls명령어 출력 결과와 동일

-acl 작업 이후에는 ls명령어로는 정확히 확인이 안 되기 때문에 getfacl명령어로 확인

 

다음과 같이 테스트 디렉터리파일을 만들고

일반 사용자 계정으로 테스트를 해보자

other자격이 0이기 때문에 아무것도 할 수 없다.

 

getfacl명령어로 acl디렉터리를 확인해 보자

ls 명령어랑 비슷한 기능을 하지만 acl를 설정해줬을 때는 ls로는 확인하기 힘든 부분이 있기 때문에 사용해야 한다.

심볼릭 방식으로 acl권한을 준 후에 getfacl로 확인해보면

ls로 자세히 나오지 않은 권한들이 나온다.

 

그러면 korea라는 계정으로 다시 가서 작업을 해보면

아까는 권한이 없어서 안됐던 작업들이 다 되는 것을 확인할 수 있다.


 

acl설정 해제

 

-x옵션을 사용해서 설정을 해제한 후 확인까지 해봤다.

그리고 korea계정으로 가서 다시 한번 테스트를 해보면

아까 acl설정을 해줘서 됐던 rwx기능들이 하나도 되지 않는다.


계정 복구하기

다음과 같이 계정이 삭제되어 있고 흔적만 남아있는 상황에서 기존의 흔적을 이용해서 원래대로 user1 사용자를 복구해 볼 것이다.

 

그럼 위 사진을 볼 때 정상적인 사용자와 user1이 다른 게 뭘까?

바로 GID와 UID가 다르다.

 

그렇다고 이렇게 소유권을 바꾸려고 해도 되지 않는다.

왜냐하면 이 디렉터리를 사용할 gid와 uid가 없기 때문이다. 즉 이 계정을 수정할 주인이 필요한 것이다.

제일 아랫줄을 보면 기존에 홈 디렉터리는 그대로 사용하고 passwd에 user1 계정이 추가된 것을 볼 수 있다.

 

그리고.으로 시작하는 숨김 파일들이 내 계정의 상태가 아니다. 즉 껍데기만 바뀌어진 것이다.

 

소유권을 수정해 줬더니 관리자 root소유의 디렉터리까지 같이 user1로 지정됐으니 이것도 설정해 준다.

이제 메일함 부분도 소유권을 건드려 주자

이렇게 권한 관리를 응용해서 기존에 계정을 살릴 수 있다.

중요한 것은 삭제된 계정의 기존 흔적이 있기만 하다면 권한 관리를 응용해서 계정을 살릴 수 있게 된 것이다.

 

만약에 회사에서 한 사람이 나가게 되면 기존에 그 사람이 이용하던 계정은 삭제해주고 다른 사람이 그 업무를 해야 할 때 이렇게 디렉터리를 연결해서 후임자 계정이 해당 사용자 디렉터리를 관리할 수 있게 해 주는 것이다.

 

그리고 기본적으로 사용자의 홈디렉터리의 권한은 700을 기본으로한다.