Linux

Permission of Linux

LeeJaeJun 2024. 2. 23. 12:03
728x90
반응형

x, r, w의 뜻과 각각의 의미

  • x (execute): 실행 권한, 파일이나 디렉터리를 실행할 수 있는 권한
  • r (read): 읽기 권한, 파일의 내용을 읽거나 디렉터리의 내용을 볼 수 있는 권한
  • w (write): 쓰기 권한, 파일의 내용을 변경하거나 디렉터리 내에 새 파일을 생성하거나 삭제할 수 있는 권한

이러한 권한은 소유자(user), 그룹(group), 다른 사용자들(others)에 대해 각각 설정될 수 있습니다.

파일의 기본 권한은 생성한 사용자나 그룹에 따라 다르며, 모든 파일이 기본적으로 'rwx' 권한을 가지는 것은 아닙니다.

 

Linux에서의 User

  • Linux 시스템에서 사용자는 파일 및 리소스에 대한 액세스를 제어하는 주체
  • 각 사용자는 고유한 이름(사용자 이름)을 가지며, 시스템 내부적으로는 사용자 ID (UID)로 식별됩니다.
  • 사용자는 파일이나 프로세스를 소유하고, 파일 및 디렉터리에 대한 권한이 부여됩니다.

 

Linux에서의 Group

  • 사용자의 집합을 나타내며, 이 그룹은 파일 및 디렉터리의 액세스 권한을 관리하는 데 사용
  • 각 그룹은 고유한 이름(그룹 이름)을 가지며, 시스템 내부적으로는 그룹 ID (GID)로 식별됩니다.
  • 사용자는 하나 이상의 그룹에 속할 수 있으며, 그룹에는 여러 사용자가 포함될 수 있습니다.

 

디렉토리 및 파일 권한 변경

파일의 소유자 또는 'root' 사용자는 파일 권한을 변경할 수 있습니다.

1. chmod + 숫자

  • chmod 777 [파일명]:세 그룹에 모든 권한을 부여
  • 각 하나의 요소가 1비트를 나타낸다고 생각
  • 읽기(r): 4 = 2^2
  • 쓰기(w): 2 = 2^1
  • 실행(x): 1 = 2^0
  • 7 = 2^2 + 2^1 + 2^0

2. chmod + 문자

  • chmod (권한을 변경할 그룹) (추가 or 제거 여부) (대상 권한)
  • 권한을 변경할 그룹
    • [u]: user, 소유 사용자
    • [g]: group, 소유 그룹
    • [o]: other, 기타 & 다른 사용자
  • 추가 or 제거 여부
    • [+]: 권한 부여
    • [-]: 권한 제거
  • 대상 권한
    • [r]: read
    • [w]: write
    • [e]: execute
  • 예시
    • chmod u+rwx file.txt: 파일 file.txt에 대해 소유자에게 읽기, 쓰기 및 실행 권한을 부여
    • chmod g-w file.txt: 파일 file.txt에 대해 그룹에게 쓰기 권한을 제거
    • chmod o+x directory: 디렉토리 directory에 대해 기타 사용자에게 실행 권한을 부여
    • chmod 0744 file:
      • 첫 번째 숫자(0): 특수 권한을 나타냅니다. 일반적으로 0을 사용
      • 두 번째 숫자(7): 소유자의 권한을 나타냅니다. 이 숫자는 읽기(r), 쓰기(w), 실행(x) 권한을 나타내는데, 각각 4, 2, 1의 값을 갖습니다. 따라서 7은 읽기, 쓰기, 실행 권한을 모두 부여
      • 세 번째와 네 번째 숫자(4): 그룹 및 다른 사용자의 권한을 나타냅니다. 이 숫자는 소유자의 권한과 동일한 방식으로 해석됩니다. 읽기 권한만 부여

https://eunguru.tistory.com/115

파일이나 디렉터리의 소유자나 그룹을 변경

  • chown(change owner) 사용
  • 파일이나 디렉토리에 대한 권한을 변경하는 것과는 별개의 작업으로 즉, 소유자만을 변경하고 파일의 permission은 변경하지 않습니다. (chmod와의 차이점)
  • chown [options] new_owner:group file(s)
    • new_owner: 새로운 소유자의 사용자 이름 또는 UID (사용자 식별자)입니다.
    • group: 새로운 소유 그룹의 그룹 이름 또는 GID (그룹 식별자)입니다.
    • file(s): 소유권을 변경할 파일이나 디렉토리입니다.
# 사용자 user1이 소유한 파일을 사용자 user2로 변경하고 싶을 때
chown user2 filename

# 그룹 group1에서 group2로 소유자 그룹을 변경하고 싶을 때
chown :group2 filename

 

 

파일의 권한을 변경할 때: chmod

소유자 또는 그룹을 변경할 때: chown

 

# knockon이라는 사용자 생성:
sudo adduser knockon

# 1. knockon 계정으로 shell 실행(로그인 안하고)
#su - 아이디 -c "명령어1; 명령어2; 명령어3"
su - knockon -c "touch not_accessible.txt"

# 2. knockon 계정으로 접속
sudo su - knockon

# knockon 계정으로 파일 만들고 나가기
# touch는 파일의 날짜와 시간을 수정하는 명령어이긴 하지만, 0바이트 파일을 생성하기 위해 자주 사용
# touch 명령은 현재 사용자에 의해 만들어진 파일을 만드는 것 -> 현재 knockon이 사용자니까 knockon 소유
touch not_accessible.txt 
exit

# 파일의 소유자를 guest로 변경
sudo chown guest not_accessible.txt   
# guest 사용자에게만 읽기, 쓰기, 실행 권한을 부여
sudo chmod 700 not_accessible.txt

 

사용자 Shell 바꾸기

  • chsh 명령을 사용하여 사용자의 shell을 변경하면 해당 사용자의 기본 로그인 셸이 변경
  •  쉘(Shell)은 사용자가 컴퓨터와 상호 작용할 수 있는 인터페이스로, 사용자가 명령어를 입력하고 시스템 명령을 실행할 때 사용
    • 각각의 쉘은 다른 기능과 구문을 가짐
    • Bourne Again Shell(/bin/bash), Z Shell(/bin/zsh), C Shell(/bin/csh), Korn Shell(/bin/ksh) 등
  • Ubuntu에서 사용자 생성시 기본적으로 쉘이 /bin/sh로 설정
  • chsh [options] [username]
# knockon 사용자의 쉘을 /bin/bash로 변경
sudo chsh -s /bin/bash knockon
728x90
반응형

'Linux' 카테고리의 다른 글

UFW(Uncomplicated Firewall)  (0) 2024.02.24
VIM과 shell script  (1) 2024.02.24
Ubuntu 운영체제의 패키지  (0) 2024.02.22
Linux 디렉토리 구조  (0) 2024.02.22
"chmod: changing permissions of 'file': Operation not permitted" 오류  (0) 2024.02.22