Www-data kullanıcısını giriş klasörümdeki bir klasöre nasıl veririm?


31

Bir klasörüm var: /home/myuser/folderA

Www-data kullanıcısına yukarıdakilere yazma erişimi vermek istiyorum, 'myuser' normal erişime sahip olmaya devam ediyor (myus'un ana klasörü olduğu gibi).

Hangi komutları kullanmam gerekiyor?

Not: www-dataiçindeki diğer klasörlere erişmek istemiyorum /home/myuser/.

Şimdiden teşekkürler.

Yanıtlar:


46

İlk önce kendini gruba ekle www-data

usermod -a -G www-data (your username)

Sonra:

chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA

Buradaki izinler, /home/myuserdiğer kullanıcıların erişimine izin vermediği sürece yapmalı.

İlk komut, klasörün grup sahipliğini web sunucusununki ile değiştirir. İkinci komut üyeleri veren www-datagrup okuma yazma, girmek dizin hakları ve grup sbayrağı bu dizin take içinde oluşturulan olsun bütün dosyalar sağlayacaktır www-dataşekilde bir dosya oluşturmak eğer - grup olarak kullanıcı erişimine sahip olacaktır.myuserwww-data

Nb. Bu da bağlıdır umaskemin FolderA oluşturulan dosyalar grup olduğunu yapmak gerekmez: Kullanıcı hesabı ve web sunucusu hem ayarlarına rwerişimi (ve ihtiyaç grubu içinde oluşturulması dizinleri rwx)

Eğer web sunucunuz direktörünüze haklarınız girmiyorsa /home/myuser(oldukça mantıklı), o zaman başka bir şey yapmazsanız oraya giremezsiniz. İki taban:

  1. sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA (Bu çirkin bir kesiktir ve yeniden başlatıldıktan sonra tekrarlanmaları gerekir. Ancak güçlü bir numara da SSH hapishanelerinin içindeki klasörleri erişilebilir hale getirmek için kullanılabilir.)

  2. Paylaşılan klasörü başka bir yere taşıyın, örn /home/shared-stuff/folderA.

2. seçenek en güzel olanıdır. Diyelim ki A klasöründeki şeyler gerçekten herkese açık ve kim görüyor umrumda değil, ayarlayabilirsin

sudo mkdir -m777 /home/shared-stuff

Ardından, örneğin yukarıdaki izinlere sahip olan klasörA'yı ve www verilerinin farklı izinlerle erişemeyeceği şekilde klasöreB'yi koyabilirsiniz.

$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data   4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser     4096 Jan 17 21:46 folderB

ne sde g+rwxs?
T.Todua

"Grup yapışkan" biti. "İlk ..." :-) ile başlayan
parada

6

Başka bir yol, kullanıcı adını doğrudan apache config içinde değiştirmektir, bu sizin yerel makinenizse ve klasörde verilen izinleri ezilebilecek başka bir yerden görüntü kaydederseniz budur. Ayrıca sadece 1 kullanıcınız varsa ve www verilerini umursamıyorsanız yapın!

$ sudo vi /etc/apache2/apache2.conf

Kullanıcı ve Grubu Bul ve Kendinizinkini
User <Your User>
Group <Your Group>

$ sudo service apache2 restart

Bu çözüm o kadar güvenli görünmüyor, bu ayarın ne tür güvenlik tehditlerine yol açacağını bilen var mı?
Fleuv

Güvenli olmadığından eminim, bu yüzden sadece Local Machine'in hassasiyetini verdim.
Shadowbob

Bu çözüm, klasörünüze apache erişimi sağlar ...
Loenix
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.