I have a device I want to mount for root with full permissions and for everyone else as readonly.
sudo mkdir /root/mnt/foo
sudo mkdir /mnt/fooReadOnly
mount -oro /dev/sdaX /mnt/foo
ls -ld /root
-doble -compruebe que esto muestra el modo dr-xr-x---
y el propietario root root
. sudo mount --bind /mnt/fooReadOnly /root/mnt/foo
sudo mount -oremount,rw /root/mnt/foo
Pruebe los comandos anteriores. Después de cada comando de montaje, puede ejecutar grep foo /proc/self/mountinfo
, que muestra los indicadores por sistema de archivos -y por punto de montaje -en columnas separadas.
Para entender esto, sepa quemount -oremount,rw
(omount -oremount,ro
)cambia tanto el indicador del sistema de archivos -como el indicador del punto de montaje -al mismo tiempo. Pero no afecta el indicador de punto de montaje per -del otro punto de montaje (s ).
No es posible probar los comandos anteriores dentro de un espacio de nombres de usuario (unshare -rm
), incluso si cambia a montar un tmpfs en lugar de sdaX. Falla con "permiso denegado" en mount -oremount,rw
. En su lugar, tendría que usar la siguiente secuencia:
mount tmp -ttmpfs /root/mnt/foo
mount --bind /root/mnt/foo /root/mnt/fooReadOnly
mount -oremount,bind,ro /root/mnt/fooReadOnly
mount --bind /root/mnt/fooReadOnly /mnt/fooReadOnly
Also, how do I add this to /etc/fstab so that it will automatically remount on boot?
Recomendaría no adaptar la primera secuencia a fstab, porque es demasiado complicado. Puede adaptar el segundo orden en su lugar.
/dev/sdaX /root/mnt/foo...
/root/mnt/foo /root/mnt/fooReadOnly none bind,ro
/root/fooReadOnly /mnt/fooReadOnly none bind
Ваша ошибка возникает из-за того, что ваш find
] находит .
, текущий рабочий каталог, и передает его в mv
.
Если вы просто перемещаете файлы (не каталоги), добавьте -type f
к команде find
:
find . -type f ...(as before)...
Это отфильтрует каталоги, включая . каталог
.
Вы также можете полностью избавиться от xargs
:
find . -type f -newermt 20170829 -not -newermt 20180101 \
-exec mv -t /backup/desktop/books/Python/ML-demos/ {} +
Вы пытаетесь двигаться .
, который является текущим каталогом. Вы можете удалить это, добавив -mindepth
к вашей команде find
. Попробуйте сначала без передачи в xargs
, чтобы увидеть, получите ли вы желаемый результат.