Her følger en beskrivelse av hvordan jeg installerer Joomla 1.0 på domeneshop, men antar at det fungerer like bra på andre webhotell hvor man har ssh-tilgang.
Jeg bruker SSH til å gjøre visse endringer, og vet ikke om alle de operasjonene jeg utfører kan gjøres med en FTP-klient
Last opp eller pakk ut alle filene til Joomla 1.0 i ønsket mappe.
Gå til denne mappen og gjør følgende:
- I SSH: find -type f -exec chmod 644 {} \;
- I SSH: find -type d -exec chmod 755 {} \;
- For Joomla! 1.0.x
I SSH: chmod 2757 administrator/backups/ administrator/components/ administrator/modules/ administrator/templates/ cache/ components/ images/ images/banners/ images/stories/ language/ mambots/ mambots/content/ mambots/editors mambots/editors-xtd/ mambots/search/ media/ modules/ templates/
For Joomla! 1.5.x
I SSH: chmod 2757 administrator/backups/ administrator/components/ administrator/language/ administrator/language/en-GB/ administrator/language/nb-NO/ administrator/modules/ administrator/templates/ cache/ components/ images/ images/banners/ images/stories/ language/ language/en-GB/ language/nb-NO/ language/pdf_fonts/ plugins/ plugins/content/ plugins/editors plugins/editors-xtd/ plugins/search/ plugins/system/ plugins/user/ plugins/xmlrpc/ media/ modules/ tmp/ templates/ administrator/cache/ - I SSH: touch configuration.php
- I SSH: chmod 666 configuration.php
- I nettleser: Installer på vanlig måte
- I nettleser: I steg 3 under installeringen (Kun J! 1.0); Sett på CHMOD files to: 664, og set på CHMOD folders to: 775
- I SSH: rm -rf installation/
- I nettleser: Endre det som trengs i Global Configuration
- I SSH: chmod 644 configuration.php
En liten forklaring av punktene overDe to første punktene er ikke nødvendig, men de sikrer at alle filene har de rettighetene de skal ha. Den første linjene setter alle filene i mappen, og undermappene fra der du står til 644. Den andre linjen setter rettighetene til alle mapper, undermapper til 755.
Den tredje komandoen endre rettighetene til de mappene som Joomla trenger å ha skrive tilgang til. Det spesielle ved å bruke 2757 er at mappen får noe som kalles setgidbit, dvs set group id. Dette fører til at når Joomla oppretter nye mapper og filer i en mappe med setgid, så får de nye mappene og filene gruppen til mappen de ligger i sin gruppe som eier.
Et lite eksempel:
Her er rettighetene til mappen modules, den eies av meg, og min gruppe, og har rettighetene 2757.
drwxr-srwx 2 jenscski jenscski 4.0K Jan 16 10:17 modules/
Hvis jeg nå installere en modul så vil disse filene få følgende rettigheter
-rw-rw-r-- 1 www jenscski 3.8K Nov 2 15:06 mod_modulnavn.php
-rw-rw-r-- 1 www jenscski 3.7K Nov 2 15:06 mod_modulnavn.xml
Her ser du at filene eies av www, som er brukeren apache kjøres under. Men du ser også at gruppen jeg er medlem av har skriverettigheter til filen, og at alle andre kun har lesetilgang.
Dette har skjedd fordi under installasjon så valgte jeg så sette 664 på CHMOD på filer, og at mappen modules har setgid satt.
Det samme skjer når man installerer en komponent.
drwxrwsr-x 3 www jenscski 4096 Oct 11 12:49 com_komponentnavn/
-rw-rw-r-- 1 www jenscski 20869 Oct 7 20:28 com_komponentnavn/komponentnavn.php
Her har det samme skjedd, file eies av www, men kan slettes og skrives til av meg.
Det samme gjelder også mappen com_komponentnavn, du ser her at den også har "arvet" setgid fra underliggende mappe.
På punkt nummer 4 og 5 oppretter jeg bare en tom configuration.php som jeg setter rettigheter på slik at alle kan skrive til den, og i det siste punktet setter jeg rettighetene til configuration.php slik at bare jeg som bruker kan endre den.
KonklusjonSå hvorfor bruke setgid?
Det man oppnår ved å bruke setgid er at man som bruker har full tilgang til filene og mappene som blir opprettet ved installasjon av komponenter og moduler via Joomla.
Så håper noen skjønte hva jeg prøvde å fortelle, og at noen får bruk for det.