Tengo un directorio en un montaje nfs, que en el servidor está en /home/myname/.rubies
Root no puede acceder a este directorio:
[mitchell.usher@server ~]$ stat /home/mitchell.usher/.rubies
File: `/home/mitchell.usher/.rubies'
Size: 4096 Blocks: 8 IO Block: 32768 directory
Device: 15h/21d Inode: 245910 Links: 3
Access: (0755/drwxr-xr-x) Uid: ( 970/mitchell.usher) Gid: ( 100/ users)
Access: 2016-08-22 15:06:15.000000000 +0000
Modify: 2016-08-22 14:55:00.000000000 +0000
Change: 2016-08-22 14:55:00.000000000 +0000
[mitchell.usher@server ~]$ sudo !!
sudo stat /home/mitchell.usher/.rubies
stat: cannot stat `/home/mitchell.usher/.rubies': Permission denied
Estoy intentando copiar algo desde ese directorio al /optque solo la raíz tiene acceso:
[mitchell.usher@server ~]$ cp .rubies/ruby-2.1.3/ -r /opt
cp: cannot create directory `/opt/ruby-2.1.3': Permission denied
[mitchell.usher@server ~]$ sudo !!
sudo cp .rubies/ruby-2.1.3/ -r /opt
cp: cannot stat `.rubies/ruby-2.1.3/': Permission denied
Obviamente puedo hacer lo siguiente (y es lo que he hecho por el momento):
[mitchell.usher@server ~]$ cp -r .rubies/ruby-2.1.3/ /tmp/
[mitchell.usher@server ~]$ sudo cp -r /tmp/ruby-2.1.3/ /opt/
¿Hay alguna manera de hacer esto que no implique copiarlo como un paso intermedio o cambiar los permisos?
permissions
root
file-copy
Mitch
fuente
fuente

cp -Rp /home/mitchell.usher/.rubies /tmp/templocation; sudo mv /tmp/templocation/ruby-2.1.3 /opt¿esto no funcionará? Si no, ¿por qué?cp <file> /tmp/tmpfileRespuestas:
Puedes usarlo
tarcomo un proceso de bufferEl primero se
tarejecuta como usted y así puede leer su directorio de inicio; el segundo setarejecuta debajosudoy así puede escribir/opt.fuente
cpiose puede usar de la misma manera.-Cargumento para cambiar el directorio (es decirtar cf - ruby-2.1.3 | sudo tar -C /opt xpf -). Vale la pena mencionar que desea asegurarse de quesudono le pedirá su contraseña (por ejemplo, a través de unasudoersentrada o credenciales en caché).Puede usar
rsyncoscpcopiar desdeuser@localhostel directorio local.Ejemplo para
rsync:Alternativamente podrías
si deja que el acceso raíz localhost directamente (no se recomienda; normalmente preferimos que el acceso raíz sea a través de
sudo).fuente
Puede hacer una segunda entrada en el FAT (o lo que sea).
Hago esto para mi
HOSTSarchivo. Tengo un enlace en un directorio de escritura que hace referencia al archivo y tiene diferentes permisos, por lo que tengo/Hosts/HOSTSque puedo modificar fácilmente, y los cambios se colocan en ambos archivos (es decir, "uno"). Son 2 entradas para 1 archivo. No recuerdo el comando, lo siento.Para usted, crea un enlace
/optpara todos los archivos.rubiesy, cuando cambia algo/opt, es el mismo archivo que en.rubies.fuente