Per copiare i file ogni minuto in / var / www senza sudo
Domanda
Come si può copiare una cartella / var / www senza sudo?
Il mio codes
cartella ha le seguenti autorizzazioni in / var / www
4 drwxr-xr-x 8 root root 4096 2009-08-09 03:01 codes
Posso sudo cp -r ~/Dropbox/codes/ /var/www
solo per copiare i file.
Non posso copiare senza sudo.
Soluzione
Possedere /var/www
da soli potrebbero entrare in conflitto con le altre opzioni sul vostro sistema. Sul mio sistema Debian farei questo
sudo addgroup www
sudo adduser nr www # add myself to the www group
sudo chgrp -R www /var/www # make files in the group
find /var/www -type f -exec chmod g+w '{}' ';' # make each file group writable
find /var/www -type d -exec chmod g+ws '{}' ';' # make each directory group writable and sticky
Se la directory è scrivibile gruppo e appiccicoso, tutti i file creati in /var/www
sarà scrivibile da chiunque nel gruppo www
, non importa chi o che cosa li crea lì. (Caveat: devono essere creato da "normali" mezzi; cp -a
può aggirare lo sticky bit gruppo.)
A causa Unix è follemente stupido appartenenza al gruppo, per la tua adesione a essere onorato sarà necessario accedere nuovamente, per esempio, ssh localhost
o disconnettersi e accedere nuovamente. Un fastidio.
Altri suggerimenti
Che dire di aggiungere il job cron per l'utente root. Non è una grande idea, ma sarà aggirare il problema?
Trovo anche interessante il fatto che la directory www avrebbe solo i permessi di root ed essere di proprietà di root. Di solito sono di proprietà di un utente apache o hanno altre autorizzazioni in modo che Apache possa accedervi.
Modifica Probabilmente non si vuole modificare il file crontab directy. Ma qualcosa di simile al seguente comando dovrebbe funzionare:
sudo crontab -e -u root
Potrebbe non essere necessario il -u root
ma è bene quindi sudo non confonde crontab.
Modifica 2 È possibile modificare i permessi con i comandi chmod
e chown
:
sudo chmod 755 /path
sudo chown user:user /path
Puoi essere molto, molto attenti quando si usa questo. Potete completamente rovinare il sistema operativo modificando i permessi sui file o le cartelle sbagliate. Probabilmente si vorrà aggiungere l'opzione -R che applicano le autorizzazioni o proprietario in modo ricorsivo, ma ancora una volta, essere molto attenti.
sudo chown yourusername /var/www
E potrai diventare il nuovo proprietario del /var/www
.