10 人のユーザーがいるサーバー マシンがあります。OS: Ubuntu 12.04.3 LTS 64 ビット
これらのユーザーは開発者です(主にWeb開発者:HTML+JS+PHP+MYSQL)
XRDP と VNC 経由でのリモート ログインを許可しました。
今はすべて正常に動作していますが、/var/wwwに問題があります
ルートではないユーザー間でコードを共有する際に問題が発生しないようにするには、このディレクトリに適切な権限は何ですか。全員が一般ユーザーです。
ソース コードを共有しながら、同時に各自が独自のリポジトリを持つ安全な方法があるかどうかを知る必要があります。どんなアイデアでも歓迎します。
答え1
これらのユーザー全員を同じグループに入れる
usermod -g {group} {user}
こうすることで、すべてのユーザーに同じ権限が与えられます。通常は、Apache が設定されているグループ (www-data または apache) を使用します。
グループ上のファイルまたはディレクトリの権限を変更すると、すべてに変更が反映されます。
一般的に、/var/www/ 内のファイルの最小値は 664 です。ディレクトリは 775 です。777 に設定しないでください。これより低く設定することもできます。
答え2
別の方法(賞金のため:))
すべてのユーザーを同じ Web ルートに保持したくない場合は、この方法を使用できます。/var/www/ ディレクトリの Web ルート エイリアスとして、異なるディレクトリを作成できます。2 人のユーザー u1 と u2 がいるとします。
apace2はすでにインストールされていると思いますが、そうでない場合はsudo apt-get install apache2
/home/u1/web と /home/u2/web ディレクトリを、ユーザー u1 と u2 の Web ルートにします。
sudo chmod 775 home/u1/web
sudo chmod 775 home/u2/web
sudo gedit /etc/apache2/sites-available/default
ユーザー u1 のエイリアスを作成します (ファイルに次の内容を追加します)。
Alias /u1 /home/u1/web
<Directory /u1>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
ユーザー u2 のエイリアスを作成します (ファイルに次の内容を追加します)。
Alias /u2 /home/u2/web
<Directory /u1>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
これで、各ユーザーは、Webブラウザでユーザーu1の場合はlocalhost/u1、ユーザーu2の場合はlocalhost/u2を指定することで、Webルートにアクセスできるようになります。
答え3
次のようにすればできます:
- 各ユーザー用に/var/www内にディレクトリを作成する
各ディレクトリの所有者を関連付けられたユーザーに変更し、グループをwww-dataグループに変更します。
sudo chown user1:www-data /var/www/user1
sudo chown user2:www-data /var/www/user2
各ディレクトリの権限を 750 に変更して、どのユーザーも他のユーザーのファイルをいじれないようにしますが、www-data グループの権限を使用してブラウザーで他のユーザーの HTML ファイルを開く機能は保持します。