유닉스 같은 시스템, 예를 들어 리눅스는 멀티태스킹과 멀티유저를 지원한다는 부분에서 다른 컴퓨터 시스템과 다르다.
이 말이 의미하는 것은
하나 이상의 유저가
같은 시간에
같은 컴퓨터를 쓴다는 것이다.
컴퓨터나 노트북은 오직 하나의 키보드나 모니터가 있음에도 여러명의 사람이 쓸 수 있다는 것이다.
예를들어 컴퓨터가 인터넷에 연결되었을때 외부에 있는 사람이 ssh(보안쉘)을 통해서 로그인 할 수 있고 컴퓨터를 구동 시킬 수 있다.
실제로 외부 사람이 그래픽이 나오는 어플리케이션을 실행하고 외부 컴퓨터에 그 화면을 보여지게 할 수도 있다.
X Window가 이것을 지원했다.
Unix 계열 시스템의 다중 사용자 기능은 운영 체제 설계에 깊이 뿌리내린 기능이다.
유닉스가 만들어진 상황을 안다면 이해가 갈것이다.
개인용 컴퓨터가 만들어지기전 컴퓨터는 매우 크고 비쌌다. 그리고 중앙집중적이였다.
대표적인 대학교 컴퓨터 시스템은 캠퍼스안에 있는 몇몇 빌딩안에서 커다란 메인 프레임 컴퓨터로 구성되어 있었다.
터미널 은 캠퍼스 전체에 위치하며 각각 대형 중앙 컴퓨터에 연결되어 있다. 컴퓨터는 동시에 많은 사용자를 지원합니다.
이를 실용적으로 만들기 위해서는 사용자를 서로로부터 보호할 수 있는 방법을 고안해야 했습니다. 결국 우리는 한 사용자의 작업이 컴퓨터를 충돌시키는 것을 원하지 않으며 한 사용자가 다른 사용자의 파일을 방해하는 것을 허용하지 않습니다.
파일 권한
리눅스 시스템에서는 각각의 파일, 디렉토리에 (소유자, 그룹, 모든 사용자)의 권한이 할당되어있다.
권한에는 파일을
읽고
쓰고
실행
하는 권한이 있다.
파일의 권한 설정을 보자 (ls -l을 통해 볼 수 있다.)

[1] : -
[2] : rw-r--r--
[3] : 1
[4] : jaejunkim
[5] : staff
[6] : 147
[7] : 10 25 12:56
[8] : test. txt
[1] : 종류를 의미한다. 종류에는 {일반 파일(-), 디렉토리(d), 문자 디바이스(c), 링크(i)}가 있다.
[2] : 누가 어떤 접근권한을 가졌는 지를 알려준다. (r : read, w : write, x : execute)
rw-r--r--의 경우
rw- : 소유자는 read, write의 권한을 가짐
r-- : 그룹(staff)는 read의 권한을 가짐
r-- : other, 나머지는 read의 권한을 가짐
☀︎ 번외로 txt 파일들이 소유자가 rw-인 이유는 txt자체를 실행하면 오류가 나기 때문임, shell로는 파일 그 자체를 실행할 수 없음
명령어 + 파일을 해야 출력됨, 커맨드 집합이 아닌 이상 오류가 난다.

[3] : 이 파일에 연결된 하드 수, 예를 들어 이 파일의 바로가기를 가진 하드디스크가 4개이면 1이아니라 4가 표기 되어있었을거임
[4] : 파일의 소유자
[5] : 파일을 소유한 그룹
[6] : 파일의 크기
[7] : 파일의 수정날짜

[8] : 파일의 이름
chmod
chmod 명령어는 파일이나 디렉토리의 권한을 바꾸기위해 사용된다.
권한은 숫자로 표한하면 다음과 같이 변환할 수 있다.

Read의 권한만 있다면 -> 100 = 4
Write의 권한만 있다면 -> 010 = 2
Execute의 권한만 있다면 -> 001 = 1
Read와 Write의 권한이 있다면 -> 110 = 6
Read와 Execute의 권한이 있다면 -> 101 = 5
Read와 Write, Exectue, 모든 권한만 있다면 -> 111 = 7
이진수로 표현된 값을 10진수로 변환하여 사용하는 것이다.
즉 단 하나의 숫자로 읽기, 쓰기 , 실행 어떤 권한을 가지게 할지 정할 수 있다.
✓chmod는 세 부분에 권한을 바꿔준다. 소유자, 그룹, other
예를 들어 test.txt라는 파일이 있다.

해당파일은 소유자, 그룹, other이 모두 읽고, 쓰기, 실행이 가능하다.
우리는 이 파일을
소유자는 읽기, 쓰기 ,실행 가능
그룹은 읽기, 실행 가능
other은 읽기, 쓰기, 실행 모두 불가능
으로 바꾸고 싶다. 즉 관계없는 사람은 접근할 생각도 하지말라는 거다.
chmod 750 test.txt
test.txt파일의 권한을
소유자 : 7, [4:읽기, 2:쓰기, 1:실행]
그룹 : 5, [4:읽기, 1:실행]
other : 0, [아무 권한 없음]

잠시 슈퍼유저 되기(슈퍼유저:관리자)
중요한 시스템 관리 작업을 수행하기 위해 종종 슈퍼유저:관리자가 되어야 하지만, 우리가 알고 있듯이 슈퍼유저로 로그인한 상태를 유지해서는 안 된다. 대부분의 리눅스 배포판에는 슈퍼유저의 권한에 임시로 액세스할 수 있는 명령어가 있다. 이 명령어를 su (substitute user, 대체 사용자의 줄임말)이라고 하며 몇몇 작업에 대해 슈퍼유저:관리자가 필요한 경우에 사용할 수 있습니다. 슈퍼유저가 되려면 su명령을 입력하기만 하면 됩니다. 수퍼유저의 비밀번호를 묻는 메시지가 표시됩니다.
슈퍼유저가 된후
chown명령어로 소유자를 변경했다.

슈퍼유저가 되려면 sudo su혹은 sudo -s로 해야한다.

sudo su로 root로 전환했을 때의 home 디렉터리는 /root이다. 즉, 환경변수를 root 계정의 상태로 전환하는 것이다.
하지만 sudo -s를 사용했을 때의 home 디렉터리는 현재 사용자의 홈 디렉터리이다. 즉, 현재 계정의 환경변수들을 root로 넘기는 것이다.
리눅스 명령어 sudo , su , su -
리눅스는 다중 사용자 시스템(Multi-User System)이다. 즉, 한 대의 OS에 여러 사용자가 접속해서 사용하게된다. 더군다나 개인용 PC보다는 서버용 OS로 많이 사용되기 때문에 권한에 대한 관리가 매우
www.leafcats.com
맥의 chown
https://haloaround.tistory.com/16
맥 터미널 명령어 입문4: 사용자 권한 조회 몇 변경
안녕하세요 이번 포스트는 각종 파일, 폴더의 사용자 권한을 확인, 변경하는 방법을 알아보도록 하겠습니다. 테스트 파일을 두고 한번씩 해보면서 진행하시면 이해하는 데 도움이 됩니다. :) |
haloaround.tistory.com