Linux 권한에서 "기타"는 누구이며 "실행"은 무엇을 의미합니까?


13

이 세 가지 질문에 대한 답을 찾을 수 없었습니다.

  • "기타"는 누구입니까, 서버의 모든 서비스에 사용자에게 "기타"가 존재하지 않으면 어떻게됩니까? 예를 들어, Apache를 사용자에게 배치하고 /var/wwwchowned를로 설정 apache하고 입력 chmod 700하면 제대로 작동합니까?

  • "실행"과 "읽기"의 차이점은 무엇입니까?

  • 새로 설치 한 후 전체 시스템에 대한 기본 파일 권한은 무엇입니까 (예 : Ubuntu)?

답변:


16

"기타"는 누구입니까, 서버의 모든 서비스에 사용자에게 "기타"가 존재하지 않으면 어떻게됩니까? 예를 들어, Apache를 사용자에게 배치하고 /var/wwwchowned를로 설정 apache하고 입력 chmod 700하면 제대로 작동합니까?

다음은 권한이 작동하는 방법에 대한 간단한 설명입니다.

  • 번째 숫자 는 파일의 실제 소유자를위한 것입니다 (파일을 소유 한 사람 확인 ls -l및로 수정 chown)

  • 번째 숫자 는 파일 그룹을위한 것입니다 (파일 소유자가 반드시 파일을 소유 한 동일한 그룹에 있지 않아도 됨)

  • 세 번째 숫자는 의미 다른 사람입니다 하지 아니 그룹의 파일 소유자 모두를.

따라서 chmod700까지의 파일을 소유하고 파일을 소유 한 apache경우 "일반"사용자조차도 파일 을 읽거나 쓰거나 실행할 수 없습니다. 이는 매우 제한적이며 드문 경우에만 필요합니다. 예를 들어 SSH 개인 키를 보호하려는 경우 600권한 을 얻습니다 . Apache의 경우 일반 사용자 계정으로는 /var/www더 이상 파일을 편집 할 수 없다는 사실 외에 다른 문제가 발생할 수도 있습니다 .

따라서 일반적으로 x00다른 사람에 대한 읽기 권한 ( ) 을 제거 할 필요가 없습니다 .

디렉토리를 apache소유 할 수는 /var/www있지만 644다른 사용자에게는 읽기 전용 일 수 있습니다. 내가 자주 사용하는 또 다른 방법은 자신의 사용자 Apache 사용자를 새 www-users그룹에 추가 한 다음 파일을에 chmodding /var/www하는 것 775입니다. 이런 식으로, 당신과 아파치 모두 파일에 쓸 수 있습니다. 자세한 내용은 여기를 참조하십시오 : 아파치에 대한 그룹 권한


"실행"과 "읽기"의 차이점은 무엇입니까?

실행 파일은 사용자가 직접 쉘에서 직접 실행할 수 있습니다. 이를 설명하기 위해 짧은 파일을 작성하고 "test"라고합니다. 다음 내용을 추가하십시오.

echo "I am executable"

파일을 저장하십시오. 이제 쉘에서을 입력하십시오 ./test. " -bash : ./test : Permission denied "오류가 발생합니다. 기본적으로 새로 만든 파일에는 실행 권한이 없기 때문입니다. 실행 권한을 추가하면 작동합니다.

$ chmod +x test
$ ./test
I am executable

자,이 그냥 테스트 스크립트,하지만 당신이 실제로 할 수 있습니다 일반적으로, (컴파일 된 프로그램과 같은) 모든 바이너리 파일은, 실행 권한 세트를 필요로 실행 하고 그들과 함께 뭔가를, 그리고 읽습니다.

이들은 예를 들어 대부분의 시스템 프로그램에서 찾을 수 있습니다 /bin. ls -l /bin권한을 검사하기 위해 실행 합니다. 보다시피,이 소유하고 있으며 root변경할 수는 없지만 언제든지 실행할 수 있습니다.

따라서 일부 사용자에 대해 특정 스크립트 및 이진 파일의 실행을 제한 할 수 있기 때문에 이것은 다소 보안 기능이기도합니다.

Unix 권한에 대한 자세한 내용은 Wikipedia 기사를 참조하십시오 . "읽기-쓰기-실행"으로 알려진 기본 권한은 오랫동안 사용되어 왔지만 액세스 제어 목록 (Access Control Lists)의 일부일뿐입니다. 이보다 훨씬 더 많은 기능을 제공합니다.


새로 설치 한 후 전체 시스템에 대한 기본 파일 권한은 무엇입니까 (예 : Ubuntu)?

디렉토리와 소유자에 따라 다릅니다. 일부 파일 및 디렉토리는 시스템이 예약하고 소유합니다 root. 그럼에도 불구하고 대부분의 경우 일반 사용자 계정으로 읽을 수 있습니다.

홈 폴더와 같은 다른 디렉토리는 분명히 사용자의 것입니다. 여러 사람이 공유하는 경우 컴퓨터의 다른 사용자에 대한 읽기 권한을 거부하는 것이 합리적 일 수 있습니다.

마지막으로 일부 파일은 기본적으로 실행 가능 /bin하지만 (예 :에서 ) 다른 파일은 (예 : 구성 파일 /etc) 없습니다.

파일 시스템 계층 구조 표준 리눅스 시스템에있는 디렉토리에 대한 사용 목적을 지정합니다. 디렉토리로 수행하려는 작업에 따라 사용 권한이 무엇인지 거의 "추측"할 수 있습니다.


정말 당신이 정말 많이 도와 주셔서 감사합니다! "파일"과 "실행 가능"사이의 선이 어디에 있습니까? 예를 들어 Apache가 PHP 파일을 실행하거나 읽을 수 있습니까? 다시 한 번 감사드립니다!
randomKek

.php파일은 일반적으로 실행 가능하지 않습니다. 예를 들어, 브라우저를 가리킬 때 단순히 Apache 만 읽습니다. http://example.com/file.phpApache가 출력을 표시하려면 먼저 PHP 설치로 해석해야하지만 Apache는이를 처리합니다. 당신은 할 수 이론적으로 PHP 파일을 실행하고 스크립트처럼 실행 - 같은 맥락에서 우리가했던 것처럼 test파일, 그러나 이것은 거의 사용되지 않습니다.
slhck

5

디렉토리에 대해 실행 권한이 다른 효과적인 의미를 갖는 것을 추가하고 싶습니다.

대한 파일 :

  • 읽기 : 파일 내용을 읽을 수있는 경우
  • 쓰기 : 사용자 또는 프로세스가 파일에 쓸 수있는 경우 (내용 변경)
  • 실행 : 파일을 실행할 수있는 경우

의 경우 폴더 :

  • 읽기 : 디렉토리 목록을 얻을 수있는 경우
  • 쓰기 : 사용자 또는 프로세스가 디렉토리 내용을 어떻게 든 변경할 수있는 경우 디렉토리에서 새 파일을 작성하거나 기존 파일을 삭제하거나 파일 이름을 바꾸십시오.
  • 실행 : 사용자 또는 프로세스가 디렉토리에 액세스 할 수있는 경우 해당 디렉토리로 이동하십시오 (현재 작업 디렉토리가되도록하십시오).

아니요, 디렉토리에 대한 별도의 삭제 권한이 없습니다.

(이 정보를 여기에서 얻으 십시오 .)


0

나는 리눅스 전문가는 아니지만 그럼에도 불구하고 대답하려고합니다.

각 파일 시스템 항목에는 연관된 사용자 및 그룹이 있습니다. 사용자의 권한은 "user"플래그에 의해 처리됩니다. 동일한 그룹에 속하는 사용자의 사용자 권한은 "group"플래그에 의해 처리됩니다. 다른 모든 사용자는 "others"플래그에 의해 처리됩니다.

"읽다"는 그것이 말하는 것을 의미합니다. "실행"은 파일 (예 : 명령)을 시작하거나 디렉토리를 나열 할 수 있음을 의미합니다.

기본 권한과 관련하여 확실하지 않습니다. 어떻게 든 구성 할 수 있으므로 각 사용자마다 다를 수 있습니다.


0

최소한 2 번 문제에 대한 적절한 답변을 제공하기 위해 할 수 있거나 할 수없는 것을 보여주는 요약표는 다음과 같습니다.

+--------------------------------------------------+
| Execute Yes (./file.sh) | Read Yes (vim file.sh) |
|--------------------------------------------------|
| Execute Yes (./file.sh) | Read No (ERROR)        |
|--------------------------------------------------|
| Execute No (ERROR)      | Read Yes (vim file.sh) |
|--------------------------------------------------|
| Execute No (ERROR)      | Read No (ERROR)        |
+--------------------------------------------------+

기억해야 할 것은 파일을 실행하기 위해 파일을 메모리로 읽는 USER 파일이 아니라 사용자를 대신하여 커널을 수행하는 커널입니다.


0

다른 모든 것을 제외하려면 까다로울 수 있습니다. 내 / etc / passwd 파일에서이 목록을 확인하십시오 (권한 및 명확성을 위해 제거되지 않은 항목).

루트 데몬 빈 시스템 동기화 게임 남자 lp 메일 뉴스 uucp 프록시 www- 데이터 백업 목록 irc gnats libuuid syslog messagebus usbmux haldaemon nobody

{이것은 나입니다. 그리고 아래에 제가 설치 한 것들이 무엇보다도 시스템과 함께 제공됩니다}

아바 히 mysql 펄스 rtkit saned timidity didiwiki

예를 들어 lp 또는 uucp에서 권한을 제거하면 인쇄가 중단됩니다. bin, sys 또는 daemon에서 권한을 제거하면 많은 것들이 깨질 것입니다. irc, 게임, 메일, 뉴스 및 백업은 브라우저가 아닌 시스템을 통해 사용하지 않는 한 안전하게 제거 될 수 있습니다. 나머지는 검색 엔진 기술에 맡깁니다.

이것은 우분투 / 보드 히 리눅스이며 다른 시스템에는 엑스트라가 적을 수 있습니다. 그러나이 모든 것들은 모든 것을 루트로 실행하는 것을 막아야합니다. 시스템 사용자 중 한 명 (bar root) 만 각 파일을 읽거나 쓰거나 실행할 수있는 시스템을 만들 수 있다고 생각하지만 그 시도는 확실하지 않습니다.

실행은 코드를 실행할 수있는 권한입니다. 읽기는보고 만 복사 할 수있는 권한입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.