Linux의 모든 사용자에게 폴더에 대한 쓰기 액세스 권한을 부여하려면 어떻게해야합니까?


191

지금 우분투에 apache2를 설치했으며 / var / www 폴더가 보호되어 있음을 알았습니다. 나는 sudo모든 것을 할 수 있지만 오히려 쓰기 권한을 부여하고 싶습니다.

어떻게해야합니까?

시도 sudo chmod 7777 /var/www했지만 작동하지 않았습니다.


이 서버는 공개적으로 액세스 가능한 서버입니까, 아니면 인터넷에 직접 연결되어 있지 않습니까? 전자의 경우 보안 결정을 고려하는 것이 중요합니다. 인터넷 서버는 지속적으로 공격을받습니다 (/ var / log / messages 또는 이와 동등한 것을 살펴보십시오).
kwutchak

이것은 내 노트북 ​​일 뿐이며 인터넷에서 액세스 할 수 없습니다.
카슨 마이어스

답변:


321

에 쓸 수 있어야하는 여러 사용자와 공유하기 /var/www위해 공통 그룹을 할당해야합니다. 예를 들어 Ubuntu 및 Debian의 웹 컨텐츠에 대한 기본 그룹은 www-data입니다. 쓰기 권한이 필요한 모든 사용자 /var/www가이 그룹에 있는지 확인하십시오 .

sudo usermod -a -G www-data <some_user>

그런 다음 / var / www에 올바른 권한을 설정하십시오.

sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www

또한 아래에 생성 된 모든 파일과 디렉토리 /var/wwwwww-data그룹 이 소유 하도록 디렉토리와 그 아래의 모든 디렉토리를 "GID 설정"으로 만들어야 합니다 .

sudo find /var/www -type d -exec chmod 2775 {} \;    

모든 파일을 찾고 /var/www소유자 및 그룹에 대한 읽기 및 쓰기 권한을 추가하십시오.

sudo find /var/www -type f -exec chmod ug+rw {} \;

자신의 계정에 대한 권한을 편집하는 경우 변경을 수행하려면 로그 아웃했다가 다시 로그인해야 할 수도 있습니다.


2
그것은 매우 지루합니다 ... 다른 폴더 인 것처럼 사용자에게 액세스 권한을 부여 할 수는 없습니까?
카슨 마이어스

9
입니다 당신이 그것을 액세스 권한을 부여하는 방법. GUI 파일 관리자의 대화 상자를 탐색하여 동일한 작업을 수행하는 것보다 명령을 복사하여 붙여 넣는 것이 더 빠릅니다. 장기적으로 chmod 및 chgrp에 대한 매뉴얼 페이지를 읽는 경우 도움이됩니다 ( "man chmod").
jtimberman

처음 읽을 때 명령을 이해하지 못했을 수 있으며 편집 내용이 훨씬 명확합니다.
카슨 마이어스

1
아파치 권한을 강제 실행하는 guid의 경우 +1 쓰기 액세스가 필요한 경우 chmod g + w dir /
LiraNuna

1
왜 그룹 권한 명령입니다 sudo chmod -R g+w하지 g+rw또는 g+rwX?
detly

31

이를 수행하는 더 간단한 방법이 있습니다.이 명령을 수행하십시오.

sudo chmod -R 757 /var/www

기본적 chmod으로이 명령은 권한을 변경하고 -R스위치는 모든 사용자에게 영향을줍니다. 그런 다음 사용하기에 올바른 권한을 부여합니다.


3
OP에 대한 명령의 기능에 대한 통찰력을 줄 수 있습니까?
n0pe

11
설명이 없으면 -1입니다. 게다가, chmod $permissions -R $file유효하지 않습니다…
Blacklight Shining

1
그것은 옵션이 아닌 다른 방법으로 권한입니다
Moataz Elmasry

2
sudo chmod -R 757 /var/www
Bwyss

누군가 경험이 있다면 이것에 대한 간단한 설명으로 편집을 제안하십시오.
Adi Prasetyo

29

읽기 + 쓰기 :

sudo chmod -R a+rw /var/www

읽기 + 쓰기 + 실행 :

sudo chmod -R a+rwx /var/www

7

액세스 제어 목록을 사용하여 jtimberman이 제안한 내용을 복제 할 수도 있습니다 . setfacl 명령 명령은 기존의 ACL을 대체하거나 수정 -m에 -s를 받아 들인다; 디렉토리 ACL을 재귀 적으로 만들기위한 -R; 지정된 설정을 기본값으로 설정하려면 -d를 사용하면 다음 사용자 계정을 예상 할 때 유용합니다.

chmod를 사용하여 사용자, 그룹, 기타 및 마스크에 대한 권한을 설정합니다.

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

그리고 이것은 지정된 사용자 또는 그 / 그녀의 그룹에 대한 방법 일 수 있습니다 :

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

물론 강점은 그룹 설정을 수정하지 않고도 특정 사용자, 여러 사용자 등을 지정할 수 있다는 것입니다. chmod와 달리 일부 그룹이 한 디렉토리에 액세스하고 다른 그룹이 다른 디렉토리에만 액세스하도록하려면 실제로 setfacl을 사용하면 가능합니다. 마지막으로 디렉토리의 ACL을 보려면 getfacl을 실행하십시오 .

getfacl DIRECTORY

하위 디렉토리의 ACL을 보려면 -R을 지정하고 기본값을 보려면 -d를 지정할 수 있습니다.


2

빠르고 쉬운 답변 -

에이. 사용자 ( user_name )를 그룹 ( -G ) www-data에 추가 ( -a )하십시오 .

sudo usermod -a -G www-data user_name

비. 그룹 ( g )에게 / var / www 의 소유 사용자 ( u ) 와 동일한 권한 ( = )을 재귀 적으로 ( -R ) 부여하십시오.

sudo chmod -R g=u /var/www

설명 : Debian / Ubuntu의 Apache 2는 User & Group www-data/ var / www 의 소유자로 설정합니다 . 사용자의 기본 권한은 "컨텐츠보기 및 수정"이지만 그룹은 "컨텐츠보기"만 할 수 있습니다. 따라서 www-data Group에 자신을 추가하고 wwww-data User와 동일한 권한을 부여하면 빠르고 쉽게 개발할 수 있습니다. 모든 로컬 호스트 (PC / Laptop) 웹 개발 환경에서이 작업을 수행합니다.


1

나는 일반적으로 사용

chmod g+w /folder/ -R

거의 자기 설명입니다.

그것은 모든 사람을 추가 g의 roup /folder/해야하는 w(의식 액세스 +w) -R하위 폴더에 대한 재귀입니다.


-3

당신은 그냥 시도 할 수 있습니까 chmod 0777 /var/www?

경고 : 모든 사람이이 폴더에 액세스하도록 허용하면 해커가 시스템에 액세스 할 수있는 경우이 폴더에 액세스 할 수 있습니다. 따라서 허용 가능한 사용자 그룹을 만들고 해당 그룹에 쓰기 권한을 부여하는 것이 좋습니다.


그렇다면 왜 이것을 솔루션으로 제공 한 다음 즉시 불신해야합니까? -1 투표
Tisch

-3

먼저 특정 폴더 경로를 입력 한 다음이 명령을 사용하여…

chmod -R 777 foldername
chown username:username foldername 

7
와, 나쁘다! 777에 -R을 부여하지 마십시오. 특히 질문하는 사람이 초보자이고 위험을 이해하지 못하는 경우에 특히 그렇습니다.
34 초

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