리눅스 사용자 및 권한 관리

RHUK2·2021년 12월 31일
4

Linux

목록 보기
3/4

📚 Reference


빌노트, https://withcoding.com/101
빌노트, https://withcoding.com/102
빌노트, https://withcoding.com/103
이니앤디, https://gxnzi.tistory.com/75
개발자를 위한 레시피, https://recipes4dev.tistory.com/175

참고 사이트에 내용을 개인적으로 복습하기 편하도록 재구성한 글입니다.
자세한 설명은 참고 사이트를 살펴보시기 바랍니다.


리눅스 계정 제어하기


리눅스(Linux)에서 특정 명령을 실행하거나, 특정 파일에 접근하기 위해서 때로는 루트 권한이 필요한 경우가 있습니다. 이러한 경우에 사용하게 되는 su, sudo 명령어들과 각 명령어들의 차이점, 현재 계정을 확인하는 whoami 명령어와 계정 전환 후 다시 이전 계정으로 돌아가게 하는 exit 명령어들에 관한 내용입니다.

su vs sudo

일반 사용자가 루트 권한을 사용하기 위해서는 su(Switch User) 혹은 sudo(SuperUser DO) 명령어를 사용하면 됩니다.

📌 su 명령어
Switch User에서 알 수 있듯이, 현재 계정을 로그아웃하지 않고 다른 계정으로 전환하는 명령어 입니다.

$ su # root 계정으로 이동
$ su - # root 계정의 환경 변수를 가져오며 이동
$ su <유저 이름> # 유저 계정으로 이동
$ su - <유저 이름> # 유저 계정의 환경 변수를 가져오며 이동

su 명령어를 실행하게 되면 root 사용자의 비밀번호를 물어봅니다. 여기서 - 의 유무의 차이가 있습니다.

susu - 는 둘 다 루트 계정으로 전환하는 것을 의미하지만, suroot 계정의 환경 변수를 가져오지 않고, 현재 계정의 환경 변수를 사용하게 되는 차이점이 있습니다.

su -로 로그인을 하게 되면 기본 /root 디렉토리로 이동하게 됩니다.

📌 sudo 명령어
SuperUser DO 에서 알 수 있듯이, 슈퍼 유저로 무언가를 수행한다는 의미를 가지고 있는 명령어 입니다. 현재 계정에서 단순히 root의 권한 만을 빌리는 것입니다.

$ sudo <명령어> 

sudo 명령어를 실행하게 되면 root 권한으로 명령어를 실행하게 됩니다. 즉, 하나의 명령에 대하여 일시적으로 root 권한을 사용하는 것을 말합니다. 실행하기 전 현재 사용자의 비밀번호를 물어봅니다.

whoami

현재 사용자를 확인하는 명령어 입니다.

exit

전환 전 계정으로 돌아가는 명령어 입니다.


리눅스 사용자 관리하기


리눅스(Linux)는 멀티유저(다중사용자) 운영체제이기 때문에 많은 사람들이 한 컴퓨터를 사용할 수 있습니다. 사용자가 많기 때문에 운영체제 관리자가 사용자들을 관리할 필요가 있습니다.

adduser 명령어로 사용자 추가하기

$ sudo adduser <유저 이름>

위와 같이 명령어를 입력하면 리눅스 사용자를 추가할 수 있습니다.

adduser 명령어를 실행하면 다음과 같은 실행흐름을 가집니다.

🕐 사용자 추가하기
🕑 그룹 추가하기
🕒 그룹 안에 사용자 추가하기
🕓 /home 디렉토리 안에 사용자 폴더 추가
🕔 /etc/skel 디렉토리 안에 파일 및 폴더를 /home 디렉토리 안에 새로 추가된 사용자 폴더에 복사
🕕 사용자 패스워드 설정
🕖 기타 정보 설정

사용자 정보 확인하기

$ cat /etc/passwd # 사용자 정보
$ cat /etc/group # 사용자 그룹 정보
$ cat /etc/shadow # 비밀번호 정보
$ cd /etc/skel # /home 디렉토리 안에 사용자 폴더에 추가될 파일 및 폴더

cat /etc/passwd로 사용자 정보 파일을 열면 사용자 정보가 나열되어 있습니다.

📌 출력 결과 - 사용자이름:암호:사용자ID:그룹ID:추가정보:홈디렉토리:쉘

userdel 명령어로 사용자 삭제하기

$ sudo userdel -r <유저 이름>

위와 같이 명령어를 입력하면 리눅스 사용자를 삭제할 수 있습니다. 유저와 관련된 모든 내용을 삭제하기 위해 userdel 명령어 -r 옵션을 사용합니다.


리눅스 그룹 관리하기


리눅스(Linux)에서는 사용자, 그룹, 기타 사용자로 구분하여 권한 관리를 하게 됩니다. 새로운 사용자를 만들면 보통 사용자와 같은 이름으로 그룹을 만들어 설정합니다.

사용자 그룹 확인 groups 명령어

$ groups <유저 이름> # <유저 이름> : <그룹 이름> ...

사용자가 포함된 그룹을 나열합니다. 한 사용자가 여러 그룹에 소속될 수 있습니다.

그룹 만들기 groupadd 명령어

$ sudo groupadd <그룹 이름> 

새로운 그룹을 하나 만듭니다. 생성한 그룹은 /etc/group 파일에서 확인 가능합니다.

그룹 삭제 groupdel 명령어

$ sudo groupdel <그룹 이름>

그룹을 삭제합니다.

그룹 관리 gpasswd 명령어

$ sudo gpasswd <그룹 이름>

그룹의 암호를 설정합니다. 이 암호는 그룹에 포함되지 않는 사용자가 그룹으로 로그인하기 위해서 사용됩니다.

$ sudo gpasswd -r <그룹 이름>

그룹의 암호를 제거합니다.

$ sudo gpasswd -A <유저 이름> <그룹 이름>

사용자를 그룹 관리자로 설정합니다.

$ sudo gpasswd -a <유저 이름> <그룹 이름>

사용자를 그룹에 포함시킵니다.

$ sudo gpasswd -d <유저 이름> <그룹 이름>

사용자를 그룹에서 제외시킵니다.

다른 그룹 로그인 newgrp 명령어

$ newgrp <그룹 이름>

파일을 생성하는 등 작업한 내용이 로그인한 그룹명으로 기록됩니다.


리눅스 권한 관리하기


리눅스(Linux)는 하나의 컴퓨터를 여러 사람이 사용할 수 있는 멀티유저 운영체제(OS)이기 때문에 권한 관리가 매우 중요합니다. 파일과 디렉토리의 권한을 변경하고 소유권을 변경하는 방법을 알아보겠습니다. 보안에 중요한 내용이기 때문에 정확하게 이해하고 넘어가는 것이 좋습니다.

파일, 폴더 권한 확인하기 ls -l 명령어

ls -l명령을 사용하여 파일, 폴더 리스트를 출력하면 권한(퍼미션, 허가권)을 확인할 수 있습니다.

$ -rwxr-xr-x 1 user group 5720 Jul  3 20:06 a.out
$ -rw-r--r-- 1 user group  722 Jul  2 21:12 crontab.bak
$ -rw-r--r-- 1 user group   52 Jul  2 21:10 test.c

📌 출력 결과 - 파일 종류 및 권한(퍼미션):링크수:사용자(소유자):그룹:파일크기:수정시간:파일이름

파일, 폴더 권한 변경하기 chmod 명령어

파일 및 폴더에 권한 변경 시 사용됩니다. $ ls -l로 목록을 보면 파일 권한이 -rwxr-xr-x와 같은 형태로 표시됩니다. 맨 앞이 -인 경우는 파일, d인 경우는 폴더입니다. 나머지 문자들은 아래 이미지와 같은 역할을 합니다.

이는 8진법을 통해 쉽게 권한을 변경할 수 있습니다.

$ chmod 777 <파일명> # -rwxrwxrwx
$ chmod 755 <폴더명> # drwxr-xr-x

파일, 폴더 소유권 변경하기 chown 명령어(루트 사용자만 가능)

리눅스 chmod 명령어는 파일, 디렉토리의 권한(퍼미션, 허가권)을 변경하는 역할을 합니다. 반면 chown 명령을 사용하면 파일, 디렉토리의 사용자, 그룹을 변경할 수 있습니다. 쉽게 말해 파일의 소유권을 변경하는 것입니다.

$ sudo chown <유저 이름> <파일 및 폴더 이름>

chown 명령으로 파일 및 폴더의 사용자를 유저 이름으로 변경한다.

$ sudo chown -R <유저 이름> <파일 및 폴더 이름>

-R 옵션을 사용하면 디렉토리와 그 안에 들어있는 모든 파일의 사용자를 변경한다.

$ sudo chgrp  <그룹 이름> <파일 및 폴더 이름>

chgrp 명령으로 파일 및 폴더의 그룹을 그룹 이름으로 변경한다. 일반 사용자는 자신이 속한 그룹으로만 변경이 가능하다.

$ sudo chown <유저 이름>:<그룹 이름> <파일 및 폴더 이름>

chown 명령으로 파일 및 폴더의 사용자와 그룹을 동시에 변경한다.

profile
생각 많이 하지 않기 😎

0개의 댓글