[Linux] 사용자와 권한

리눅스에서 가장 중요한 것 중 하나가 바로 사용자를 분리하고 권한을 부여하는 것이다.



사용자 추가

사용자의 추가는 useradd 명령어로 수행할 수 있다. 슈퍼유저 권한으로 수행해야 한다.

passwd로 비밀번호도 설정해주자

잘 만들었고, 패스워드도 잘 기억하고 있다면 이제 그 계정으로 로그인이 가능해진다.

삭제는 userdel 명령으로 수행할 수 있다.



권한 설정

이제 권한에 대해 짤막하게 다뤄보겠다.
테스트를 위해 전용 폴더를 하나 파놓고

모종의 작업을 쳐놓았다.

그리고 아까 만들었던 계정으로 들어가면 어떻게 될까?

튕긴다.
이게 다 권한을 막아놔서 그런건데, 권한상태는 ls -l로 확인할 수 있다.

저 맨 왼쪽부분을 봐야 한다.
rwx rwx rwx이 계속 반복되는데, 저게 다 각각의 대상에게 허용되는 동작을 명시한 것이다.
r는 읽기, w는 쓰기, x는 실행이고. 첫번째는 소유자, 두번째는 그룹, 세번째는 외부자다.
여기서 test의 경우 외부자는 ---로 아무런 권한도 가질 수가 없다.
그래서 아무 연관이 없는 visitor에겐 단순한 폴더로의 이동 작업마저 막혀버린 것이다.

만약 파일이나 디렉터리의 권한을 수정하고 싶다면, chmod 명령을 사용하면 된다.
첫번째 인자가 권한정보, 두번째 인자가 파일/디렉터리명이다.
이렇게 쓰면 되는데

저기서는 777을 썼다. 왜 뜬금없이 숫자를 써놨을까?
여기서 잘 기억해야 할 점은, 권한정보를 비트플래그값으로 뭉쳐서 표현한다는 것이다.
각각의 숫자는 순서대로 소유자, 그룹, 외부자의 권한내역을 나타낸다.
그리고 읽기권한은 4. 쓰기권한은 2. 실행권한은 1이다.
3가지를 전부 다 허용해주려면 4+2+1 해서 7을 주면 되는 것이다.

실행권한만 주고 싶으면 1.
아무것도 주기 싫으면 0.
쓰기랑 읽기만 주고싶으면 6..
이런 식으로 쓰면 된다.

그렇다.