Apache VirtualHost를 자동으로 생성하도록 사용자 파일에 대한 권한을 변경합니다.

Apache VirtualHost를 자동으로 생성하도록 사용자 파일에 대한 권한을 변경합니다.

저는 현재 약 3명의 루트가 아닌 사용자가 생성된 작은 Ubuntu Server 12.04 시스템(테스트 환경)을 가지고 있습니다. 각 사용자는 자신의 디렉토리 아래에 자신만의 public_html디렉토리를 갖고 home있어 명명된 가상 호스트로 여러 애플리케이션을 배포할 수 있습니다. 각 사용자는 Apache www-data그룹에 속하며 다음과 같이 설정됩니다.

sudo usermod -a -G www-data [username]
sudo chown -R [username]:www-data /home/[username]/public_html
sudo chmod 2750 /home/[username]/public_html

이제 루트 사용자로서 사용자가 메시지를 표시하면 VirtualHost 폴더를 자동으로 생성하는 bash 스크립트를 만들고 있습니다 public_html. /etc/apache2/sites-available/스크립트( run 사용 sudo)는 사용자( $uzer)와 원하는 가상 호스트 이름( $vhost)을 묻는 메시지를 표시합니다. 지금까지 몇번의 확인 끝에 다음과 같은 결과를 얻었습니다.

mkdir -vp /home/$uzer/public_html/$vhost
mkdir -vp /home/$uzer/public_html/$vhost/www
mkdir -vp /home/$uzer/public_html/$vhost/logs
mkdir -vp /home/$uzer/public_html/$vhost/backups

새로 생성된 폴더의 소유권을 변경해야 하므로 다음을 수행해야 할지 잘 모르겠습니다.

chown -vR $uzer:www-data /home/$uzer/public_html/$vhost
chmod 2750 /home/$uzer/public_html/$vhost

내 질문:

  • 내 폴더 구조가 정확하거나 이상적입니까?
  • recursive( ) 옵션을 사용한 것을 알고 있지만 , 및 에도 동일한 작업을 반복 -R해야 합니까 ?$vhost/www$vhost/logs$vhost/backups
  • 위의 chmod가 중복될 수 있다고 생각하는 것이 맞습니까?
  • mkdir사용자로서 명령을 실행할 수 있는 방법이 있습니까 $uzer?

답변1

Q: 내 폴더 구조가 정확하거나 이상적인가요?

답변: 폴더 구조는 좋아 보입니다.

Q: 재귀(-R) 옵션을 사용한 것을 알고 있지만 $vhost/www, $vhost/logs 및 $vhost/backups에 대해 동일한 작업을 반복해야 합니까?

A: 이 디렉터리에서 실행하는 것은 중복됩니다.

Q: 위의 chmod가 중복될 수 있다고 생각하는데, 맞나요?

예, 기술적으로는 디렉토리를 생성하는 초기 sudo가 "그룹 ID 비트 설정"을 설정하기 때문에 중복되지만 해당 비트(2750개 중 2개) 설정이 보장되지는 않습니다. 사용자가 파일을 디렉터리로 이동했거나 실수로 파일 그룹을 변경한 것과 같은 디렉터리를 본 적이 있으므로 그대로 두겠습니다.

$uzer 사용자로 mkdir 명령을 실행할 수 있는 방법이 있습니까?

root$ su -u $user -c "mkdir ..."

스위치를 사용하여 /www, /log 및 /backups 에 대한 chmod 단계를 저장할 수도 있습니다 mkdir --mode=....

예를 들어

mkdir -vp --mode=2750 /home/$uzer/public_html/$vhost
mkdir -vp --mode=2750 /home/$uzer/public_html/$vhost/www
mkdir -vp --mode=2750 /home/$uzer/public_html/$vhost/logs
mkdir -vp --mode=2750 /home/$uzer/public_html/$vhost/backups

답변2

  1. 실제로 어떤 폴더 구조를 사용하는지는 중요하지 않습니다.
  2. chown 과 함께 옵션을 사용하면 -R명령이 실행될 때 존재하는 파일과 디렉터리에만 영향을 미칩니다.
  3. chmod아니요. 수동으로 변경하는 경우 항상 명령을 사용하여 권한을 변경해야 하기 때문입니다.
  4. /etc/sudoers$user가 어떤 디렉터리든 생성할 수 있도록 file 명령을 요청할 수 있습니다 mkdir.

관련 정보