Apache 사용자의 umask 설정
LAMP 서버를 설정 중이며 Apache의 umask 설정을 002로 설정하여 모든 Apache 생성 파일이 그룹 쓰기 권한 비트 세트를 갖도록 설정하고 싶습니다 (동일한 그룹의 구성원이 파일을 덮어 쓸 수 있음).
누구든지 이것을하는 방법을 알고 있습니까? Ubuntu에서는 / etc / apache2 / envvars 파일을 사용하여 umask를 구성 할 수 있지만 서버는 CentOS를 실행하고 있습니다.
업데이트이 질문은 내가 얼마 전에 요청한 다른 질문 ( LAMP 서버의 Linux 사용자 및 그룹 )과 관련이 있습니다. 원하는 경우 아파치 사용자가 만든 파일을 편집 할 수있는 서버에 개발자 사용자를 두는 데 가장 적합한 설정이 무엇인지이 다른 질문을 업데이트하십시오.
Apache는 umask
부모 프로세스 (즉, Apache를 시작하는 프로세스)에서 상속합니다 . 일반적으로 /etc/init.d/
스크립트 여야합니다 . 따라서 umask
해당 스크립트에 명령을 입력하십시오 .
CentOS 및 기타 Red Hat 배포판의 경우 umask 설정을 / etc / sysconfig / httpd에 추가하고 아파치를 다시 시작합니다.
[root ~] $ echo "umask 002">> / etc / sysconfig / httpd [root ~] $ service httpd restart
추가 정보 : Apache2 umask | MDLog : / sysadmin
Debian 및 Ubuntu 시스템의 경우 유사하게 /etc/apache2/envvars
.
이것은 "CentOS 7 apache umask"에 대한 Google 검색 결과의 첫 번째 결과 였으므로 CentOS 7에서이 작업을 수행하기 위해 필요한 작업을 공유하겠습니다.
CentOS 7에서는 echo "umask 002" >> /etc/sysconfig/httpd
-method가 작동하지 않았습니다.
폴더를 만들어 systemd 시작 파일을 덮어 썼고 거기 에 다음 줄로 umask.conf/etc/systemd/system/httpd.service.d
파일을 만들었습니다 .
[Service]
UMask=0007
부팅되었고 그것은 나를 위해 일했습니다.
에 umask
명령 을 추가하는 /etc/apache2/envvars
것은 파일 이름 (변수 언급 만 해당)뿐만 아니라 해당 파일에서 찾은 다음 주석을 기반으로하기 때문에 나에게 좋은 생각이 아닌 것 같습니다.
# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
이것은 /etc/apache2/envvars
Apache 관련 작업을 수행하는 모든 스크립트에서 제공 될 수 있으며 해당 스크립트 (미리 알려지지 않음)의 umask를 변경하는 것은 다소 위험합니다.
반면에, 경우에 의해 생성 된 파일의 사용 권한을 편안 아파치 목표의 umask를 변경의 아이디어는 mod_dav
, 당신은 것을 고려해야한다 DAV를 저장소는 아파치에 개인 간주됩니다 해당 파일이 발생할 수 있습니다 접근시키는 다른 프로세스 (다양한 isses 포함 부패) .
Luoti / Spider Man for CentOS7의 답변에 추가 : 변경 후 "부팅"하는 대신 다음 명령을 사용할 수 있습니다.
systemctl daemon-reload
service httpd restart
Debian에서 Apache 용 umask를 설정하는 또 다른 위치는 / etc / default / apache2입니다. 이 파일의 끝에있는 다음 줄 : umask 0002
당신이 수 하고 싶은 대신 그룹 스티키 비트 (설정하는 것입니다 SetGID
귀하의 CGI가 작업 디렉토리에) 비트를 :
chgrp mygroup dir chmod g+s dir
있는지 확인 하십시오 당신이 것을이 작업을 수행 할 때 (사용자) 아파치가있는 mygroup
그룹 (에서 /etc/group
이 권한을 가지게됩니다).
이렇게하면이 디렉터리 아래에 생성 된 모든 파일이 디렉터리와 동일한 그룹에 속하게됩니다.
이것은 apache가 실행할 수있는 모든 cgi 스크립트에 대해 전역 umask를 설정하는 것보다 더 안전한 접근 방식입니다.
(이것은 git-http-backend
일반적으로 Apache에서 실행되는 방법 입니다).
- 설치
sudo apt-get install subversion-tools
- svn 및 svnserve를 svnwrap으로 래핑합니다.
sudo ln -s /usr/bin/svnwrap /usr/local/bin/svn
sudo ln -s /usr/bin/svnwrap /usr/local/bin/svnserve
이 후 file : //, svn + ssh : // 및 http : // 프로토콜을 사용하는 모든 svn 작업은 umask 002로 수행됩니다.
일반적으로 "시도되고 진정한 Apache 방식"에서 벗어나는 것은 권장되지 않습니다. 그러한 것들을 선택하는 데 많은 시간과 어려움을 겪은 경험이 있습니다.
참조 URL : https://stackoverflow.com/questions/428416/setting-the-umask-of-the-apache-user
'UFO ET IT' 카테고리의 다른 글
avcapturesession으로 카메라 전환 (0) | 2021.01.17 |
---|---|
Angular 2에서 양식 필드를 동적으로 추가하고 제거하는 방법 (0) | 2021.01.17 |
Rails에서 전체 애플리케이션이 공유하는 부분을 어디에 넣을까요? (0) | 2021.01.17 |
UIView에 대한 현재 각도 / 회전 / 라디안을 얻습니까? (0) | 2021.01.17 |
MySQL-열의 문자 바꾸기 (0) | 2021.01.17 |