Hogyan adhatok felhasználót a www-data apache felhasználói csoporthoz?
Az adott problémára több megoldás is létezik.
Teszt vagy developer szerveren elég sokszor fordul elő, hogy fájlokat kell törölni, módosítani, áthelyezni másik mappába. Nekem jelenleg a /home/leoamros/public_html
mappa alatt helyezkedik el a virtuális domainek tárhelye. Ezért automatikusan leoamros felhasználó és leoamros groupként hozom létre a mappákat. De az Apache www-data felhasználó és www-data groupként menti a fájlokat. Így mivel a két csoport nem fedi egymást, sokszor kapok hibaüzenetet, hogy a fájlhoz nincs hozzáférésem.
Ilyenkor több megoldás létezik. Vagy hozzáadjuk a felhasználónkat a www-data csoporthoz, ezáltal engedélyünk lesz módosítani a fájlokat, vagy a mappaszerkezetet tulajdonosát és csoportját "hackeljük" meg :)
Nézzük az első verziót. Tehát felhasználót adunk a www-data csoporthoz, első esetben egy teljesen új felhasználót, akit frissen regisztrálunk.
sudo useradd -g www-data lacca
### beállítjuk a jelszót is számára ###
sudo passwd lacca
Hogy biztosak legyünk ellenőrizehetjük:
id lacca
groups lacca
Ekkor a felhasználó alapértelmezetten www-data elsődleges csoporttal jön létre. Tehát belépéskor a www-data csoportba jelentkezik be.
Másik megoldás, hogy a felhasználót a saját csoportjába hozzuk létre és csak hozzárendeljük a többi csoporthoz
sudo groupadd lacca
sudo useradd -g lacca -G www-data,ftp lacca
sudo passwd lacca
Ekkor először a lacca felhasználói csoportot hozzuk létre, majd ezt adjuk meg elsődleges csoportként, és hozzárendeljük a felhasználót a www-data és ftp csoporthoz is.
Hogy biztosak legyünk ellenőrizehetjük:
id lacca
groups lacca
Utolsó megoldásként már létező felhasználót is hozzáadhatunk a csoporthoz. Ezt alkalmaztam a saját esetemben én is.
sudo usermod -a -G www-data leoamros
Hogy biztosak legyünk ellenőrizehetjük:
id leoamros
groups leoamros
Alternatív megoldásként pedig szóba jöhet a mappa jogosultságokkal való játék.
Elsőként állítsuk be a megfelelő jogokat a mappán
sudo chown -R leoamros:www-data /home/leoamros/public_html
Ekkor a mappa tulajdonosa leoamros és a www-data csoport lesz.
sudo chmod -R g+s /home/leoamros/public_html
Ezzel pedig megadjuk, hogy az újonnan létrehozott fájlok és mappák örököljék a megadott tulajdon beállításokat :)