O locate
comando é uma ferramenta muito útil no Linux, mas parece que apenas o root pode executar um updatedb
comando que não é conveniente para usá-lo. Então, como fazer com que o usuário comum tenha o privilégio de executar o comando updatedb?
updatedb
é o comando usado para atualizar o db usado pelo comando
Mas há a seguinte mensagem de erro ao tentar executar updatedb como usuário comum:
[mirror@home code]$ updatedb
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
Ou:
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
bandeira ... mas talvez você possa explicar um pouco sobre o porquê? por que não fazer o que o @xaizek está fazendo e gerar o banco de dados em um local que seu usuário tenha permissão sem usar a--require-visibility
sinalização?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.
Você pode simplesmente criar banco de dados em casa com o
-o
argumento deupdatedb
:E use-o
slocate
assim:Você provavelmente deseja definir um alias para
slocate --database=~/.locate.db
.fonte
xaizek:users
par owner: group para mim, o group é o padrão. Você também pode verificar as opções no/etc/updatedb.conf
arquivo.slocate
é uma versão mais segura do antigolocate
. Eu acho que centos deveria terslocate
instalado com o nomelocate
. De qualquer forma, não deve haver diferenças no seu caso, e basicamente na maioria dos casos possíveis (no Slackwarelocate
é apenas um link simbólico paraslocate
).mlocate
deveria ser mais rápido, mas ainda assim compatívelslocate
. Não tenho certeza se é esse o motivo. Se você não quiser tentarslocate
, qual site não está funcionando, baixar fontes de um dos espelhos do Slackware, eles incluem fontes dos pacotes: veja aqui .Aqui estão todas as etapas para ter uma solução completa (testada no Centos 6.5)
1) gere o banco de dados:
2) use o db:
3) crie um alias:
4) use seu locale localize db:
fonte
$HOME
vez de~
, ou apenas se livre do=
. ambos os seguintes funcionarão:locate --database ~/.locate.db
oulocate --database=$HOME/.locate.db
. Veja este tópico: stackoverflow.com/questions/11587343/…