Rechtenprobleem bij verwijderen symlinks

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • DennusB
  • Registratie: Mei 2006
  • Niet online
Hi Tweakers,

Ik ben op kantoor al een tijdje bezig met het inrichten van een Continous Integration oplossing voor onze PHP projecten. Dit gaat vrij vlekkeloos en het builden en releasen naar de test omgeving gaat prima.
Hoe dit nu is opgezet, is dat er voor elke build een nieuw mapje komt in builds/<buildnummer>.<builddatum> en deze naderhand word gesymlinked aan /httpdocs. Ook dat gaat prima.

Nu staat er in het script 1 regel die oude builds op zou moeten ruimen :
code:
1
rm -rf `ls -t | awk 'NR>10'`


En het gekke is dan dat hij struikelt over het opruimen van de symlinks in de builds/<build> folder. Zie onderstaande console logs :
25-Sep-2015 11:00:51 rm: cannot remove ‘Build.57.2015-08-26T16:48:15.948+02:00/public_html/sites/default/files’: Permission denied
25-Sep-2015 11:00:51 rm: cannot remove ‘Build.57.2015-08-26T16:48:15.948+02:00/public_html/sites/default/settings.local.php’: Permission denied
25-Sep-2015 11:00:51 rm: cannot remove ‘Build.57.2015-08-26T16:48:15.948+02:00/public_html/sites/default/default.settings.php’: Permission denied
25-Sep-2015 11:00:51 rm: cannot remove ‘Build.57.2015-08-26T16:48:15.948+02:00/public_html/sites/default/settings.php’: Permission denied
Het gekke is alleen, dat de files EN de symlinks aangemaakt zijn door dezelfde user die ze nu probeert te verwijderen. Rechten zelfs op 775 gezet, maar zelfs dan mag ik met het bovenstaande commando de symlinks niet verwijderen. Alleen als root werkt het.
Heeft iemand enig idee wat hier mis gaat en hoe ik dit eventueel zou kunnen fixen?

Owner of DBIT Consultancy | DJ BassBrewer


Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 29-09 20:15

igmar

ISO20022

Zonder een ls -l van die betreffende dir kan niemand daar wat over zeggen.

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 10:58
Ik zou als eerste even het probleem versimpelen en het scriptbouwwerk uitsluiten door zo'n "rm" handmatig uit te voeren:
code:
1
rm -rf Build.57.2015-08-26T16:48:15.948+02:00/public_html/sites/default/files


Als dat dezelfde foutmeldingen geeft, dan inderdaad wat output van "ls" geven:
code:
1
ls -ld . Build.57.2015-08-26T16:48:15.948+02:00 Build.57.2015-08-26T16:48:15.948+02:00/public_html Build.57.2015-08-26T16:48:15.948+02:00/public_html/sites Build.57.2015-08-26T16:48:15.948+02:00/public_html/sites/default Build.57.2015-08-26T16:48:15.948+02:00/public_html/sites/default/files

Daarmee zou het duidelijker moeten worden.

Acties:
  • 0 Henk 'm!

  • DennusB
  • Registratie: Mei 2006
  • Niet online
Even ls'je gedaan :

drwx--x--- 12 deuser psaserv 4096 Sep 29 10:56 .
drwxr-xr-x  9 deuser psacln  4096 Sep 22 16:04 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/
drwxr-xr-x  4 deuser psacln  4096 Jun 17 20:38 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/
drwxr-xr-x  2 deuser psacln  4096 Sep 22 16:04 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/default
lrwxrwxrwx  1 deuser psacln    61 Sep 22 16:04 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/default/files -> /var/www/vhosts/dewebsite/cnf.master/files


Deuser en dewebsite zijn even aangepast voor privacy redenen :)

O ja, en nog even de rechten op de cnf.master en cnf.master/files mappen
drwx--x--- 12 deuser psaserv 4096 Sep 29 10:56 .
drwxr-xr-x  3 deuser psacln  4096 Sep 15 15:12 cnf.master
drwxr-xr-x 16 deuser psacln  4096 Sep  4 09:03 cnf.master/files

[ Voor 17% gewijzigd door Hero of Time op 29-09-2015 19:23 . Reden: dit kan ook voor leesbaarheid ]

Owner of DBIT Consultancy | DJ BassBrewer


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 10:58
Beter om dat soort shell output in code-tags in plaats van quote-tags te plaatsen, dan komen ze in een fixed font wat de leesbaarheid verbeterd:
code:
1
2
3
4
5
drwx--x--- 12 deuser psaserv 4096 Sep 29 10:56 .
drwxr-xr-x 9 deuser psacln 4096 Sep 22 16:04 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/
drwxr-xr-x 4 deuser psacln 4096 Jun 17 20:38 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/
drwxr-xr-x 2 deuser psacln 4096 Sep 22 16:04 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/default
lrwxrwxrwx 1 deuser psacln 61 Sep 22 16:04 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/default/files -> /var/www/vhosts/dewebsite/cnf.master/files


Zo op het eerste gezicht valt mij niets vreemds op. Heb je ook geprobeerd of je zelf vanaf command line (als 'deuser') die directory kan verwijderen met "rm -fr builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/default/files"?

Acties:
  • 0 Henk 'm!

  • DennusB
  • Registratie: Mei 2006
  • Niet online
vanaalten schreef op dinsdag 29 september 2015 @ 15:53:
Beter om dat soort shell output in code-tags in plaats van quote-tags te plaatsen, dan komen ze in een fixed font wat de leesbaarheid verbeterd:
code:
1
2
3
4
5
drwx--x--- 12 deuser psaserv 4096 Sep 29 10:56 .
drwxr-xr-x 9 deuser psacln 4096 Sep 22 16:04 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/
drwxr-xr-x 4 deuser psacln 4096 Jun 17 20:38 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/
drwxr-xr-x 2 deuser psacln 4096 Sep 22 16:04 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/default
lrwxrwxrwx 1 deuser psacln 61 Sep 22 16:04 builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/default/files -> /var/www/vhosts/dewebsite/cnf.master/files


Zo op het eerste gezicht valt mij niets vreemds op. Heb je ook geprobeerd of je zelf vanaf command line (als 'deuser') die directory kan verwijderen met "rm -fr builds/master/Build.221.2015-09-22T16:03:34.644+02:00/public_html/sites/default/files"?
Jep, en dat lukt dus niet. Als ik handmatig 1 voor 1 de symlinks er uit gooi en daarna de hele build map weggooi mag het opeens wel....

Owner of DBIT Consultancy | DJ BassBrewer


Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 01-10 08:15

deadinspace

The what goes where now?

Kun je ook even je posts aanpassen om alle relevante dingen tussen [code] of [cmd] te zetten? Ik wil wel helpen, maar je outputs zijn gewoon een onleesbare brij en ik heb geen zin daar 5 minuten naar te staren...

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 01-10 21:30

Hero of Time

Moderator LNX

There is only one Legend

Je kan dus de map pas verwijderen als de symlink weg is? Dan ga je de mappen toch eerst langs via find om die eruit te gooien? Iets als dit:
find /locatie/van/symlinks/ -type f -exec rm {} \;

Find werd recursief, dus als je /builds als pad opgeeft, gooi je elke symlink weg. Hoe dieper je 't opgeeft, hoe minder kans op fouten. Bijvoorbeeld symlinks in je $HOME verwijderen via root moet je dus niet doen met 'find / -type f -exec rm', want dan is je systeem om zeep.

Commandline FTW | Tweakt met mate


  • DennusB
  • Registratie: Mei 2006
  • Niet online
deadinspace schreef op dinsdag 29 september 2015 @ 17:31:
Kun je ook even je posts aanpassen om alle relevante dingen tussen [code] of [cmd] te zetten? Ik wil wel helpen, maar je outputs zijn gewoon een onleesbare brij en ik heb geen zin daar 5 minuten naar te staren...
Oke, nog een poging hier (nieuwe output ook omdat ik nu het probleem weer ervaar).
Overzicht van rechten in de builds map :

-rwxr-xr-x 1 deuser psacln  21K Aug 17 15:07 default.settings.php
lrwxrwxrwx 1 deuser psacln   63 Aug 20 15:48 settings.php -> /var/www/vhosts/desite/cnf.development/settings.php
lrwxrwxrwx 1 deuser psacln   69 Aug 20 15:48 settings.local.php -> /var/www/vhosts/desite/cnf.development/settings.local.php
lrwxrwxrwx 1 deuser psacln   56 Aug 20 15:48 files -> /var/www/vhosts/desite/cnf.development/files
dr-xr-xr-x 2 deuser psacln 4.0K Aug 20 15:48 .
drwxr-xr-x 3 deuser psacln 4.0K Sep 30 09:00 ..


Ik log op SSH in als user "deuser", als ik vervolgens een rm -rf * in die specifieke map wil doen :

rm: cannot remove ‘default.settings.php’: Permission denied
rm: cannot remove ‘files’: Permission denied
rm: cannot remove ‘settings.local.php’: Permission denied
rm: cannot remove ‘settings.php’: Permission denied

Rechten op de gesymlinkte files :
-rwxr-xr-x 1 deuser psacln 21K Aug 17 11:33 /var/www/vhosts/desite/cnf.development/settings.php
drwxr-xr-x 12 deuser psacln   88K Sep 16 10:31 files
-rwxr-xr-x 1 deuser psacln 21K Aug 17 11:33 /var/www/vhosts/deuser/cnf.development/default.settings.php


Het gekke is dat ik de symlink van de files/mappen nu ook niet meer mag verwijderen 8)7 :

unlink settings.php
unlink: cannot unlink &#8216;settings.php&#8217;: Permission denied


Ik snap er echt niets van. Iemand enig idee?

@Hero of time :
Thanks voor je waardevolle input, helaas blijkt dus nu het symlinken onder de owner user ook niet meer te werken :(

Owner of DBIT Consultancy | DJ BassBrewer


  • Zerobase
  • Registratie: Februari 2007
  • Niet online
Draait er een virusscanner op de betreffende machine, of is SElinux/AppArmour oid actief?

Heb dit soort vreemd gedrag ook wel eens meegemaakt en dan bleek de virusscanner een bestand gelocked te houden.

Of SElinux gooit roet in het eten ...

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 01-10 21:30

Hero of Time

Moderator LNX

There is only one Legend

DennusB schreef op woensdag 30 september 2015 @ 09:11:
Het gekke is dat ik de symlink van de files/mappen nu ook niet meer mag verwijderen 8)7 :

unlink settings.php
unlink: cannot unlink &#8216;settings.php&#8217;: Permission denied


Ik snap er echt niets van. Iemand enig idee?
Is die HTML escape door je copy/paste gekomen, of zie je dat ook werkelijk op de shell? Wat zegt een rm -v eigenlijk, dus verbose output?

Commandline FTW | Tweakt met mate


  • DennusB
  • Registratie: Mei 2006
  • Niet online
Zerobase schreef op woensdag 30 september 2015 @ 09:21:
Draait er een virusscanner op de betreffende machine, of is SElinux/AppArmour oid actief?

Heb dit soort vreemd gedrag ook wel eens meegemaakt en dan bleek de virusscanner een bestand gelocked te houden.

Of SElinux gooit roet in het eten ...
Virusscanner niet geloof ik, SeLinux wel denk ik. Dat is goed om even te checken.
Hero of Time schreef op woensdag 30 september 2015 @ 10:04:
[...]

Is die HTML escape door je copy/paste gekomen, of zie je dat ook werkelijk op de shell? Wat zegt een rm -v eigenlijk, dus verbose output?
Ja dat ging mis met het tonen hier, dat zie ik gelukkig niet in de shell, haha!

rm -rfv files
rm: cannot remove &#8216;files&#8217;: Permission denied


Edit : SeLinux draait niet. Gaat overigens om Ubuntu 14.04 machines met de laatste Plesk 12!

[ Voor 5% gewijzigd door DennusB op 30-09-2015 10:13 ]

Owner of DBIT Consultancy | DJ BassBrewer


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 01-10 21:30

Hero of Time

Moderator LNX

There is only one Legend

DennusB schreef op woensdag 30 september 2015 @ 10:09:
[...]


Virusscanner niet geloof ik, SeLinux wel denk ik. Dat is goed om even te checken.
[...]
Simpel te achterhalen met 'getenforce'. Het is jammer dat je je distro niet gelijk hebt genoemd, dan was 't eerder iets om aan te denken. ;)

edit:
Ah, ninja-edit van je. Nee, dan zit selinux zeker niet in de weg. Test eens met een andere distro.
Ja dat ging mis met het tonen hier, dat zie ik gelukkig niet in de shell, haha!

rm -rfv files
rm: cannot remove &#8216;files&#8217;: Permission denied
Nog eens, volgens mij gebruik je het onnoembare OS dat quotes zo nodig moet laten openen en sluiten. Of anders even de juiste char encoding selecteren in je terminal programma, alles behalve UTF-8 is niet fijn.

edit:
Backquotes '`' moeten gewoon goed weergegeven worden.

[ Voor 10% gewijzigd door Hero of Time op 30-09-2015 10:18 ]

Commandline FTW | Tweakt met mate


  • DennusB
  • Registratie: Mei 2006
  • Niet online
Hero of Time schreef op woensdag 30 september 2015 @ 10:14:
[...]

Simpel te achterhalen met 'getenforce'. Het is jammer dat je je distro niet gelijk hebt genoemd, dan was 't eerder iets om aan te denken. ;)


[...]

Nog eens, volgens mij gebruik je het onnoembare OS dat quotes zo nodig moet laten openen en sluiten. Of anders even de juiste char encoding selecteren in je terminal programma, alles behalve UTF-8 is niet fijn.
Hij geeft in de terminal van die mooie schuine backtics om files heen inderdaad, dat gaat hier mis. Ik zie het hier wel goed!

T gaat om Ubuntu 14.04 btw :)

Edit : En toch gaat dat niet goed hier! Iig niet in de CMD tag. Maar goed, dat staat los van mijn issue volgens mij?

[ Voor 9% gewijzigd door DennusB op 30-09-2015 10:19 ]

Owner of DBIT Consultancy | DJ BassBrewer


  • magistus
  • Registratie: December 2001
  • Laatst online: 28-09 11:57
code:
1
dr-xr-xr-x 2 deuser psacln 4.0K Aug 20 15:48 .

Het kan aan de hoeveelheid biertjes liggen, maar zet eens write-rechten voor de owner (deuser) op de working directory?
code:
1
chmod u+w .

bv.
edit:
puntje kwijt

[ Voor 8% gewijzigd door magistus op 30-09-2015 21:49 ]


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 01-10 21:30

Hero of Time

Moderator LNX

There is only one Legend

Vreemd, in eerdere posts van de TS heeft . de rechten drwx. Waarom later dan opeens niet meer?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 29-09 20:15

igmar

ISO20022

[quote]DennusB schreef op woensdag 30 september 2015 @ 09:11:
-rwxr-xr-x 1 deuser psacln  21K Aug 17 15:07 default.settings.php
lrwxrwxrwx 1 deuser psacln   63 Aug 20 15:48 settings.php -> /var/www/vhosts/desite/cnf.development/settings.php
lrwxrwxrwx 1 deuser psacln   69 Aug 20 15:48 settings.local.php -> /var/www/vhosts/desite/cnf.development/settings.local.php
lrwxrwxrwx 1 deuser psacln   56 Aug 20 15:48 files -> /var/www/vhosts/desite/cnf.development/files
dr-xr-xr-x 2 deuser psacln 4.0K Aug 20 15:48 .
drwxr-xr-x 3 deuser psacln 4.0K Sep 30 09:00 ..


Die dr-xr-xr-x op . is fout : Dat betekend dat de huidige gebruiker geen schrijfrechten heeft. Dat verklaart ook de permission denied : Je hebt schrijfrechten nodig op de dir om files te kunnen toevoegen / verwijderen.
Pagina: 1