답변:
"기타"는 누구입니까, 서버의 모든 서비스에 사용자에게 "기타"가 존재하지 않으면 어떻게됩니까? 예를 들어, Apache를 사용자에게 배치하고
/var/www
chowned를로 설정apache
하고 입력chmod 700
하면 제대로 작동합니까?
다음은 권한이 작동하는 방법에 대한 간단한 설명입니다.
첫 번째 숫자 는 파일의 실제 소유자를위한 것입니다 (파일을 소유 한 사람 확인 ls -l
및로 수정 chown
)
두 번째 숫자 는 파일 그룹을위한 것입니다 (파일 소유자가 반드시 파일을 소유 한 동일한 그룹에 있지 않아도 됨)
세 번째 숫자는 의미 다른 사람입니다 하지 아니 그룹의 파일 소유자 모두를.
따라서 chmod
700까지의 파일을 소유하고 파일을 소유 한 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
) 없습니다.
파일 시스템 계층 구조 표준 리눅스 시스템에있는 디렉토리에 대한 사용 목적을 지정합니다. 디렉토리로 수행하려는 작업에 따라 사용 권한이 무엇인지 거의 "추측"할 수 있습니다.
.php
파일은 일반적으로 실행 가능하지 않습니다. 예를 들어, 브라우저를 가리킬 때 단순히 Apache 만 읽습니다. http://example.com/file.php
Apache가 출력을 표시하려면 먼저 PHP 설치로 해석해야하지만 Apache는이를 처리합니다. 당신은 할 수 이론적으로 PHP 파일을 실행하고 스크립트처럼 실행 - 같은 맥락에서 우리가했던 것처럼 test
파일, 그러나 이것은 거의 사용되지 않습니다.
디렉토리에 대해 실행 권한이 다른 효과적인 의미를 갖는 것을 추가하고 싶습니다.
대한 파일 :
의 경우 폴더 :
아니요, 디렉토리에 대한 별도의 삭제 권한이 없습니다.
나는 리눅스 전문가는 아니지만 그럼에도 불구하고 대답하려고합니다.
각 파일 시스템 항목에는 연관된 사용자 및 그룹이 있습니다. 사용자의 권한은 "user"플래그에 의해 처리됩니다. 동일한 그룹에 속하는 사용자의 사용자 권한은 "group"플래그에 의해 처리됩니다. 다른 모든 사용자는 "others"플래그에 의해 처리됩니다.
"읽다"는 그것이 말하는 것을 의미합니다. "실행"은 파일 (예 : 명령)을 시작하거나 디렉토리를 나열 할 수 있음을 의미합니다.
기본 권한과 관련하여 확실하지 않습니다. 어떻게 든 구성 할 수 있으므로 각 사용자마다 다를 수 있습니다.
최소한 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 파일이 아니라 사용자를 대신하여 커널을 수행하는 커널입니다.
다른 모든 것을 제외하려면 까다로울 수 있습니다. 내 / 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) 만 각 파일을 읽거나 쓰거나 실행할 수있는 시스템을 만들 수 있다고 생각하지만 그 시도는 확실하지 않습니다.
실행은 코드를 실행할 수있는 권한입니다. 읽기는보고 만 복사 할 수있는 권한입니다.