El locate
comando es una herramienta muy útil en Linux, pero parece que solo root puede ejecutar un updatedb
comando que no es muy común para usarlo. Entonces, ¿cómo hacer que el usuario común tenga el privilegio de ejecutar el comando updatedb?
updatedb
es el comando que se usa para actualizar la base de datos que usa el comando de localizar.
Pero existe el siguiente mensaje de error cuando intenta ejecutar updatedb como usuario normal:
[mirror@home code]$ updatedb
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
O:
updatedb -o db
updatedb: can not change group of file `/var/lib/gforge/chroot/home/users/bigmeow/tmp/db.uhEZFQ': Operation not permitted
--require-visibility
bandera ... pero tal vez podrías explicar un poco sobre por qué. ¿por qué no simplemente hacer lo que @xaizek está haciendo y generar la base de datos en una ubicación que su usuario tenga permiso sin usar la--require-visibility
bandera?SECURITY Databases built with --require-visibility no [tbs: or 0] allow users to find names of files and directories of other users, which they would not otherwise be able to do.
Simplemente puede crear una base de datos en casa con el
-o
argumento deupdatedb
:Y úsalo con
slocate
esto:Probablemente desee definir un alias para
slocate --database=~/.locate.db
.fuente
xaizek:users
propietario: par de grupo para mí, el grupo es el predeterminado. También puede verificar las opciones en el/etc/updatedb.conf
archivo.slocate
es una versión más segura de la anteriorlocate
. Creo que los centos deberían haberseslocate
instalado con nombrelocate
. De todos modos, no debería haber diferencias en su caso, y básicamente en la mayoría de los casos posibles (en Slackwarelocate
es solo un enlace simbólicoslocate
).mlocate
debería ser más rápido, pero aún compatible conslocate
. No estoy seguro de si es la razón. Si no quiere probarslocate
qué sitio no funciona, descargue las fuentes de uno de los espejos de Slackware, que incluyen las fuentes de los paquetes: consulte aquí .Aquí están todos los pasos para tener una solución completa (probado en Centos 6.5)
1) generar el db:
2) usa el db:
3) crea un alias:
4) use su locale localizar db:
fuente
$HOME
lugar de~
, o simplemente deshacerse de=
. los dos siguientes funcionarán:locate --database ~/.locate.db
olocate --database=$HOME/.locate.db
. vea este hilo: stackoverflow.com/questions/11587343/…