Andere rechten na kopieeractie

Pagina: 1
Acties:

  • timskiej
  • Registratie: Januari 2007
  • Laatst online: 11-01 10:37
Hallo,

Ik ben aan het proberen om dagelijkse backups te maken van een bestand op mijn Western Digital MyBook.
Ik heb twee gebruikers (root en ADMINISTRATOR). Ik heb twee mappen aangemaakt namelijk dailybackup en rsyncbackup.

Om te testen had ik een aantal bestanden in de map rsyncbackup gezet. Want de bestanden in deze map wil ik dagelijks naar mijn dailybackup hebben verplaats. De bestanden in deze map kan ik gewoon verwijderen of aanpassen vanuit Vista.

Nu heb ik mijn scriptje getest..

code:
1
2
3
4
TIME=`date +%Y%m%d\-%H%M%S`
DESTINATION=$TIME/shares/map/backups/dailybackup/
mkdir -p $DESTINATION
cp -r /shares/internal/map/backups/rsyncbackup/ $DESTINATION


En er komt een map te staan onder dailybackup wat dus perfect werkt.

Het probleem is dat ik de bestanden niet kan aanpassen of verwijderen.
Dus zodra ze gekopieerd zijn naar een andere map kan ik ze niet meer bewerken.
Via SSH kan ik de mappen wel gewoon verwijderen als ADMINISTRATOR.!

IK heb al zitten te stoeien met chmod 777 en chown.
Als ik alles via root doe en instel zie ik helemaal geen mappen als ik in Vista via de verkenner kijk.

----------------------

Nu wil ik dat hij dagelijks dit laat draaien dmv Cron.
Maar hij lijkt niet te werken. Ik heb dit als Root in Cron ingesteld.

code:
1
2
3
4
5
6
7
8
9
# standard crontab format for busybox cron daemon.
# fields may be lists
# min    hour day month wd  command
#  *      *    *   *     *   dosomething

# save the date every day at midnight
0   0    *   *     *   date +%m%d%H%M%Y.%S > /var/lib/now

0 16 * * * bash /usr/local/bin/mybookbackup.sh

[ Voor 5% gewijzigd door timskiej op 04-12-2008 16:38 ]


  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 28-01 00:01
Wat gebeurt er als je cp -r vervangt door cp -pR ?

  • benoni
  • Registratie: November 2003
  • Niet online
Je kunt het cp (of rsync) commando ook de -a (--archive) switch meegeven, dat neemt voor de gekopieerde bestanden zoveel mogelijk oorspronkelijke rechten over.

Mocht je nog aanvullende rechten nodig hebben dan kun je dat er inderdaad nog aan toevoegen (iets als 'chmod -R g+rwX $DESTINATION').

Wat ik mis aan je verhaal is welk filesystem het doelvolume heeft en of het wordt gemount met een bepaald umask (probeer 'cat /etc/mtab'). De beperkingen van filesystem en mountopties kunnen natuurlijk ook van invloed zijn.

  • timskiej
  • Registratie: Januari 2007
  • Laatst online: 11-01 10:37
code:
1
2
3
4
5
TIME=`date +%Y%m%d\-%H%M%S`
DESTINATION=/shares/internal/BACKUP/map/backup/dailybackup/$TIME/
mkdir -p $DESTINATION
cp -pra /shares/internal/BACKUP/map/backup/rsyncbackup/ $DESTINATION
chmod -R g+rwX $DESTINATION


Ik kan wel losse bestanden verwijderen. Maar de mappen waarin ze staan kan ik niet verwijderen.
Het filesystem wat op de MyBook staat is EXT3.

Als ik cat /etc/mtab invoer krijg ik.

code:
1
2
3
4
5
6
7
8
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,noatime,data=ordered 0 0
proc /proc proc rw 0 0
devpts /dev/pts devpts rw 0 0
sys /sys sysfs rw 0 0
/dev/md3 /var ext3 rw,noatime,data=ordered 0 0
/dev/md4 /shares/internal ext3 rw,noatime,data=ordered 0 0
usbfs /proc/bus/usb usbfs rw 0 0


En als ik kijk naar de rechten van rsyncbackup en dailybackup krijg ik dit.

code:
1
2
drwxrwxrwx 6 ADMINISTRATOR ADMINISTRATOR 4096 Dec  4 16:44 dailybackup
drwxrwxrwx 2 ADMINISTRATOR ADMINISTRATOR 4096 Dec  4 15:09 rsyncbackup



Edit

Als ik chmod 777 doe op de map met de datum die is aangemaakt door het script. en de daar onder liggende map (de rsyncbackup map) kan ik de bestanden aanpassen, veranderenen ook verwijderen :) . Maar wat is hier nu de oplossing voor zonder dat ik steeds alles moet invoeren.

[ Voor 57% gewijzigd door timskiej op 04-12-2008 17:34 ]


  • benoni
  • Registratie: November 2003
  • Niet online
Die 'cp -pra' kun je terugbrengen tot 'cp -a'. De -a switch is hetzelfde als -dpR.

De /shares/internal wordt zonder beperkende opties gemount, dus dat zit goed.

De rechten op de mappen staan i.m.o. juist te ver open (ik zou zeker chmod -R o-wx doen, geen write of execute rechten voor iedereen). Je kunt eventueel een chmod g+s (SGID, 'set group id') doen voor de backup map om daarin nieuw aangemaakte submappen de groepnaam van de parent te laten overnemen. Dat is handig omdat je in je script een mkdir -p doet. Als de hoofd-backupmap dan de groep ADMINISTRATOR heeft krijgt het hele riedeltje submappen dat je erin aanmaakt ook de groep ADMINISTRATOR mee.

Log je vanaf een Windows client in op de Samba service onder de naam ADMINISTRATOR begrijp ik? Kijk dan of in de Samba voorkeuren nog restricties staan die het verwijderen van mappen verbieden (even rondkijken in /etc/samba/smb.conf). -> niet meer relevant zie ik.

  • timskiej
  • Registratie: Januari 2007
  • Laatst online: 11-01 10:37
Oke bedankt :)
Ik ga het vanavond eens proberen.

  • timskiej
  • Registratie: Januari 2007
  • Laatst online: 11-01 10:37
code:
1
2
3
4
5
TIME=`date +%Y%m%d\-%H%M%S`
DESTINATION=/shares/internal/BACKUP/map/backup/dailybackup/$TIME/
mkdir -p $DESTINATION
chmod g+s $DESTINATION
cp -a /shares/internal/BACKUP/map/backup/rsyncbackup/ $DESTINATION


Nu heb ik hem zo gemaakt. Ik weet niet of ik het goed doe want ik heb geen ervaring met zon scriptjes maken. Maar ik heb nog steeds het probleem dat ik een file niet kan aanpassen en de twee bovenliggende mappen (de gekopieerde map van de rsyncbackup en de map daarboven die de datum vermeld) kan ik niet verwijderen

Voorbeeld van waar de backup naartoe gaat.

map met datum (drwxr-xr-x) --> map naam: rsyncbackup (drwxrwxrwx) -->data (rwxr--r--)

[ Voor 26% gewijzigd door timskiej op 04-12-2008 21:50 ]


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 28-01 17:26

Kees

Serveradmin / BOFH / DoC
Kun je eens een simpele 'ls -lah' laten zien van je source + een 'ls -lah' van je destination? En wat gebeurd er als je alleen maar handmatig kopieert?
Welke error krijg je als je een map wil verwijderen? Wat krijg je te zien als je een file i die dirs probeert te veranderen? (al is het maar 'touch file')?

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • timskiej
  • Registratie: Januari 2007
  • Laatst online: 11-01 10:37
drwxrwxrwx 2 ADMINISTRATOR ADMINISTRATOR 4.0K Dec 4 15:09 rsyncbackup <--source
drwxr-xr-x 2 ADMINISTRATOR ADMINISTRATOR 4.0K Dec 4 21:47 dailybackup <--destination

Handmatig (dus via Vista) kan ik niet kopieren. Vista geeft aan dat ik de machtigingen niet heb.

Als ik het script laat draaien en ik probeer te map via de verkenner te verwijderen krijg ik ook de melding dat ik geen machtigingen heb.

Edit

Ik heb maar effe een paint gemaakt :P hoe het is ingedeeld en de rechten.
Als ik ls -lah deed in de map waar de files staan kreeg ik ook dit te zien:

code:
1
2
drwxrwxrwx 2 ADMINISTRATOR ADMINISTRATOR 4.0K Dec  4 15:09 .
drwxr-sr-x 3 ADMINISTRATOR ADMINISTRATOR 4.0K Dec  4 22:05 ..



Afbeeldingslocatie: http://i34.tinypic.com/2guie06.jpg

[ Voor 30% gewijzigd door timskiej op 04-12-2008 22:22 ]


  • benoni
  • Registratie: November 2003
  • Niet online
Je hebt het bijna goed, je moet alleen even rustig stap voor stap het script nagaan (of de regels één voor één in de terminal uitvoeren) en kijken wat de opdrachten nu precies doen.

Die chmod g+s zou je eigenlijk maar éénmalig hoeven uitvoeren, op de map waar je elke keer je backups in wegschrijft. Het moet in ieder geval vóórdat je met mkdir subdirectories erin gaat aanmaken. Of je moet het weglaten en achteraf met 'chmod -R g+rwX $DESTINATION' en 'chgrp -R ADMINISTRATOR $DESTINATION' de rechten goedzetten.

En misschien kun je het sowieso wat vereenvoudigen, je hebt nu een mapje in een mapje in een mapje in een mapje in een mapje en het lijkt me niet dat je zo'n lang pad nodig hebt. Dan hoef je op al die tussenliggende mapniveaus ook niet apart de rechten te herstellen. Zoiets bijvoorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
TIME=`date +%Y%m%d\-%H%M%S`
DESTINATION=/shares/internal/BACKUP/dailybackup

# Maak basismap en submap aan voor de backup
mkdir -p $DESTINATION/$TIME

# Kopieer inhoud van archief naar submap
cp -a /shares/internal/BACKUP/map/backup/rsyncbackup/* $DESTINATION/$TIME

# Herstel de groepsrechten zodat alle backups voor admin altijd bewerkbaar zijn
# (ongeacht de gebruiker)
chgrp -R ADMINISTRATOR $DESTINATION
chmod -R g+rwX $DESTINATION


Als verschillende gebruikers ook handmatig onderdelen in de backupmap willen plaatsen is de SGID bit nodig (chmod g+s) maar dan moet je voor de betrokken gebruikers ook standaard een 'umask 002' in hun /home/user/.bashrc bestand plaatsen (of met ACL's werken en die op de map instellen). Dan hoef je geen chgrp en chmod achteraf te doen.

  • timskiej
  • Registratie: Januari 2007
  • Laatst online: 11-01 10:37
Hey bedankt ;)
Ik ga het eens proberen morgen.
En ik ga me wat meer verdiepen in chmod etc en de rechten.

Edit

Ik kan nu wel de files verwijderen :D nice..
Maar ik krijg wel deze error.
En er wordt alleen een map aangemaakt. Maar de data wordt niet gekopieert.

PS: is het ook mogelijk om een wachtwoord op de map BACKUP te zeten?

code:
1
2
3
4
 missing destination file operand after `/shares/internal/BACKUP/matra/backup/rsyncbackup/test2.doc'
Try `cp --help' for more information.
/usr/local/bin/mybookbackup.sh: line 9: /shares/internal/BACKUP/dailybackup/20081204-233728: is a directory
/usr/local/bin/mybookbackup.sh: line 12: bewerkbaar: command not found

[ Voor 77% gewijzigd door timskiej op 05-12-2008 10:44 ]


  • benoni
  • Registratie: November 2003
  • Niet online
timskiej schreef op donderdag 04 december 2008 @ 23:22:
Hey bedankt ;)
Maar ik krijg wel deze error.
En er wordt alleen een map aangemaakt. Maar de data wordt niet gekopieert.

code:
1
2
3
4
 missing destination file operand after `/shares/internal/BACKUP/matra/backup/rsyncbackup/test2.doc'
Try `cp --help' for more information.
/usr/local/bin/mybookbackup.sh: line 9: /shares/internal/BACKUP/dailybackup/20081204-233728: is a directory
/usr/local/bin/mybookbackup.sh: line 12: bewerkbaar: command not found
Vreemd, het zou gewoon moeten werken, ik heb het net zelf ook even getest.
Paar ideeën:
  • Met '/*' in de bron wordt de inhoud van de map geëxpandeerd als lijst van bestandsnamen. Het wil nog wel eens dat een vreemd teken in een bestandsnaam roet in het eten gooit. Je kunt het weglaten, dan wordt de hele bronmap overgenomen.
  • Je kunt ook rsync proberen in plaats van cp.

  • timskiej
  • Registratie: Januari 2007
  • Laatst online: 11-01 10:37
Met rsync en cp krijg ik nog gewoon dezelfde melding te zien.
Ook het weghalen van het /* teken krijg ik dezelfde melding.

  • benoni
  • Registratie: November 2003
  • Niet online
Misschien moet je eens kijken of er gekke tekens of Windows regeleindes in het script zitten. Dan kan nog wel eens gebeuren met kopiëren / plakken vanaf een webpagina. In de foutmelding staat 'bewerkbaar: command not found'. Dat wijst erop dat de regel waarin dat 'bewerkbaar' staat per ongeluk als een commando wordt gelezen, terwijl er duidelijk een # voorin de regel staat (dat staat voor remark, eroverheen lezen). Blijkbaar is de regel in tweeën gesplitst of leest de shell over het # teken heen.

  • timskiej
  • Registratie: Januari 2007
  • Laatst online: 11-01 10:37
Naja het lukt me nog steeds niet.
Het script blijft wel te lopen nu en verplaats ook mijn bestanden naar de juiste map.
Maar ik kan in Vista of XP nog steeds geen files verwijderen of aanpassen.
Langzaam schiet het op 8)7

code:
1
2
3
4
5
6
7
8
9
10
TIME=`date +%Y%m%d\-%H%M%S`
DESTINATION=/shares/internal/BACKUP/dailybackup

mkdir -p $DESTINATION/$TIME


cp -a /shares/internal/BACKUP/matra/backup/rsyncbackup/* $DESTINATION/$TIME

chgrp -R ADMINISTRATOR $DESTINATION
chmod -R g+rwX $DESTINATION

[ Voor 3% gewijzigd door timskiej op 05-12-2008 17:00 ]


  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Toevallig filenamen met spaties? Die vindt bash niet leuk..

Probeer er eens " " omheen te zetten.

[ Voor 35% gewijzigd door Rainmaker op 05-12-2008 17:06 ]

We are pentium of borg. Division is futile. You will be approximated.


  • timskiej
  • Registratie: Januari 2007
  • Laatst online: 11-01 10:37
Nee er zitten geen spaties in.
Waar moet ik die " " omheen zetten?
Pagina: 1