Linux 초심 찾기...

samdaso-o·2022년 2월 18일
0

linux

목록 보기
3/3
post-thumbnail

적게 된 계기

분명 머리는 이해하고 있는 개념인데 다른 사람에게 설명을 할 때에는 입에서 맴돌고 설명하지 못하는 경우가 종종 생기곤 했다. 정리가 되지 않은 개념이라고 생각되어 확실하게 정리하고자 적게 되었다.

리눅스 권한 체계

r..w..x..?

  • read(r) : 읽기 권한
  • write(w) : 쓰기 및 수정 권한
  • execute(x) : 실행 권한

리눅스에서 파일 권한을 확인하고자 한다면 ll 또는 ls -l 명령어를 치면 된다.
위 명령어를 치게 된다면 아래와 같은 화면이 출력되게 되는데 하나씩 알아보도록 하자.

맨 앞쪽의 10개의 문자들은 권한 구성을 나타내는 것이다. 10개 문자는 4개의 그룹으로 나뉜다.

1번째 문자

1번째 문자는 파일 또는 폴더/디렉토리 및 링크를 표시하는 문자이다.

    • : 파일이라는 뜻
  • d : 폴더/디렉토리라는 뜻

  • l : 링크라는 뜻

    2-4번째 문자

    파일 주인의 읽기, 쓰기, 실행 권한을 표시하는 것이다.
    위 사진을 예시로 들자면 첫번째 경로 권한의 주인은 root이고 'rwx'가 전부 있으므로 모든 권한을 사용할 수 있다는 뜻이다.

    5-7번째 문자

    파일 주인이 속한 그룹의 읽기, 쓰기, 실행 군한 표시

    8-10번째 문자

    그 외 유저들 읽기, 쓰기, 실행 권한 표시

    그룹?

    그룹확인

    그룹을 확인하고 싶다면 /etc/group 파일에서 확인 가능하다.

    tail /etc/group

    결과값은 GID(group id)오름차순으로 설정되어있다. 그룹은 기본적으로 사용자를 생성할때 자동으로 생성된다.

    유저확인

    한명의 유저의 그룹정보를 확인하고 싶다면 id 명령어를 사용하면 된다.

    id test_user1

    위의 명령어를 사용한다면 test_user1의 UID(user id), GID(group id), 그리고 속해있는 그룹에 대한 정보가 출력된것을 볼 수 있다.

    그룹생성

    그룹 생성 명령어는 groupadd 다.
    원한다면 -g 옵션으로 GID 그룹ID를 직접 지정도 가능하다.

    groupadd -g 555 test_group

    그룹 id를 지정해서 생성 후 다음 그룹 생성 시부터는 기존 오름차순으로 생성되던 id가 아닌 가장 큰 숫자를 기준으로 하나씩 증가되며 생성된다.

    그룹 유저 추가

    그룹에 유저를 추가하는 명령어는 usermod 명령어이다. 그리고 -G 옵션으로 추가할 그룹명과 유저명을 입력하면 된다.

    usermod -G test_group test_user1

    참고로 한 유저는 여러 그룹에 포함이 가능하다.(max 3개?) 하지만 그러기 위해서는 /etc/group 파일로 가서 명령어가 아닌 직접 수정이 필요하다.
    vim edit를 이용해 편집하면 간단하다. 기존의 형식에 맞춰 작성하고 저장하면 된다.

    그룹 삭제

    그룹 삭제는 groupdel이라는 명령어를 사용한다.

    groupdel test_group

    만약 삭제하고자 하는 그룹에 속한 유저중에서 그 그룹이 기본 그룹으로 설정되어있는 유저가 있다면, 그 그룹은 삭제되지 않는다는 점 숙지하길 바란다.
    만약 그 유저의 기본 그룹을 변경하고 싶다면 usermod 명령어로 변경 후 삭제 작업을 진행하면 된다.

    권한 변경

    chomd [변경하고자 하는 권한 값][파일 또는 폴더/디렉토리]

    권한 변경은 chmod(change mode) 명령어를 사용한다.
    chmod는 4개의 그룹중 첫번째 그룹을 제외한 나머지를 지정해주어야한다. 나머지 3개의 그룹을 숫자를 이용해 번경을 해주어야 하는데, 그 숫자는 r, w, x를 전부 더한 값이다.

  • r = 4

  • w = 2

  • x = 1
    예시로 그 그룹에 모든 권한을 부여하고 싶다면 r, w, x를 전부 더한 값인 7을 쓰면된다.

    파일 소유권 변경

    소유권 변경은 root 유저만 가능하므로 root로 login 한 후 진행하길 바란다.

    chown [소유권자]:[그룹 식별자][소유권을 변경하고 싶은 파일명 또는 디렉토리명]

    위의 사진을 예시로 설명하겠다.
    만약 .bash_history 파일을 root유저의 소유로 변경하고 그룹 aaa로 변경하고 싶다면 아래의 명령어로 입력하면 된다.

    chown root:aaa .bash_history

    아 참고로 디렉토리의 소유권 변경은 위의 명령어로 진행할 시 현재 디렉토리만 소유권이 변경되고, 하위의 디렉토리들은 변경이되지 않는다.
    만약 하위 디렉토리까지 같이 변경하고 싶다면 아래의 형식의 명령어를 사용하면 된다.

    chown root:aaa /etc/test

리눅스 파일 찾기

find [경로] -name [파일명]

최상단에서 찾고 싶다면 경로를 /로 지정하여 검색하길 바란다.
파일의 타입을 구별해서 검색하고 싶다면 위의 명령어에 마지막으로 -type f 옵션을 추가하면 파일만 찾아지고, -type d 옵션을 추가하면 디렉토리만 찾아진다.

실행 파일만 찾고 싶다면, 아래의 명령어를 사용하면 된다.

which [파일명]

profile
ㅎㅅㅎ

0개의 댓글