사용자가 시스템에 접근하려면 사용자 계정이 반드시 필요합니다. 사용자 계정은 시스템 관리자가 만들어줘야 하는 것이므로 관리자는 사용자 계정과 관련된 명령을 잘 알고 있어야 합니다. 사용자 계정 관리에는 사용자 계정의 등록과 삭제, 등록된 계정 관련 정보 수정 등의 업무가 포함됩니다.
adduser 명령으로 사용자 계정 생성하기
adduser 명령은 useradd 명령과 비슷한 기능을 합니다. 옵션을 지정하면 사용자 계정을 등록할 수도 있고, 기본 설정에 따라 사용자 계정을 생성할 수도 있습니다. adduser 명령의 기본 형식은 다음과 같습니다.
adduser |
- 기능 : 사용자 계정을 생성한다. - 형식 : adduser [옵션] 로그인 ID - 옵션 --uid UID : UID를 지정한다. --gid GID : 기본 그룹의 GID를 지정한다. --home DIR : 홈 디렉터리를 지정한다. --shell 셸 : 기본 셸을 지정한다. --gecos 설명 : 사용자의 이름 등 부가적인 설명을 지정한다. - 사용 예 adduser user5 adduser -uid 2001 user5 adduser --home /home/user5 -uid 2001 -gid 2100 --s /bin/sh user5 |
sudo adduser user2
또는
sudo adduser --uid 2001 user5
위와 같은 식으로 사용자 계정을 만들 수 있습니다.
user2는 아이디를 지정하지 않고 해서 기존에 있던 user1에서 +1된 값이 부여됐습니다. 반면 UID 값을 2001으로 지정 후 생성한 user5는 2001번으로 지정된 것을 볼 수 있습니다. GID값 또한 UID값을 따라 2001번으로 지정됐습니다.
adduser 명령의 기본 설정은 /etc/adduser.conf에 저장되어 있습니다. 기본 셸은 /bin/bash이고, 첫번째 사용자 계정의 UID는 1000번부터 시작하도록 되어 있습니다.
기본적으로 설정된 셸은 굳이 수정하지 않는 것이 좋습니다. 특별한 사유가 있지 않다면 말이죠.
사용자 계정 정보 수정하기
usermod 명령은 사용자 계정 정보를 수정할 때 사용합니다. UID, GID, 홈 디렉터리, 기본 셸, 설명, 로그인 ID 등 계정과 관련된 모든 정보를 수정할 수 있습니다. 또한 암호에서 짤막하게 설명했던 INACTIVE(유예기간), EXPIRE(실제만료) 값 또한 지정이 가능합니다.
usermod |
- 기능 : 사용자 계정 정보를 수정한다. - 형식 : usermod [옵션] 로그인 ID - 옵션 -u uid : UID를 수정한다. -o : UID의 중복을 허용한다. -g gid : 기본 그룹을 수정한다. -G gid : 2차 그룹을 수정한다. -d 디렉터리명 : 홈 디렉터리를 수정한다. -s 셸 : 기본 셸을 수정한다. -c 설명 : 부가적인 설명을 수정한다. -f inactive : 계정 비활성화 날짜를 수정한다. -e expire : 계정 만료 날짜를 수정한다. -l 새 로그인 이름 : 새 로그인 이름으로 계정 이름을 바꾼다. -사용 예 usermod -u 1111 user1 usermod -l user111 user1 usermod -d /home/user111 user1 |
일단 -u 옵션을 사용해 보겠습니다.
저는 test01의 UID를 수정해봤습니다. 기존 UID 값이 2002였는데, 1001으로 바꿨습니다. 기존 UID 1001값을 가지고 있던 user2와 중복되었기 때문에 -o 옵션을 추가했습니다.
결과값에서 보이듯 UID 값을 중복되게 설정했지만, 해당 기능은 아주 특별한 경우에만 허용해야 합니다. 리눅스는 UID가 같으면 로그인 ID가 달라도 같은 사용자로 인식하기 때문에 혼동을 야기할 수 있습니다.
홈 디렉터리 변경하기 : -d 옵션
사용자 계정의 홈 디렉터리를 변경하려면 -d 옵션을 사용해야 합니다.
sudo usermod -d /home/test1111 test01
위와 같이 입력하면 test01의 홈 디렉터리가 /home/test01 에서 /home/test1111 로 바뀌게 됩니다. 하지만 해당 설정은 /etc/passwd 파일의 설정 값만 바꾼 것이기 때문에 mv 명령을 통해 /home/test01 /home/test1111 까지 해주어야 합니다.
로그인 ID 변경하기 : -l 옵션
-l 옵션으로 사용자 계정의 로그인 ID를 바꿀 수 있습니다. 로그인 ID를 바꿀 때는 홈 디렉터리도 같이 바꿔주는 것이 이상적입니다. 해당 옵션도 로그인 계정을 바꾼다고 디렉터리가 바뀌지는 않기 때문에 수작업이 필요합니다.
sudo usermod -d /home/test1111 -l test1111 test01
위 코드는 test01 로그인 ID를 test1111 로 바꿈과 동시에 디렉터리까지 /home/test1111 으로 바꿔준겁니다.
사용자 계정 삭제하기
userdel 명령은 사용자 계정을 삭제합니다. 사용자 계정을 삭제할 때는 홈 디렉터리도 함께 삭제할 것인지 결정하는 것 또한 필요합니다.
userdel |
- 기능 : 사용자 계정을 삭제한다. - 형식 : userdel [옵션] 로그인 ID - 옵션 -r : 홈 디렉터리와 메일 디렉터리를 삭제한다. -f : 사용자가 로그인 중이어도 강제로 삭제한다. - 사용 예 : userdel test01 userdel -r test01 |
사용자 계정만 삭제하기
userdel 명령에서 -r 옵션을 지정하지 않으면 사용자 계정만 삭제됩니다. 일반적으로 사용자 계정을 삭제할 때는 관련된 홈 디렉터리나 파일을 모두 삭제하는 것이 좋습니다. 물론 파일이 필요한 경우에는 계정만 삭제해도 괜찮지만, 일반적으로 계정을 삭제할 때 연관되어 있는 디렉터리, 파일도 삭제하기 때문에 이는 잘 기억해두어야 합니다.
만약 사용자 계정만 삭제하고 디렉터리, 파일을 그대로 방치하게 되면 필요 없는 파일이 디스크 공간을 차지하게 되기 때문에, 주기적으로 디스크를 점검해주는 것도 중요합니다.
사용자 계정 삭제를 위해 user3 을 새로 만들었습니다. 해당 계정과 관련 디렉터리를 함께 삭제해보겠습니다.
일단 grep을 통해 user3에 대한 정보를 한번 보고, userdel -r 옵션을 통해 user3을 완전히 삭제했습니다. /home 디렉터리를 살펴보면 user3이 없는 것을 확인할 수 있습니다.
하지만 -r 옵션을 사용한다고 100% user3에 대한 모든 것이 삭제됐다고 단언할 수는 없습니다. -r 옵션은 분명히 user3의 홈 디렉터리를 삭제했지만, 홈 디렉터리 이외에 user3에 관련된 다른 디렉터리는 삭제하지 않기 때문입니다.
이때 관리자는 find 명령을 통해 해당 계정이 소유한 모든 파일을 삭제하는데, 명령어는 다음과 같습니다.
find / -user UID -exec rm -r {} \;
예를 들어 user3 계정과 관련된 파일을 검색(find), 삭제(rm) 하려면 다음과 같이 작성하면 됩니다.
sudo find / -user 1002 -exec rm -r {} \;
user3의 UID 값이 1002이기 때문에 해당 UID와 연관되어 있는 모든 파일이 삭제됩니다. 이는 좀전에 다룬 사용자 계정 수정인 usermod 기능에 있는 -o (UID 중복 허용) 을 유의하며 해야하는 명령입니다. 다른 사용자가 UID를 공유하고 있다면 중요 파일이 손상될 가능성이 존재하기 때문입니다.
'Ubuntu Linux' 카테고리의 다른 글
사용자 관리 (0) | 2022.06.05 |
---|---|
사용자 계정 설정하기 (2) (0) | 2022.06.02 |
리눅스 사용자 관리 (0) | 2022.05.31 |
파일 압축하기, 풀기 (0) | 2022.05.31 |
APM을 이용한 웹서버 구축 (0) | 2022.05.30 |