<목차>
1. 계정과 권한 에 대한 이해
2. 사용자 타입 과 그룹
3. 파일의 접근 권한 설정하기
1. 계정과 권한 에 대한 이해
window 에서 사용자 명을 지정하여 컴퓨터를 사용하는 것 처럼 우분투 에서도 사용자의 계정을 만들어서 사용이 가능하다. 최상위에는 root 계정이 존재하며 그밑에 사용자가 필요한 계정을 만들어서 사용한다.
- root 계정
모든 시스템 파일 수정하거나 삭제할 수 있는 권한이 있습니다.
=> 컴퓨터의 중요한 설정을 바꾼다거나 그런 것
-사용자 계정
일반 사용자 계정은 루트 계정보다는 적은 권한을 가지고 있습니다.
사용자가 컴퓨터를 일상적으로 사용하는 계정이므로, 꼭 필요한 권한만을 가집니다.
유저를 만드는 명령어
최상위 계정인 root 에서 명령어 adduser (사용할 유저네임) 을 사용합니다.
해당사용자의 id와 동일한 이름의 디렉토리가 생성됩니다.
아이디 생성시 생성된 새로운 비밀번호를 설정해달라는 문구가 뜬다.
home 에들어가서 ls 를 확인하면 userkim 이라는 아이디가 생성이 되있다.
사용자 관련 명령어
id : 현재 사용자의 아이디와 사용자가 속한 그룹의 아이디를 포함한 아이디 관련 정보를 보여줌
id-u :현재 사용자의 아이디를 출력
id -un: 현재 사용자의 이름을 출력
whoami 현재 사용자의 이름을 조회
users: 현재 로그인 되어있는 전체 사용자의 정보를 조회함
2. 사용자 타입 과 그룹
아이디를 생성하고 아이디를 확인해보면 UID(유저 아이디) GID(그룹 아이디) 가 같이 만들어지게 된다.
이때 사용자의 타입은
- 루트 사용자 -UID 0
- 시스템 사용자 -UIDs 1~999
- 일반 사용자 -UIDs 1000~
의 값을 지정받아서 생성이된다.
UID
리눅스가 커널 속에서 사용자를 위한 프로세스 진행 시 사용자 계정을 사용하기 위해서 사용 uid는 리눅스 시스템이 사용하는 신분증 개념 반대로 사용자의 계정은 리눅스의 관리자가 사용하는 ID로 생각 할 수 있다. 따라서 리눅스 내부에서의 프로세스나 파일관리는 관리자의 계정이 아니라 시스템 사용자의 UID를 사용한다.
GID
GID는 그룹의 신분을 의미하며 시스탬 내의 사용자가 속한 그룹의 신분증으로 사용된다. 리눅스는 이 정수를 사용자 계정의 기본 그룹을 설정할 때 사용하게 된다. 하나의 그룹에는 한사람 이상이 꼭 들어가 있어야하며 그룹 제거시 한사람이라도 그룹에 속해있다면 삭제 또한 불가능 하다.
루트권한을 가진 mls 라는 아이디는
0이라는 유저 아이디와 0이라는 기본 그룹아이디 0 즉 root 사용자임을 알 수 있다.
임의로 만든 유저1이라는 사용자는 일반 사용자 이기에 1000 이상의 번호를 받은 것을 확인 할 수있다.
gid 라는 그룹아이디가 있으나 groups가 또 있는것을 알수 있는데 후자의 groups 는 임의로 포함한 그룹의 번호를 나타낸다 지금은 임의로 포함된 그룹이 없기에 그룹 아이디와 같이 1001 이라는 값을 가진다.
맨 마지막에 users 라는건 사용자 아이디가 생성시 기본적으로 users 라는 그룹에 묶이기 때문이다.
앞서 만든 유저kim의 경우도 일반사용자이기에 1000이상의 번호와 100(users)라는 기본그룹에 포함된것을 알 수 있다.
3. 파일의 접근 권한 설정하기
파일의 경로에서 ls -al 를 사용하면 자신의 하위에 있는 폴더와 디렉토리를 확인할 수 있는데
d로 시작하는건 디렉토리(폴더)라는 뜻이고
-로 시작하면 파일 타입 이라는 것을 뜻합니다.
ls: 해당 디렉토리 내에 있는 리스트 목록을 확인합니다.
ls -al : 숨김 폴더 까지 전부 리스트로 확인해서 그 폴더나 파일에대한 권한과 함께 보여줍니다.
해당 루트 계정의 홈에서 ls -al 명령어를 쓰면 그 하위폴더의 디렉토리와 파일이 출력된다.
- 나 d 뒤에 r, w, x 알파벳을 확인할 수 있는데 이는 각각
r (read): 읽기 (4)
w (write) : 쓰기(2)
x (execute): 실행(1)
을 뜻합니다.
맨 앞의 d 나 - 파일의 타입을 나타내는 기호를 제외하고 총 길이가 9자가 되는데 위의 디렉토리 폴더를 예시로 설명을 하자면
앞의 3자리 rwx 는 사용자가 사용할수 있는 권한 (읽기, 쓰기, 실행) 이 모두 가능하다는 것을 뜻합니다.
중열의 3자리 r-x 는 같은 그룹에 소속된 사용자가 사용할 수 있는 권한으로서 (읽기,실행)이 가능하나 쓰기 즉 수정은 불가능하다 라는것을 뜻 합니다.
마지막 3자리 r-x 는 사용자와 그룹에 소속된 사람이아닌 모든사용자가 사용할 수 있는 권한을 뜻함으로서 (읽기,실행)이 가능합다는 것을 뜻합니다.
권한 수정
chmod :권한을 수정하는 명령어
chmod 명령어가 권한을 수정하려면 점수가 필요하다.
r (read): 읽기 (4)
w (write) : 쓰기(2)
x (execute): 실행(1)
위에있던 디렉토리로 예시를 들자면
사용자의 점수는 r(4) w(2) x(1) 의 모든 권한을 가지고있기에 이를 합한 값인
7이된다.
따라서 해당파일은
chmod 755 의 권한을 가지고 있는 디렉토리라고 볼 수 있다.
해당디렉토리를 chmod를 사용해서
사용자 외의 모든 권한을 주고싶지 않을떄
chmod 700 (./해당 파일 이나 인덱스) 를 사용하면
사용자 외의 모든 권한이 사라지게 만들 수 있다.