리눅스 파일 권한은 어떻게 작동합니까?
Linux를 오랫동안 (심지어 OS X에서도) 사용했다면 "권한"오류가 발생했을 것입니다. 그러나 정확히 무엇이며 왜 필요하거나 유용합니까? 내부 모습을 살펴 보겠습니다..
사용자 권한
컴퓨터는 엄청나게 비쌌습니다. 그들을 최대한 활용하기 위해 여러 대의 컴퓨터 단말기가 연결되어 많은 사용자가 동시에 업무를 수행 할 수있었습니다. 데이터 처리 및 저장은 기계에서 수행되었지만 터미널 자체는 데이터를보고 입력하는 수단이었습니다. 생각해 보면 "클라우드"에서 데이터에 액세스하는 방법은 거의 다릅니다. Amazon의 Cloud MP3 시스템, Gmail 및 Dropbox를 살펴보면 로컬에서 변경이 가능하지만 모든 것이 원격으로 저장된다는 것을 알 수 있습니다.
(이미지 : Zenith Z-19 "멍청한"단말기, 신용 : ajmexico)
이 작업을 수행하려면 개별 사용자가 계정을 가지고 있어야합니다. 그들은 할당 된 저장 영역의 섹션을 가질 필요가 있으며 명령과 프로그램을 실행할 수 있어야합니다. 모든 사용자는 수행 할 수있는 작업과 수행 할 수없는 작업, 액세스 할 수없는 작업, 수정할 수없는 파일을 지정하는 특정 "사용자 권한"을 갖습니다. 각 사용자는 다양한 그룹에 배치되어 추가 액세스를 허용하거나 제한합니다..
파일 액세스
이 이상한 다중 사용자 환경에서 우리는 이미 사용자가 할 수있는 것에 대한 경계를 설정했습니다. 하지만 그들이 액세스하는 것은 무엇입니까? 모든 파일에는 권한 집합과 소유자가 있습니다. 일반적으로 파일을 만들 때 바인드 된 소유자 지정은 해당 사용자가 속한 사용자를 선언하고 해당 사용자 만 액세스 권한을 변경할 수 있습니다.
Linux의 세계에서 사용 권한은 읽기, 쓰기 및 실행의 세 가지 범주로 나뉩니다. "읽기"액세스는 파일의 내용을 볼 수있게하고, "쓰기"액세스는 파일의 내용을 수정할 수있게하며, "실행"은 스크립트 나 프로그램과 같은 명령어 세트를 실행할 수있게합니다. 이러한 각 범주는 사용자, 그룹 및 세계와 같은 다른 클래스에 적용됩니다. "사용자"는 소유자를, "그룹"은 소유자와 동일한 그룹에있는 사용자를 의미하며 "세계"는 누군가와 모든 사람을 의미합니다.
이러한 사용 권한으로 폴더를 제한 할 수도 있습니다. 예를 들어, 그룹의 다른 사용자가 홈 폴더의 디렉토리와 파일을 볼 수는 있지만 그룹 외부의 사람은 볼 수 없습니다. 어떤 종류의 공유 프로젝트에서 작업하는 경우가 아니라면 "write"액세스를 자신에게만 제한하고 싶을 것입니다. 누구나 해당 폴더의 파일을보고 수정할 수있는 공유 디렉토리를 만들 수도 있습니다.
우분투에서 권한 변경하기
GUI
Ubuntu에서 소유하고있는 파일의 권한을 변경하려면 파일을 마우스 오른쪽 버튼으로 클릭하고 "Properties"로 이동하십시오.
소유자, 그룹 또는 기타 사용자가 읽기 / 쓰기, 읽기 전용 또는 아무 작업도 수행 할 수 있는지 여부를 변경할 수 있습니다. 확인란을 선택하여 파일의 실행을 허용 할 수 있으며 소유자, 그룹 및 기타 사용자를 동시에 활성화 할 수 있습니다.
명령 줄
명령 줄을 통해서도이 작업을 수행 할 수 있습니다. 파일이있는 디렉토리로 이동하여 다음 명령을 입력하여 목록의 모든 파일을 봅니다.
LSA
각 파일 및 디렉토리 옆에는 권한이 요약 된 특수 섹션이 있습니다. 다음과 같이 보입니다.
-rwxrw-r-
그만큼 아르 자형 "읽기"를 의미합니다. w "쓰기"를 의미하며 엑스 디렉토리는 "실행"을 의미합니다. 디렉토리는 "-"대신 "d"로 시작합니다. 또한 가치가있는 10 개의 공백이 있음을 알 수 있습니다. 첫 번째 세트는 소유자 용이고 두 번째 세트는 그룹 용이고 마지막 세트는 세계 용입니다.
파일이나 디렉토리의 권한을 변경하려면 chmod 명령의 기본 형식을 살펴 보겠습니다..
chmod [클래스] [연산자] [권한] 파일
chmod [ugoa] [+ 또는 -] [rwx] 파일
이것은 처음에는 복잡해 보일지 모르지만, 나를 믿어도 꽤 쉽습니다. 먼저 클래스를 살펴 보겠습니다.
- u : 이것은 소유자를위한 것입니다..
- g : 이것은 그룹을위한 것입니다..
- O : 이것은 다른 모든 사람들을위한 것입니다..
- a : 위의 모든 항목에 대한 권한이 변경됩니다..
다음으로, 연산자 :
- +: 더하기 기호는 뒤 따르는 권한을 추가합니다..
- -: 빼기 기호는 따르는 권한을 제거합니다..
아직도 나와 함꼐? 마지막 섹션은 파일의 사용 권한을 확인할 때와 동일합니다.
- r : 읽기 액세스 허용.
- w : 쓰기 액세스 허용.
- x : 실행을 허용합니다..
자, 함께합시다. 다음과 같은 권한을 가진 "todo.txt"라는 파일이 있다고 가정 해 보겠습니다.
-rw-rw-r-
즉, 소유자와 그룹은 읽고 쓸 수 있으며 세계는 읽을 수만 있습니다. 사용 권한을 다음과 같이 변경하려고합니다.
-rwxr-
즉, 소유자는 모든 권한을 가지고 있으며 그룹은 읽을 수 있습니다. 우리는 3 단계로이 작업을 수행 할 수 있습니다. 먼저 사용자에 대한 실행 권한을 추가합니다..
chmod u + x todo.txt
그런 다음 그룹에 대한 쓰기 권한을 제거합니다..
chmod g-w todo.txt
마지막으로 다른 모든 사용자의 읽기 권한을 제거합니다..
chmod o-r todo.txt
다음과 같이 하나의 명령으로 결합 할 수도 있습니다.
chmod u + x, g-w, o-r todo.txt
각 섹션은 쉼표로 구분되며 공백이 없음을 볼 수 있습니다..
다음은 몇 가지 유용한 권한입니다.
- -rwxr-xr-x : 소유자는 전체 권한을 가지며 그룹 및 다른 사용자는 파일 내용을 읽고 실행할 수 있습니다..
- -rwxr-r- : 소유자는 전체 권한을 가지고 있으며 그룹 및 다른 사용자는 파일을 읽을 수만 있습니다 (다른 사용자가 파일을 보는 것을 꺼리는 경우 유용합니다.).
- -rwx- : 소유자는 모든 권한을 가지고 있고 다른 모든 사람은 없음 (개인 스크립트에 유용함).
- -rw-rw-- : 소유자와 그룹이 읽고 쓸 수 있습니다 (그룹 구성원과의 공동 작업에 유용함).
- -rw-r-r- : 소유자는 읽기 및 쓰기가 가능하며 그룹 및 다른 사용자는 파일 만 읽을 수 있습니다 (공유 네트워크에 개인 파일을 저장하는 데 유용함).
- -rw-- : 소유자는 읽기 및 쓰기가 가능하고 다른 모든 것은 없음 (개인 파일 저장에 유용함).
setuid와 setgid와 같이 chmod로 할 수있는 몇 가지 다른 것들이 있습니다. 그러나 그것들은 좀 더 심층적 인 것이어서 대부분의 사용자들은 어쨌든 그것을 사용할 필요가 없을 것입니다.
루트 또는 수퍼 유저 및 시스템 파일
요즘에는 항상 여러 사용자가있는 시스템을 실행하지 않습니다. 왜 우리는 여전히 허가에 대해 걱정해야 하는가??
유닉스와 그 유도체 인 리눅스, OS X는 사용자가 실행하는 것들, 관리자 나 관리자 권한으로 실행되는 것들, 시스템 자체가 실행하는 것들을 구별합니다. 따라서 시스템에 필수적인 사항은 변경하거나 액세스 할 수있는 관리 권한이 필요합니다. 이렇게하면 우연히 어떤 것도 엉망이되지 않게됩니다..
우분투에서는 시스템 파일을 변경하기 위해 "sudo"또는 "gksudo"를 사용하여 관리자 권한과 동일한 권한을 얻습니다. 다른 배포판에서는 로그 아웃 할 때까지 효과적으로 동일한 작업을 수행하는 "root"또는 "super-user"로 전환합니다.
이러한 두 가지 상황에서 파일 사용 권한을 변경하면 프로그램이 작동하지 않고 의도하지 않게 파일 소유권이 루트 사용자 (소유자가 아닌)로 변경되고 시스템이 안전하지 않게됩니다 (사용 권한을 더 부여함으로써). 따라서 필요하지 않거나 수행중인 내용을 알지 않는 한 파일 (특히 시스템 파일)에 대한 사용 권한을 변경하지 않는 것이 좋습니다.
사용자들에게 기본 보안 시스템을 제공하기위한 파일 권한이 있습니다. 어떻게 작동하는지 배우면 다중 사용자 환경에서 기본 공유를 설정하고 "공개"파일을 보호하며 시스템 파일 소유권에 문제가 생길 때를 알 수 있습니다..
더 쉽게 설명 할 수 있다고 생각하십니까? 정정 해? 옛날을 회상하고 싶습니까? 휴식을 취하고 의견에 의견을 말하십시오..