리눅스

리눅스 유저 정보 및 권한 명령어 (rwx, chmod)

developerYoung 2023. 8. 27. 21:33
반응형

유저 정보 확인

uid / gid

리눅스의 유저 ID는 두가지가로 나타낼 수 있어요!

 

uid : User ID

gid : Group ID

 

이 아이디는 모두 숫자로 관리되며 id 라는 명령어로 확인할 수 있어요!

 

아래 사진은 kali 라는 계정의 id를 확인한 사진이에요..

uid, gid는 모두 1000이며 이 id 값은 리눅스에서 숫자로 갖고 있으며, 문자인 kali로 관리하지 않아요!.

이제 계정을 바꿔 root 계정을 확인해보도록 할께요. (id root로도 바로 확인할 수 있어요)

switch user의 약자인 su 명령어를 통해 계정을 바꿔보세요! 

su root로 root라는 계정으로 바꾸라는 명령을 내리고 password를 입력이 나온다면 password를 입력하면 root 계정으로 변경됨을 확인할 수 있어요.

똑같이 id 를 통해 결과를 확인해보면 uid, gid는 0번 임을 확인할 수 있다.

 

이번엔 새로운 계정을 추가해보도록 하죠!

useradd [userid] 명령어를 통해 생성할 수 있으며, 실행하여 id를 확인했더니 1001이 되었고, gid도 kali2가 되었어요.

즉, useradd로 userid를 만들면 기본적으로 groupid도 같이 생김을 확인할 수 있어요.

기존 groupid를 갖게 하던지 또는 추가적으로 useradd의 option들은 필요한 부분을 검색해서 알아봐주세요!

 

이렇게 만들어진 전체 계정들의 목록을 관리할 수 있는 곳은 /etc/passwd 파일입니다.

vi editor를 통해 vi /etc/passwd 를 입력해보시면 아래와 같이 계정들의 정보들을 확인할 수 있습니다.

맨 아래보시면 아까전에 만들었던 kali2 라는 계정도 있는 것을 확인할 수 있죠!

 

해당 파일은 이렇게 읽으면 됩니다.

  1. 계정ID
  2. password
  3. uid
  4. gid
  5. nickname
  6. 홈디렉토리
  7. 로그인 쉘

순서로 제공됩니다. 이 중에 password는 /etc/shadow에서 관리되어 x로만 표시됩니다.

 

유저 권한 설정

rwx (read, write, execute)

유저에게 주어진 권한은 rwx 세가지로 나눌 수 있어요.

  • read (읽기 권한)
    파일을 읽을 수 있나요?
    디렉터리 안에 있는 파일을 알 수 있나요?
  • write (쓰기 권한)
    파일을 수정할 수 있나요?
    디렉터리 안에 파일을 생성할 수 있나요?
  • execute (실행 권한)
    파일을 실행할 수 있나요?
    디렉터리에 접근할 수 있나요? (cd를 통한 접근)

이 세가지 권한을 통해 우리는 파일을 관리할 수 있어요!

한 번 root 계정으로 파일을 생성해보고, 권한을 체크 후 다른 계정에서 수정이 가능한지 확인해볼까요?

저는 vi로 test_file을 만들었고, 해당 파일의 대한 정보를 확인했습니다(ls -l 명령어를 통해 파일 정보를 자세히 확인할 수 있어요)

위의 사진을 보면 -rw-r--r-- 이렇게 된 부분이 보이죠?! 해석을 하면 이렇게 나눠서 확인하면 돼요

 

파일 권한 정보

- / rw- / r-- / r-- / root / root

4가지 구간으로 나눴다면 이제 각각 무엇을 의미하는지 알아보죠

첫번째 : - 이면 파일, d 이면 디렉터리 -> 파일!!

두번째 : 파일 또는 디렉터리의 소유자 권한 -> root 계정은 읽고 쓰기 권한

세번째 : 파일 또는 디렉터리의 그룹 권한 -> root 그룹은 읽기 권한

네번째 : 소유자도, 그룹 멤버도 아닌 다른 사용자 권한 -> 다른 사용자는 읽기 권한

 

이렇게 해석을 할 수 있게 됩니다!

 

직접 다른 사용자로 바꾸어 수정이 가능한지 확인해보세요!

su [다른 사용자]

vi test_file

이렇게 파일에 접근하게 된다면 r-- 권한이기 때문에 읽기 전용이며 쓰기가 불가능함을 아래의 readonly가 적혀 있음으로 확인이 가능해요!

수정한 후 :w를 통해 저장을 하려해도 readonly로 불가능함을 확인할 수 있어요!

이렇게 유저마다 파일 또는 디렉터리에 대한 권한을 부여할 수 있는 것을 확인할 수 있어요!

 

반응형

파일 권한 변경 (chmod)

이제 파일의 권한을 변경해보며 기존의 root 계정만 쓰기가 가능함에서 kali계정이 읽기 권한이 가능하도록 변경해볼게요!

 

chmod는 세가지 유저(u), 그룹(g), 다른 사용자(o)과 권한을 추가(+), 삭제(-)와 rwx 권한 세가지의 조합으로 변경할 수 있어요.

몇가지 예시를 들어볼게요!

  1. chmod g+w test_file  -> group 권한에 write 권한을 추가
  2. chmod u-x test_file  -> 소유자 권한에 execute 권한을 삭제

그렇다면 test_file이 kali가 쓸 수 있으려면 다른 사용자에게 쓰기 권한을 줘야하므로 어떻게 할까요?

 

다들 어떻게 하는지 아시겠죠? 아래와 같이 변경을 할 수 있어요! (직접 다른 계정으로 이동 후, test_file을 수정해보세요!)

이렇게 말고도 권한을 숫자 정보로도 표현할 수 있어요! (mac 유저라면 봤을 수도 있을 것 같아요!)

r : 4, w : 2, x : 1 을 통해 권한을 설정할 수 있어요.

위의 rw- r-- rw-의 권한은 646 권한으로 확인할 수 있고, chmod 646 test_file 이렇게 바꾸는게 가능한 것도 알아주세요!

반응형