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): 그룹 및 다른 사용자의 권한을 나타냅니다. 이 숫자는 소유자의 권한과 동일한 방식으로 해석됩니다. 읽기 권한만 부여
파일이나 디렉터리의 소유자나 그룹을 변경
- 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 |