기술나눔

Linux 권한에 대한 심층 분석 - 원칙 탐색

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

서문: 이 섹션에서는 주로 Linux 권한과 관련된 내용을 설명합니다. 루트 계정을 사용하면 Linux 권한을 느낄 수 없으므로 이 섹션의 관련 내용을 알아보고 몇 가지 실험적인 테스트를 수행하려면 일반 계정을 사용해야 합니다. 그러면 리눅스 권한에 대한 연구를 통해 왜 파일을 운영할 때 왜 항상 권한이 거부되는지 알 수 있고, 루트 디렉터리의 파일 권한과 일반 사용자의 홈 디렉터리에 있는 파일 권한의 차이를 알 수 있습니다.

ps: 이 섹션은 Linux를 배우고 일부 Linux 명령을 알고 있는 친구에게 적합합니다.

사용자 분류

//먼저 Linux에서 사용자 분류를 알아 보겠습니다.

  • 뿌리:슈퍼유저, 관리자
  • 일반 사용자: 즉, 우리가 만든 일부 사용자입니다. (addusr의 일반 사용자)

이 두 사용자의 근본적인 차이점은 루트 사용자는 권한으로 제한되지 않는 반면 일반 사용자는 권한으로 제한된다는 것입니다.

//수

일반 사용자는 루트 사용자로 전환할 수 있고, 루트 사용자도 일반 사용자로 전환할 수 있습니다.

일반 사용자에서 루트 사용자로 전환:

첫 번째 - su + 루트 비밀번호. 루트 사용자로 전환할 수 있습니다. 이때 전환하면 전환 후에도 사용자의 위치는 변경되지 않습니다.

두 번째 유형 - su- + 루트 비밀번호입니다. 또한 루트 사용자로 전환하십시오. 이때 전환하면 전환 이후의 사용자 위치가 루트 자신의 홈 디렉터리가 됩니다.

위의 두 가지 상황에서 전환한 후 cral + d를 사용하여 다시 전환할 수 있습니다.

루트 사용자를 일반 사용자로 전환 - 루트 사용자를 일반 사용자로 전환하는 경우 비밀번호가 필요하지 않으며 직접 전환할 수 있습니다.

일반 사용자가 일반 사용자로 전환됩니다.

일반 사용자가 일반 사용자로 전환하는 방법에는 일반적으로 두 가지가 있습니다.

첫 번째 - 일반 사용자의 비밀번호가 있는 경우 su + user + 사용자의 비밀번호를 사용하여 ID를 전환할 수 있습니다.

두 번째 유형 - 먼저 루트 사용자로 전환한 후(위의 전환 방법 참조) 루트 ID를 통해 지정된 사용자로 직접 전환합니다.

cral + d를 사용하여 의식 정체성 전환으로 다시 전환할 수 있습니다.

명령 권한 상승 : 명령을 실행하면 루트 사용자로 전환할 수 없고 명령 중 하나의 권한만 에스컬레이션합니다. 이때 sudu + command + 현재 사용자의 비밀번호를 사용합니다. 친구들은 여기에 질문이 있을 수 있습니다. 특정 명령의 권한을 승격하기 위해 루트 비밀번호 대신 자신의 비밀번호를 입력해야 하는 이유는 무엇입니까? 이는 이 명령 권한 상승이 조건부이기 때문입니다. 즉, 사용자가 시스템의 화이트리스트에 추가된 경우에만 명령 권한 상승이 수행될 수 있습니다. 화이트리스트에 추가되지 않으면 권한 상승 명령은 쓸모가 없습니다.

허가란 무엇인가

영어로 허가는 어떤 일을 할 수 있는지 여부를 나타냅니다.

사용자의 신원은 소유자, 그룹, 기타로 구분됩니다.

다음 일련의 명령줄을 살펴보겠습니다.

여기서 첫 번째 _mian_yang은 처음에는 파일의 소유자를 나타내고, 두 번째 _mian_yang은 파일이 속한 그룹을 나타냅니다. 즉, 이 파일의 소유자는 _mian_yang이고, _mian_yang은 소유자의 ID입니다. 사용자가 _mian_yang 그룹에 속한 경우 해당 그룹의 ID입니다. 사용자가 둘 다인 경우 _mian_yang도 아니고 _mian_yang이 속한 그룹에도 없습니다. 그러면 이 사용자는 다른 사람의 신원입니다.

그래서 장산이라는 교장이 있으면 장산은 자기 교장실로 가고 싶어 한다. 그래서 장삼이 교장실에 갈 수 있는 것이 장삼이기 때문에 갈 수 있는지, 아니면 교장이기 때문에 갈 수 있는지 묻고 싶습니다. 여기서 분명한 이유는 자신이 교장이기 때문에 자신의 교장실로 갈 수 있기 때문이다. 그렇다면 우리 파일의 경우, 우리가 이 사용자이기 때문에 이 파일에 액세스할 수 있습니까? 아니면 사용자 신원 때문인가요? 정답은 아이덴티티입니다. 즉, 권한 인증은 신원이다.

두 번째 질문, 우리 모두는 휴대폰에 동영상 시청, 정보 확인, 게임 등 많은 기능이 있다는 것을 알고 있습니다. 이는 휴대폰이 갖고 있는 속성이라고 볼 수 있다. 하지만 배가 고프면 더 이상 배고프지 않게 하기 위해 휴대폰을 먹을 수는 없습니다. 음식으로 사용할 수 있다는 점은 휴대폰에는 없는 특성이다. 그러므로 우리가 무엇을 하든, 최고 권위를 가진 사람이라 할지라도 휴대폰이 음식이 되는 것을 허락할 수는 없습니다. 두 번째 점을 알 수 있습니다. 즉, 권한은 사물의 속성과도 관련이 있다는 것입니다.

//ID와 사용자의 관계

세 가지 유형의 권한에 대해 설명한 후 이전 사용자 분류를 기반으로 권한과 사용자 분류 간의 관계를 살펴보겠습니다.

우선, 일반 사용자의 경우, 이 일반 사용자는 파일의 소유자일 수도 있고, 파일이 속한 그룹일 수도 있고, 다른 사람일 수도 있습니다.

루트 사용자의 경우 루트 사용자는 파일의 소유자, 파일이 속한 그룹 또는 다른 사람일 수 있습니다.

그렇다면 어떻게 나타나는가? 즉, Linux는 이 사용자의 신원을 어떻게 확인합니까? 이 사진을 보자:

녹색 및 주황색 상자의 경우 녹색 상자가 소유자이고 주황색 상자가 속한 그룹입니다. 따라서 로그인한 사용자가 파일에 액세스할 때 먼저 자신이 파일의 소유자인지 확인해야 합니다. 그렇지 않은 경우 자신이 파일이 속한 그룹인지 확인해야 합니다. 그렇지 않다면 다른 사람입니다.

//파일 권한

계속해서 이 사진을 보세요. 이 사진의 안쪽 분홍색 상자는 각 ID의 권한입니다. 녹색 가로 막대는 소유자 권한, 주황색 가로 막대는 그룹 권한, 파란색 가로 막대는 다른 사람의 권한입니다. 그 중 각 ID에는 rwx 세 가지 권한이 있으며 이 세 가지 권한은 그룹이며 이 세 가지 권한의 위치가 결정됩니다. 첫 번째 위치는 읽기용, 두 번째 위치는 쓰기용, 세 번째 위치는 실행용입니다. 이 세 위치는 순서가 어긋나지 않으며 각 위치의 의미가 결정됩니다. 그리고 각 위치에는 예 또는 아니요만 있고 지정된 권한이 있습니다.

여기서 생각해 보세요. 그룹에 속하려면 권한이 왜 필요한가요?

Zhang San과 Li Si가 면접을 위해 회사에 입사했고 마침내 같은 회사의 인턴이 된 후 각각 A 그룹과 B 그룹에 배정되었다고 가정해 보겠습니다. 게다가 Zhang San은 그룹 A에 있고 Li Si는 그룹 B에 속해 있습니다. 이제 회사는 이 두 그룹이 동시에 소프트웨어를 개발할 수 있도록 허용합니다. 어느 날 Zhang San은 매우 강력한 코드를 작성하여 보고 싶었지만 Zhang San은 Li Si가 그것을 보는 것을 원하지 않았습니다. 그러나 어느 날 리더는 장산이 작성한 코드를 보고 싶어한다. 그러나 장산이 코드 읽기 권한을 해제하면 리시가 이를 볼 수 있기 때문에 그가 속한 그룹이 이에 역할을 하게 된다. 시간. 이 리더를 이 그룹에 속하게 하여 나도 이 프로그램을 볼 수 있고 리더도 볼 수 있지만 다른 사람들은 볼 수 없습니다.

권한 수정

권한을 수정할 수 있는 사람은 두 명뿐입니다. 한 명은 소유자이고 다른 한 명은 루트입니다.

방법: chmod u + rwx 소유자가 변경한 권한을 수정하고 소유자에게 권한을 추가합니다(r 읽기 권한, w 쓰기 권한, x 실행 권한)

chmod u-rwx는 소유자의 권한을 수정하고 소유자로부터 해당 권한을 뺍니다.

chmod g+rwx는 자신이 속한 그룹의 권한을 수정하고 자신이 속한 그룹에 권한을 추가합니다.

chmod g-rwx는 자신이 속한 그룹의 권한을 수정하고 자신이 속한 그룹에 권한을 추가합니다.

다른 사람의 권한을 수정하고 다른 사람에게 권한을 추가하려면 chmod g-rwx

다른 사람의 권한을 수정하고 다른 사람에게 권한을 추가하려면 chmod g-rwx

chmod u+rwx 및 g+rwx를 사용하여 여러 ID에 권한을 부여할 수도 있습니다. 즉, 해당 ID가 속한 그룹 및 소유자에 권한을 추가하고 권한을 빼는 것은 그 반대입니다.

예를 들어 모든 ID에 한 번에 권한을 추가하려면 chmod a+rwx를 사용하고, 권한을 빼려면 그 반대가 적용됩니다.

또한 권한을 변경하는 것 외에도 파일의 소유자와 그룹을 변경할 수도 있습니다.

파일 소유자 변경: 자신의 파일을 다른 사람에게 제공하고 소유자를 변경하려면 사용자 파일을 chown합니다.

파일이 속한 그룹을 변경합니다: chgrp 사용자 파일이 속한 그룹을 변경합니다.

위의 두 가지 지침에는 해당 사용자의 동의가 필요합니다. 일반적으로 두 가지 방법이 있습니다. 하나는 권한을 에스컬레이션하는 것이고, 다른 하나는 오프라인으로 통신하는 것입니다.

권한의 경우 ll을 사용하여 표시되는 모든 위치의 권한이 결정되므로 1을 사용하여 위치에 권한이 있음을 나타내고 0을 사용하여 해당 위치에 권한이 없음을 나타낼 수 있습니다. 따라서 111과 110을 사용하여 ID의 권한을 나타낼 수 있습니다. 예를 들어 111은 읽기, 쓰기 및 실행을 의미합니다. 111은 7이므로 3개의 신원은 777과 같이 3개의 8진수로 표현될 수 있습니다.

따라서 chmod 777과 같이 권한을 수정할 수 있습니다. 이는 모든 ID에 모든 권한을 부여한다는 의미입니다.

이제 예를 살펴보겠습니다.

이제 _mian_yang 사용자의 소유자 상태에는 읽기 권한이 있지만 쓰기 권한은 없습니다. 그의 그룹 ID에는 읽기 권한과 쓰기 권한이 있습니다.

그러면 이때 _mian_yang이 이 파일에 쓸 수 있나요?

대답은 '아니오'입니다. 사용자가 자신의 신원을 인증할 때 하나의 신원만 인증할 수 있기 때문입니다. 먼저 소유자를 인증한 다음 자신이 속한 그룹을 인증하고 마지막으로 다른 신원을 인증합니다.

우마스크

파일을 생성할 때 권한이 왜 이렇게 보일까요?

우선 우리가 알아야 할 것은 그림의 권한은 파일에 의해 생성된 최종 권한이라는 것입니다. 실제로는 시작 권한도 있습니다. 디렉터리 파일의 기본 시작 권한은 777이고 일반 파일의 기본 권한은 777입니다. 666. 그런데 최종 생성된 권한이 디렉터리 파일의 경우 775이고 일반 파일의 경우 664인 이유는 무엇입니까?

이는 기본적으로 시스템에 umask(권한 마스크)가 있기 때문입니다. 권한 마스크는 umask에 나타나는 모든 권한이 최종 권한에 나타나지 않음을 의미합니다. 여기서 계산 규칙은 기본 권한 - 권한 마스크가 아니라 최종 권한 = 기본 권한 & (~ 권한 마스크)입니다.

동시에 권한 마스크를 특정 숫자로 수정하는 umask 번호와 같이 umask도 수정할 수 있습니다.

디렉토리 읽기 및 쓰기의 의미

디렉터리 읽기: 현재 디렉터리에 있는 파일의 내용을 볼 수 있습니다.

디렉토리 쓰기: 파일을 생성, 삭제 및 변경할 수 있습니다.

실행 가능한 디렉터리: 해당 디렉터리에 들어갈 수 있는지 여부입니다.

끈끈한 비트

실제로는 다음과 같은 요구 사항이 있을 수 있습니다. 데이터를 공유하고 싶지만 홈 디렉터리 아래에 디렉터리를 생성하면 다른 사용자가 들어갈 수 없습니다. 따라서 이 디렉터리는 루트 디렉터리 아래에만 생성할 수 있지만 루트 디렉터리의 기본 권한은 dr-xr-xr-x입니다. 즉, 세 가지 ID는 읽기 및 실행만 가능하고 임의로 디렉터리를 만들 수 없다는 의미입니다. 따라서 디렉터리를 생성하려면 루트 계정을 사용해야 합니다.

이 파일을 생성한 후 이 파일을 읽고, 쓰고, 실행하도록 다른 ID를 설정할 수 있습니다. 그렇지 않으면 공유할 수 없습니다. 그러나 사용자가 그 안에 파일을 생성하면 디렉토리에 쓰기 권한이 있으므로 다른 사람이 마음대로 파일을 삭제할 수 있습니다. 그래서 이때 이 파일을 보호하기 위해 스티키비트 동작을 추가했습니다. 이 고정 비트의 작동으로 인해 사용자가 만든 파일은 사용자 자신이나 루트만 삭제할 수 있습니다.

따라서 고정 비트는 디렉터리(일반적으로 공유 디렉터리)에 대해 특별히 설정된 권한입니다. 누구나 디렉터리에 있는 파일을 추가, 삭제, 확인 및 수정할 수 있지만 파일을 삭제할 수 있는 것은 소유자와 루트뿐입니다. 할 수 있다.

------------------

이 섹션이 전부입니다.

내 메모는 다음과 같습니다.