/ var / www의 모든 하위 폴더를 어떻게 chmod 777로 만들 수 있습니까?


54

웹 서버와 FTP 서버를 실행 중 /var/www입니다 /home/user/www.

두 디렉토리를 모두 설정했습니다 chmod 777(테스트 전용이므로 괜찮습니다).

에 파일을 업로드 할 수 /home/user/www있지만 새 디렉토리를 만들 때마다 항상 chmod 777해당 폴더 에서 실행 해야합니다.

그렇지 않으면 탐색하려고 할 때 오류 메시지가 나타납니다.

이 서버에서 / test /에 액세스 할 수있는 권한이 없습니다.

내부의 모든 하위 폴더 /var/www에 누구나 액세스 할 수있는 방법이 있습니까? 또는 권한을 자동으로 설정할 수 777있습니까? chmod 777매번 타이핑해야한다는 것은 성가신 일입니다 .


12
여기에 그대로 두십시오 웹 서버에서 777을 사용하지 마십시오 . 더 좋은 질문은 "777 권한을 사용하지 않고 어떻게 웹 서버를 작동시킬 수 있습니까?"입니다.
Marco Ceppi

12
죄송합니다, 그것은 나쁜 연습이고 나는 이것에 대답하기를 거부합니다 :) 희망 eveyone은 동의합니다 :)
Rinzwind

답변:


89

이것은 나쁜 습관이지만 개발을 위해 이것을 사용하거나 다른 좋은 이유가 있기를 바랍니다. 다음 -m옵션을 사용하여 디렉토리를 작성할 때 권한을 지정할 수 있습니다 .

mkdir -m 777 dirname

또는 권한을 재귀 적으로 설정할 수 있습니다.

sudo chmod -R 777 /var/www

이 중 하나를 사용하기 전에 파일 시스템에 액세스하기 쉽도록 고려하십시오.


편집 : Rinzwind가 언급했듯이 여기에 원하는 것을 성취하는 더 좋은 방법이 있습니다.

/var/www디렉토리를 소유 한 그룹을 확인하고 해당 그룹에 사용자를 추가하십시오.

sudo adduser yourusername group

아마도 그룹 일 것입니다 www-data.

그러면 권한을 775로 설정해도됩니다.


4
이것은 당신이 요구 한 것을 수행하지만이를 먼저 읽으십시오. 왜 / var / www에 chmod 777이 없어야합니까 ? 실제로 권장되지 는 않습니다.
워렌 힐

8
나쁜 습관을 가진 사람들에게 도움을주지 마십시오. 나는 당신이 그것을하는 방법을 설명한다면 선호한다 : 그의 사용자를 www-data 또는 apache 그룹에 추가함으로써;)
Rinzwind

4
교육이 우선입니다. 사람들이 컴퓨터를 망치도록 돕는 것은 리눅스 방식이 아닙니다. 그래서 나는 당신에 강력히 동의하지 않습니다.
Rinzwind 2016 년

2
asker는 이것이 테스트 용이라고 만했다. 개발 측면에 쉽게 액세스 할 수 있기를 원하므로 더 빨리 작업 할 수 있습니다. 나는 그에게 프로덕션 서버로 이것을 할만 큼 어리석지 않다는 의심의 이익을 줄 것입니다.
Dan

1
@ dan08 홈 디렉토리 사용을 포함하여 테스트하는 더 좋은 방법이 있습니다. askubuntu.com/questions/46331/…kimbriggs.com/computers/computer-notes/linux-notes/…를 참조하십시오 . 이러한 목표를 달성 할 수있는 안전한 방법이 있습니다.)
Panther

7

Unix의 파일과 디렉토리에는 읽기 ( r), 쓰기 ( w) 및 실행 ( x)의 세 가지 유형의 권한이있을 수 있습니다 . 각 권한이있을 수 있습니다 on또는 off사용자의 세 가지 범주의 각 : 파일이나 디렉토리 소유자; 소유자와 같은 그룹의 다른 사람들; 그리고 다른 모든. 파일 모드를 변경하려면 chmod 명령을 사용하십시오. 일반적인 형태는 chmod X @ Y file1 file2 ...

chmod a-w file (removes all writing permissions)
chmod o+x file (sets execute permissions for other (public permissions))
chmod u=rx file        (Give the owner rx permissions, not w)
chmod go-rwx file      (Deny rwx permission for group, others)
chmod g+w file         (Give write permission to the group)
chmod a+x file1 file2  (Give execute permission to everybody)
chmod g+rx,o+x file    (OK to combine like this with a comma)

u = user that owns the file
g = group that owns the file
o = other (everyone else)
a = all (everybody)

r = read aces to the file
w = write access
x = execute (run) access 


3

공공 서비스 발표 :


chmod 777을 사용하여 문제를 해결하지 마십시오


  • 대중이 이용할 수있는 서비스, 특히 웹 응용 프로그램 (예 : PHP)을 실행하면 큰 보안 위험이 있습니다.

    OS의 보안 모델에서는 파일을 수정할 수 없도록 많은 서비스 (예 : 웹 서버)가 제한된 권한으로 실행된다고 가정합니다. 파일에 777을 설정하면이 디자인이 손상됩니다.

    원격 사용자는 파일에 쓰거나 파일을 업로드 한 다음 서버 (또는 시스템의 다른 프로세스)가 파일을 읽거나 실행하도록 속일 수 있습니다. 스크립트 나 소프트웨어에는이를 허용하는 결함이있을 수 있습니다. 세계적으로 쓸 수있는 디렉토리가있는 경우 발생할 수있는 모든 방법을 잠그는 것은 매우 어렵습니다.

  • 특정 시스템 디렉토리 (/ usr, / etc, / var 등)에서 사용하면 놀라운 방식으로 시스템이 손상 될 수 있습니다.

    일부 필수 시스템 파일을 실행하려면 setuid / setgid 권한과 같은 특수 권한이 ​​필요합니다. 예를 들어, sudo. 시스템 자체에서 설정 한 디렉토리 및 파일에 대한 파일 권한을 변경하지 마십시오.

  • 실행 취소하고 이전 권한을 모두 되돌릴 수있는 방법이 없습니다.

    즉, 이전에 다양한 권한을 가진 파일과 폴더가있는 경우 특정 권한으로 되돌아 갈 수있는 방법이 없습니다. 모든 파일을 동일한 항목으로 변경하면 특정 파일에 필요한 특정 권한 설정이 손실 될 수 있습니다.

  • 달성하고자하는 것을 달성하는 데 더 적절한 방법이 항상 있습니다.

이 경우 웹 서버가 디렉토리 를 읽을 수만있는 것처럼 보입니다 . 쓰기 가능한 세계 권한을 부여하는 것이 필요한 것 이상입니다.

웹 서버가 해당 디렉토리를 읽을 수없는 이유를 추적하십시오 (힌트 : 아마도 홈 디렉토리를 세계적으로 읽을 수 없기 때문일 수 있습니다. 세계 판독은 세계 기록 가능보다 훨씬 안전합니다. 홈 디렉토리를 755와 같이 설정하십시오. 또는 www 디렉토리를 집 밖에서 / var / www 또는 / srv와 같은 곳으로 이동하십시오).


0

이것은 나에게 작동하지 않습니다.

sudo chmod -f 777 /path/to/your/file/or/directory

나는 -f또한 사용해야 합니다.

sudo chmod -R -f 777 /path/to/your/file/or/directory

0

만족스러운 다른 파일에서 권한 및 소유권을 복사하려면 sudo chmod --reference = path / to / file / to / reference path / to / file / you / want / 에 / 변경 / permissino /에

파일 소유권에 대해서도 동일한 작업을 수행 할 수 있습니다.

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