리눅스 계정 제어하기
리눅스(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 사용자의 비밀번호를 물어봅니다. 여기서 - 의 유무의 차이가 있습니다.
su 와 su - 는 둘 다 루트 계정으로 전환하는 것을 의미하지만, su는 root 계정의 환경 변수를 가져오지 않고, 현재 계정의 환경 변수를 사용하게 되는 차이점이 있습니다.
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 명령으로 파일 및 폴더의 사용자와 그룹을 동시에 변경한다.
출처
리눅스 사용자 및 권한 관리
😀 리눅스 사용자 및 권한 관리에 대해 알아보자!
velog.io