2024.06.20 - [공부하자/Linux] - [Linux]linux-ubuntu 20.04 실전 기본 명령어 -1(파일시스템)
**이전글**
사용자 및 권한관리
1) 사용자 관리
#새로운 사용자 추가
useradd: 새로운 유저를 생성한다.
passwd: 유저패스워드를 지정 혹은 변경한다.
sudo useradd -[옵션] 생성할유저명
sudo passwd 유저명
sudo useradd -m highgarden
sudo passwd highgarden
*sudo: `sudo`란 Super User Do의 줄임말로 root계정의 권한으로 명령을 실행한다는 뜻이다. linux에서 sudo를 사용하게 되면 웬만한 작업은 대부분 `permission deny`없이 진행가능하다.
*-m: `useradd`에서 `-m` 옵션을 주게되면 생성하는 user명으로 home경로에 디렉토리를 생성해 준다.
`highgarden` 이라는 user명으로 계정을 생성하려고 하니 root계정인 `garden`의 비밀번호를 요청하는 모습니다. 이후에 `passwd`명령어로 `highgarden` 계정에 비밀번호를 부여한다. 비밀번호입력과 확인절차까지 마치니 성공적으로 업데이트 되었다는 문구가 출력된다.
home 디렉토리로 가보니 새로운 유저의 디렉토리가 생성된 것을 알 수 있다.
#사용자 정보 수정
usermod: 사용자 계정에 관련된 다양한 정보를 수정한다.
sudo usermod -[옵션] 그룹명 유저명
sudo usermod -aG sudo highgarden
*-a: `-G`옵션과 함께 사용되며 지정하는 그룹에 계정이 추가된다. 만약 `-a` 없이 `-G`만 사용된다면 지정된 그룹 외 다른 그룹에서는 계정이 모두 삭제된다. append의 a를 의미한다.
*-G: 그룹에 계정을 배정한다.
`sudo`그룹에 highgarden계정을 추가(append)한다. cat /etc/group명령어를 실행하면 그룹목록을 확인할 수 있는데 사진 맨 아래 sudo 그룹에 highgarden이 잘 추가된 것을 확인할 수 있다.
#사용자 삭제
userdel: 사용자계정을 삭제한다.
sudo userdel -[옵션] 유저명
sudo userdel -r highgarden
*-r: 해당 사용자계정과 home디렉토리, mailspool을 함께 삭제한다. 앞서 계정을 생성하면서 home경로에 디렉토리를 추가했었다. `-r` 옵션을 주게 되면 계정삭제와 함께 관련 디렉토리와 mailspool을 함께 삭제해 준다. DBMS의 `CASCADE` 옵션과 비슷하다고 생각된다.
사용자계정을 삭제하니 디렉토리도 삭제되었고 group에서도 삭제된 것을 확인할 수 있다.
2) 파일 권한 관리
#파일 권한 확인
ls -l: 해당디렉토리 혹은 파일의 권한을 확인한다.
touch 파일명
ls -l 파일경로
touch highgarden.txt
ls -l highgarden.txt
일단 위에서 학습한 `touch`명령어로 txt파일을 하나 생성해 준다. 그다음 해당 파일을 `ls -l`로 조회해 보면 권한에 대한 내용이 출력되는 것을 볼 수 있다.
`highgarden.txt`라는 파일을 생성 후 `ls` 명령어와 `ls -l`명령어를 각각 실행해 본다. `-l`옵션을 주게 되니 파일정보가 좀 더 상세하게 보이는 것을 알 수 있다. 그다음은 원하는 파일 하나만 권한정보를 확인할 수도 있다. 권한정보는 맨 앞 10자리의 알파벳 묶음을 통해서 알 수 있다. 뭔 외계어가 쓰여있나 싶을 수 있기 때문에 리눅스의 권한정보를 읽는 방법을 설명하겠다.
#리눅스의 권한
리눅스의 권한정보는 총 10개의 문자를 갖는 문자열로 이루어져 있다. 예시를 통해 알아보자. 다음과 같은 권한정보를 가지고 해석해 보겠다.
- rwx r-x r-x
-첫 번째 문자: 파일의 유형
- - : 일반 파일
- d : 디렉토리
- l : 심볼릭 링크
- c : 문자 장치
- b : 블록 장치
- p : 파이프
- s : 소켓
-두 번째부터 열 번째 문자: 파일의 권한을 나타냄. 세 그룹으로 나누어짐.
- 첫 번째 그룹 (rwx): 소유자(owner)의 권한, 2~4 번째 문자열
- 두 번째 그룹 (r-x): 그룹(group)의 권한, 5~7 번째 문자열
- 세 번째 그룹 (r-x): 기타 사용자(others)의 권한, 8~10 번째 문자열
-r m x 의미
- r (read): 읽기 권한
- w (write): 쓰기 권한
- x (execute): 실행 권한
- - (none): 권한 없음
위 정보를 통해 예시(- rwx r-x r-x)의 권한정보를 해석해 보자면 다음과 같다.
- 일반파일: 일반적인 파일(-)
- 소유자(owner): 읽기, 쓰기, 실행 권한 (rwx)
- 그룹(group): 읽기, 실행 권한 (r-x)
- 기타 사용자(others): 읽기, 실행 권한 (r-x)
#파일 권한 변경
chmod: 파일의 권한을 변경한다.
chmod 권한 파일명
chmod 755 highgarden.txt
권한정보는 `rmx`라는 문자열로 표현가능하지만 숫자로도 표현이 가능하다.
1,2,4는 각각 2의 0승, 1승, 2승에 해당하는 수이다. 이 숫자들의 합으로 권한정보를 쉽게 표현할 수 있다.
-1 2 4 의미
- 1: 실행(x)
- 2: 쓰기(w)
- 4: 읽기(r)
각 숫자는 각각의 권한정보를 의미하는데 이 숫자들은 여러 조합으로 합쳤을 때 중복되는 숫자가 나오지 않는다. 때문에 숫자들의 합이 최대 3가지의 권한정보를 포함할 수 있다.
-권한정보(1 2 4)의 합으로 표현된 3 5 7
- 3(1+2): 실행(x) + 쓰기(w)
- 5(1+4): 실행(x) + 읽기(r)
- 7(1+2+4): 실행(x) + 쓰기(w) + 읽기(r)
이 정보를 바탕으로 `chmod 755`의 의미를 해석해 보자면, 소유자(rmx), 그룹(r-x), 기타 사용자(r-x)의 권한을 부여한다는 의미가 된다. 최소한의 텍스트로 많은 내용을 포함하기 위해 애썼다는 것을 알 수 있다. 하지만 진입장벽은 덤.
예상했던 대로 `755`에 해당하는 권한이 파일에 부여된 것을 확인할 수 있다.
#파일 소유자 변경
chown: 파일 소유자를 변경한다.
sudo chown 소유자:그룹 파일명
sudo useradd -m newuser
sudo passwd newuser
sudo chown newuser:newuser highgarden.txt
위 예제에서 생성한 사용자를 삭제했으니 다시 사용자를 생성해 주도록 한다. 예제에서는 `newuser`라는 이름으로 생성하였다.
기존 `highgarden.txt`의 소유주는 `garden`이고 그룹도 `garden`으로 되어있는 것을 확인할 수 있다. 새로운 계정으로 소유권을 넘기기 위해서 계정을 생성해 준다.
`chown`명령어로 `newuser`에게 소유권을 넘긴 후 권한을 조회해 보니 소유권 이전이 잘 완료되었다.
'공부하자 > Linux' 카테고리의 다른 글
[Linux]linux-ubuntu 20.04 실전 기본 명령어 -4(네트워크2) (0) | 2024.06.27 |
---|---|
[Linux]linux-ubuntu 20.04 실전 기본 명령어 -3(네트워크상태확인, ifconfig, ping) (0) | 2024.06.26 |
[Linux]linux-ubuntu 20.04 실전 기본 명령어 -1(파일시스템) (0) | 2024.06.20 |