우리 중 얼마나 많은 사람들이 특정 디렉토리 / 폴더에 포함 된 파일에 대한 "액세스를 제한"할 필요가 있었습니까? 아니면 단순히 일부 사람들이 특정 파일의 내용을보고, 삭제하거나 수정하지 못하도록 막아야합니까? 둘 이상 맞죠? 우리가 사랑하는 펭귄에게서 그것을 이룰 수 있습니까? 정답은: 물론 예 : D.
소개
Windows에서 온 많은 사람들은이 "문제"를 매우 다른 방식으로 처리하는 데 익숙했습니다.이 목표를 달성하려면 파일 속성을 통해 파일을 숨기고 이동하는 것과 같은 비 정통적인 "기술"에 의존해야했습니다. 우리 팀의 가장 먼 곳 (20,000 만 폴더 이내)에 정보를 전송하여 "적"XD를 설득하거나 파일 확장자를 변경하거나 제거하거나 가장 "일반적인"관행을 " 접근을위한 암호를 묻는 멋진 대화 상자 뒤의 디렉토리를 닫으십시오. 훨씬 더 나은 대안이 있었나요? 아니.
내 "Windoleros"친구들에게 매우 미안합니다 (아무도 화를 내지 않도록 큰 애정을 담아 말합니다. 알 겠지요?;))하지만 오늘은 Windows : P에 대해 조금만 가르쳐야합니다.이 OS가 허용하지 않는 이유를 설명하겠습니다. 기본이 기능.
"Windows"컴퓨터 뒤에 앉아있을 때 (우리 컴퓨터가 아니더라도) 자동으로 컴퓨터에 포함 된 모든 것 (이미지, 문서, 프로그램 등)의 소유자가된다는 사실을 알고 계신 분은 몇 분입니까? 무슨 말이야? 글쎄요, 단순히 "Windows의 제어"를 취함으로써 우리는이 정보의 "소유자"인지 여부에 관계없이 폴더와 파일을 좌우로 복사, 이동, 삭제, 생성, 열거 나 수정할 수 있습니다. 이것은 운영 체제 보안의 주요 결함을 반영합니다. 음, 이것은 Microsoft의 운영 체제가 처음부터 다중 사용자로 설계되지 않았기 때문입니다. MS-DOS 버전과 일부 Windows 버전이 출시되었을 때, 그들은 최종 사용자가 자신의 컴퓨터를 "보호"하여 다른 사용자가 그 안에 저장된 정보에 액세스 할 수 없도록 할 책임이 있다고 전적으로 신뢰했습니다. ¬. 이제 WinUsers 친구 여러분,이 "미스터리"가있는 이유를 이미 알고 계십니다. D.
반면에 GNU / Linux는 네트워킹을 위해 기본적으로 설계된 시스템이므로 많은 사용자가 액세스 할 수 있거나 액세스 할 수 있기 때문에 컴퓨터에 저장하는 정보 (서버는 말할 것도 없음)의 보안이 기본입니다. 이러한 컴퓨터에서 관리되는 소프트웨어 리소스 (응용 프로그램 및 정보 모두) 및 하드웨어의 일부입니다.
이제 허가 시스템이 필요한 이유를 알 수 있습니다. 주제에 대해 자세히 살펴 보겠습니다.).
GNU / Linux에서 사용자가 포함 된 특정 파일에 대해 가질 수있는 권한 또는 권한은 명확하게 구분 된 세 가지 수준으로 설정됩니다. 이 세 가지 수준은 다음과 같습니다.
<° 소유자의 허가.
<° 그룹 권한.
<° 나머지 사용자 (또는 "기타"라고도 함)의 권한.
이러한 개념을 명확히하기 위해 네트워크 시스템 (예 : 펭귄)에는 항상 관리자, 수퍼 유저 또는 루트의 모습이 있습니다. 이 관리자는 사용자를 생성 및 제거하고 각 사용자가 시스템에서 가질 권한을 설정하는 일을 담당합니다. 이러한 권한은 각 사용자의 홈 디렉토리와 관리자가 사용자가 액세스 할 수 있다고 결정한 디렉토리 및 파일 모두에 대해 설정됩니다.
소유자 권한
소유자는 작업 디렉토리 (HOME) 또는 권한이있는 다른 디렉토리 내에서 파일 / 폴더를 생성하거나 생성하는 사용자입니다. 각 사용자는 기본적으로 자신의 작업 디렉토리 내에서 원하는 파일을 만들 수 있습니다. 원칙적으로, 그만이 자신의 HOME 디렉토리에있는 파일과 디렉토리에 포함 된 정보에 액세스 할 수있는 사람입니다.
그룹 권한
가장 일반적인 것은 각 사용자가 작업 그룹에 속한다는 것입니다. 이러한 방식으로 그룹이 관리되면 그 그룹에 속한 모든 사용자가 관리됩니다. 즉, 각 사용자에게 개별적으로 권한을 할당하는 것보다 시스템에서 특정 권한이 부여 된 그룹에 여러 사용자를 통합하는 것이 더 쉽습니다.
나머지 사용자의 권한
마지막으로 모든 디렉토리에 포함 된 파일의 권한은 해당 파일이 통합 된 작업 그룹에 속하지 않는 다른 사용자에게도있을 수 있습니다. 즉, 파일이있는 작업 그룹에는 속하지 않지만 다른 작업 그룹에는 속한 사용자를 다른 시스템 사용자라고합니다.
아주 좋지만이 모든 것을 어떻게 식별 할 수 있습니까? 간단하고 터미널을 열고 다음을 수행하십시오.
$ ls -l
참고 : 소문자 "L"입니다
다음과 같이 나타납니다.
보시다시피이 명령은 내 HOME의 내용을 표시하거나 "나열"합니다. 우리가 다루는 것은 빨간색과 녹색 선입니다. 빨간색 상자는 소유자가 누구인지를 나타내고 녹색 상자는 이전에 나열된 각 파일 및 폴더가 속한 그룹을 나타냅니다. 이 경우 소유자와 그룹을 모두 "페르세우스"라고하지만 "sales"와 같은 다른 그룹을 만났을 수 있습니다. 나머지는 지금은 걱정하지 마십시오. 나중에 살펴 보겠습니다. D.
GNU / Linux의 권한 유형
GNU / Linux에서 권한이 설정되는 방법을 배우기 전에 시스템이 가질 수있는 다른 유형의 파일을 어떻게 구별 할 수 있는지 알아야합니다.
GNU / Linux의 각 파일은 10 개의 문자로 식별되며 마스크. 이 10 개의 문자 중 첫 번째 (왼쪽에서 오른쪽으로)는 파일 유형을 나타냅니다. 다음 9는 왼쪽에서 오른쪽으로, 3 개의 블록으로 각각 소유자, 그룹 및 나머지 또는 다른 사람에게 부여 된 권한을 나타냅니다. 이 모든 것을 보여주는 스크린 샷 :
파일의 첫 번째 문자는 다음과 같습니다.
| 실례합니다 | 식별 |
| - | 아카이브 |
| d | 디렉토리 |
| b | 특수 블록 파일 (장치 특수 파일) |
| c | 특수 문자 파일 (tty 장치, 프린터 ...) |
| l | 링크 파일 또는 링크 (소프트 / 심볼릭 링크) |
| p | 채널 특수 파일 (파이프 또는 파이프) |
다음 XNUMX자는 시스템 사용자에게 부여 된 권한입니다. 세 문자마다 소유자, 그룹 및 기타 사용자 권한이 참조됩니다.
이러한 권한을 정의하는 문자는 다음과 같습니다.
| 실례합니다 | 식별 |
| - | 허락없이 |
| r | 읽기 권한 |
| w | 쓰기 권한 |
| x | 실행 권한 |
파일 권한
<° 읽기 : 기본적으로 파일의 내용을 볼 수 있습니다.
<° 쓰기 : 파일 내용을 수정합니다.
<° 실행 : 파일이 실행 프로그램 인 것처럼 실행되도록합니다.
디렉토리 권한
<° 읽기 :이 권한이있는 디렉토리에 포함 된 파일과 디렉토리를 알 수 있습니다.
<° 쓰기 : 일반 파일 또는 새 디렉터리의 파일을 디렉터리에 만들 수 있습니다. 디렉토리 삭제, 파일 복사, 이동, 이름 변경 등이 가능합니다.
<° 실행 : 디렉토리를 탐색하여 내용을 검사하고 파일을 복사 할 수 있습니다. 또한 읽기 및 쓰기 권한이있는 경우 파일 및 디렉토리에서 가능한 모든 작업을 수행 할 수 있습니다.
참고 : 실행 권한이 없으면이 작업이 거부되므로 해당 디렉터리에 액세스 할 수 없습니다 ( "cd"명령을 사용하더라도). 또한 경로의 일부로 디렉토리 사용을 구분할 수 있습니다 (참조로 해당 디렉토리에있는 파일의 경로를 전달할 때처럼). "폴더에있는"X.ogg "파일을 복사한다고 가정합니다. / home / perseo / Z "-폴더"Z "에 실행 권한이없는 경우-, 다음을 수행합니다.
$ cp /home/perseo/Z/X.ogg /home/perseo/Y/
이렇게하면 파일에 액세스 할 수있는 권한이 없다는 오류 메시지가 나타납니다. D). 디렉토리의 실행 권한이 비활성화 된 경우 해당 내용을 볼 수 있지만 (읽기 권한이있는 경우)이 디렉토리는 필요한 경로의 일부이므로 여기에 포함 된 개체에 액세스 할 수 없습니다. 물체의 위치를 해결합니다.
GNU / Linux에서 권한 관리
지금까지 GNU / Linux에서 어떤 권한이 수행되는지 살펴 보았습니다. 아래에서는 권한 또는 권한을 할당하거나 빼는 방법을 살펴 보겠습니다.
시작하기 전에 시스템에 사용자를 등록하거나 생성 할 때 자동으로 권한을 부여한다는 점을 명심해야합니다. 물론 이러한 권한은 전체가 아닙니다. 즉, 사용자는 일반적으로 수퍼 유저와 동일한 권한 및 권한을 갖지 않습니다. 사용자가 생성되면 시스템은 기본적으로 파일 관리 및 디렉토리 관리를위한 사용자 권한을 생성합니다. 당연히 관리자가 수정할 수 있지만 시스템은 각 사용자가 자신의 디렉토리, 파일 및 다른 사용자의 디렉토리와 파일에서 수행 할 대부분의 작업에 대해 다소 유효한 권한을 생성합니다. 일반적으로 다음과 같은 권한이 있습니다.
<° 파일 : - rw-r-- r--
<° 디렉토리 : - rwx rwx rwx
참고 : 모든 GNU / Linux 배포판에 대해 동일한 권한이 아닙니다.
이러한 권한을 통해 파일 생성, 복사 및 삭제, 새 디렉토리 생성 등을 할 수 있습니다. 이 모든 것을 실제로 봅시다 : D :
"고급 CSS.pdf"파일을 예로 들어 보겠습니다. 다음과 같이 나타나는지 살펴 보겠습니다. -르르-르--r-- … 고급 CSS.pdf. 자세히 살펴 보겠습니다.
| 억센 | 사용자 | 그룹 | 나머지 사용자 (기타) | 파일 이름 |
| - | rw- | r-- | r-- | 고급 CSS.pdf |
이것은 다음을 의미합니다.
<° 유형 : 아카이브
<° 사용자는 다음을 수행 할 수 있습니다. 파일을 읽고 (컨텐츠보기) 쓰기 (수정)합니다.
<° 사용자가 속한 그룹은 다음을 수행 할 수 있습니다. 파일 읽기 (전용).
<° 다른 사용자는 다음을 수행 할 수 있습니다. 파일 읽기 (전용).
ls -l로 얻은 목록의 다른 필드가 무엇을 가리키는 지 궁금한 사람들을 위해 여기에 답이 있습니다.
하드 및 소프트 / 심볼릭 링크에 대해 더 알고 싶다면 여기에 대한 설명과 해당 링크가 있습니다. diferencias.
친구들, 우리는 문제의 주제에서 가장 흥미롭고 무거운 부분에 왔습니다 ...
권한 할당
명령 chmod를 ( "모드 변경")은 마스크를 수정하여 파일 또는 디렉토리에서 더 많거나 적은 작업을 수행 할 수 있도록합니다. 즉, chmod를 사용하여 각 사용자 유형에 대한 권한을 제거하거나 제거 할 수 있습니다. 권한을 제거, 추가 또는 할당하려는 사용자 유형이 지정되지 않은 경우 작업을 수행 할 때 발생하는 일은 모든 사용자에게 동시에 영향을주는 것입니다.
기억해야 할 기본 사항은 다음 수준에서 권한을 부여하거나 제거한다는 것입니다.
| 매개 변수 | Nivel | 기술 |
| u | 소유자 | 파일 또는 디렉토리의 소유자 |
| g | 그룹 | 파일이 속한 그룹 |
| o | 다른 사람들 | 소유자 또는 그룹이 아닌 다른 모든 사용자 |
권한 유형 :
| 실례합니다 | 식별 |
| r | 읽기 권한 |
| w | 쓰기 권한 |
| x | 실행 권한 |
소유자에게 실행 권한을 부여하십시오.
$ chmod u+x komodo.sh
모든 사용자의 실행 권한을 제거합니다.
$ chmod -x komodo.sh
다른 사용자에게 읽기 및 쓰기 권한을 부여하십시오.
$ chmod o+r+w komodo.sh
파일이 속한 그룹에 읽기 권한 만 남겨 둡니다.
$ chmod g+r-w-x komodo.sh
XNUMX 진수 형식의 권한
많은 사용자에게 "더 편한"chmod 명령을 사용하는 또 다른 방법이 있습니다. 비록 사전에 ¬¬를 이해하는 것이 다소 복잡하지만.
각 사용자 그룹의 값 조합은 20 진수를 형성합니다. "x"비트는 1 (21), w 비트는 2 (22), r 비트는 4 (XNUMX)입니다.
<° r = 4
<° w = 2
<° x = 1
각 그룹에서 비트를 켜거나 끄면 XNUMX 개의 가능한 값 조합, 즉 켜진 비트의 합이 제공됩니다.
| 실례합니다 | XNUMX 진수 값 | 기술 |
| - - - | 0 | 당신은 권한이 없습니다 |
| - - x | 1 | 실행 권한 만 |
| -w- | 2 | 쓰기 권한 만 |
| -wx | 3 | 쓰기 및 실행 권한 |
| r - - | 4 | 읽기 권한 만 |
| r - x | 5 | 읽기 및 실행 권한 |
| rw- | 6 | 읽기 및 쓰기 권한 |
| rwx | 7 | 모든 권한 설정, 읽기, 쓰기 및 실행 |
사용자, 그룹 및 기타 권한이 결합되면 파일 또는 디렉토리 권한을 구성하는 XNUMX 자리 숫자를 얻게됩니다. 예 :
| 실례합니다 | 용기 | 기술 |
| rw- --- -- | 600 | 소유자에게 읽기 및 쓰기 권한이 있습니다. |
| rwx--x--x | 711 | 소유자는 읽고, 쓰고, 실행하고, 그룹 및 기타는 실행 만합니다. |
| rwx rx rx | 755 | 읽기, 쓰기 및 실행 소유자, 그룹 및 기타 사용자가 파일을 읽고 실행할 수 있습니다. |
| rwx rwx rwx | 777 | 누구나 파일을 읽고, 쓰고, 실행할 수 있습니다. |
| r-- --- -- | 400 | 소유자 만 파일을 읽을 수 있지만 파일을 수정하거나 실행할 수 없으며 그룹이나 다른 사람이 파일에서 아무것도 할 수 없습니다. |
| rw-r-- --- | 640 | 소유자 사용자는 읽고 쓸 수 있고 그룹은 파일을 읽을 수 있으며 다른 사용자는 아무것도 할 수 없습니다. |
특별 권한
고려해야 할 다른 유형의 허가가 있습니다. 이들은 SUID (사용자 ID 설정) 권한 비트, SGID (그룹 ID 설정) 권한 비트 및 고정 비트 (고정 비트)입니다.
setuid
setuid 비트는 실행 파일에 할당 할 수 있으며 사용자가 해당 파일을 실행할 때 프로세스가 실행 된 파일 소유자의 권한을 얻도록합니다. setuid 비트가있는 실행 파일의 가장 명확한 예는 다음과 같습니다.
$ su
다음 캡처에서 비트가 "s"로 할당 된 것을 볼 수 있습니다.
이 비트를 파일에 할당하려면 다음과 같습니다.
$ chmod u+s /bin/su
그리고 그것을 제거하려면 :
$ chmod u-s /bin/su
참고 : 이 비트는 시스템에서 권한 상승을 유발할 수 있으므로 매우주의해서 사용해야합니다.
설정
setid 비트를 사용하면 파일에 할당 된 그룹의 권한을 얻을 수 있으며 디렉토리에도 할당 할 수 있습니다. 이것은 같은 그룹의 여러 사용자가 같은 디렉토리 내의 리소스로 작업해야 할 때 매우 유용합니다.
이 비트를 할당하기 위해 다음을 수행합니다.
$ chmod g+s /carpeta_compartida
그리고 그것을 제거하려면 :
$ chmod g-s /carpeta_compartida
끈적끈적한
이 비트는 일반적으로 모든 사용자가 액세스 할 수있는 디렉토리에 할당되며, 모든 사용자가 쓰기 권한을 가지고 있기 때문에 사용자가 해당 디렉토리 내에서 다른 사용자의 파일 / 디렉토리를 삭제하지 못하도록합니다.
다음 캡처에서 비트가 "t"로 할당 된 것을 볼 수 있습니다.
이 비트를 할당하기 위해 다음을 수행합니다.
$ chmod o+t /tmp
그리고 그것을 제거하려면 :
$ chmod o-t /tmp
친구 여러분, 이제 정보를 더 잘 보호 할 수있는 방법을 알게되었습니다. 이에 대한 대안을 찾지 않기를 바랍니다. 폴더 잠금 o 폴더 가드 GNU / Linux에서는 XD가 전혀 필요하지 않습니다.
추신: 이 특정 기사는 친구의 사촌의 이웃 XD가 요청한 것입니다. 귀하의 질문에 답변이 되었기를 바랍니다...