Apache VirtualHost 생성 자동화를 위해 사용자 파일에 대한 권한 변경

Apache VirtualHost 생성 자동화를 위해 사용자 파일에 대한 권한 변경

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

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에 대한 폴더 생성을 자동화 public_html하고 /etc/apache2/sites-available/. 스크립트( 로 실행 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

내 질문:

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

답변1

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

A: 폴더 구조는 괜찮은 것 같습니다.

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가 명령을 사용하여 디렉터리를 만들 수 있도록 파일에 요청할 수 있습니다 mkdir.

관련 정보