유저 정보 확인
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 라는 계정도 있는 것을 확인할 수 있죠!
해당 파일은 이렇게 읽으면 됩니다.
- 계정ID
- password
- uid
- gid
- nickname
- 홈디렉토리
- 로그인 쉘
순서로 제공됩니다. 이 중에 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 권한 세가지의 조합으로 변경할 수 있어요.
몇가지 예시를 들어볼게요!
- chmod g+w test_file -> group 권한에 write 권한을 추가
- 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 이렇게 바꾸는게 가능한 것도 알아주세요!