돌진 및 사용자 권한


10

내 사용자가 아파치 그룹의 구성원이라는 것을 알았습니다. 다음을 통해 추가하고 확인했습니다.

$ sudo usermod -a -G apache `whoami`  # add my user to apache group
$ sudo chmod -R g+w .                 # permit group members to write 
$ groups `whoami`                     # confirm I'm in the apache group

그러나 drush 업데이트 코어 또는 drush cron을 실행하려고 할 때

$ drush cc all

unlink(sites/default/files/css/css_71ba7c25a8d3c47c68a8e05608ae525c.css):[warning]
Permission denied file.inc:482

여기에 이미지 설명을 입력하십시오

이 상황에서 CSS 캐시는

$ ll
total 1536
drwxrwxr-x.  2 apache apache  12288 Nov 26 10:12 .
drwxrwxr-x. 11 apache apache   4096 Nov 24 20:35 ..
-rw-rw-r--   1 apache apache 162269 Nov 26 10:06 css_00d5f4d7c5c92cd4f.css
-rw-rw-r--   1 apache apache 158090 Nov 26 10:02 css_0605989692a2119d305.css
-rw-rw-r--   1 apache apache 162269 Nov 26 10:02 css_0779dcac71ee9aa8e02d9e.css

여기에 이미지 설명을 입력하십시오

sudo 액세스 권한이있는 내 사용자 계정이 아파치 (또는 www-data)의 그룹 구성원이어야하고 파일 트리가 그룹 쓰기 액세스를 허용해야한다고 가정합니다. 올바른 방향의 도움이나 요점은 대단히 감사하겠습니다.


2
newgrp apachesudo없이 실행 하고 다시 시도
Hamid Nikmehr

2
로그 아웃했다가 다시 로그인 했습니까?
mpdonadio

답변:


13

아마도 훨씬 더 직접적인 접근 방식은 사용자의 그룹 할당을 전혀 다루지 않고 웹 서버 사용자 (예 : apache, www-data)로 서두르는 것입니다.

sudo를 사용하십시오 :

sudo -u apache drush

또는 데비안 / 우분투에서 :

sudo -u www-data drush

명령 별명을 작성하십시오.

그런 다음 항상 drush를 실행하여 별명을 추가하십시오.

echo "alias drush='sudo -u apache drush'" >> ~/.bash_aliases 

또는 데비안 / 우분투에서 :

echo "alias drush='sudo -u www-data drush'" >> ~/.bash_aliases 

이제 drush 명령을 실행할 때 sudo에 의해 암호를 묻는 메시지가 표시되고 웹 서버 사용자로 명령이 실행됩니다. 파일을 읽고 쓰는 데 더 이상 권한이 없습니다.


1
"sudo -u www-data drush"를 실행하면 drush-backups 디렉토리가 쓰기 가능하지 않다고 불평합니다.
Magmatic

1
@Magmatic은 해당 폴더에 대한 권한을 변경하고 www-data에 쓸 수 있도록 만들고 소유자를 확인합니다.
Beto Aveiga

3

다른 답변은 유익하지만 이제는 설명에 따라 적절한 사용자 권한을 사용합니다.

파일 권한 및 소유권 보안

어느 것으로 시작

서버 파일 시스템은 웹 서버 (예 : Apache)가 파일을 편집하거나 쓸 수있는 권한이 없도록 구성해야합니다. 즉, 모든 파일은 Apache 프로세스에 대해 '읽기 전용'이어야하며 별도의 사용자가 쓰기 권한을 가지고 있어야합니다.


3
링크 된 기사에 Drush는 언급되어 있지 않습니다. Drush 명령을 실행하는 데 사용중인 사용자와 해당 사용자는 어떻게 설정되어 있는지 설명하십시오.
JW.

2
흥미 롭습니다! 나는 당신이 이미 인용 한 것을 따르는 2 개의 퍼그를 언급해야한다고 생각합니다.
Pierre.Vriens

1
Drupal 파일 폴더에서 웹 서버는 폴더를 쓸 수 있어야하며, 개발시 기능 폴더에 대해서도 폴더가 필요할 것입니다.
Beto Aveiga

1

$ PATH가 변경 되어 www-datadrush를 더 이상 사용할 수 없어서 drush를 실행할 때 .

이 문제를 해결하기 위해 전체 경로를 입력하여 돌진 할 수 있습니다.

예 :

sudo -u www-data /home/vagrant/.composer/vendor/bin/drush status

당신의 돌진의 경로를 얻으려면 다음을 실행할 수 있습니다 :

which drush

즉, 다음을 실행할 수도 있습니다.

sudo -u www-data `which drush` status

명령에서 경로를 하드 코딩 할 필요가 없습니다.

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