The locate
perintah alat yang sangat berguna di Linux, tetapi tampaknya hanya root dapat menjalankan updatedb
perintah yang sangat unconvinent untuk menggunakannya. Jadi bagaimana membuat pengguna biasa memiliki hak istimewa untuk menjalankan perintah updatedb?
updatedb
adalah perintah yang digunakan untuk memperbarui db yang digunakan oleh perintah loc.
Tetapi ada pesan kesalahan berikut ketika mencoba menjalankan updatedb sebagai pengguna biasa:
[mirror@home code]$ updatedb
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
Atau:
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
bendera itu ... tapi mungkin Anda bisa menjelaskan sedikit tentang mengapa? seperti mengapa tidak lakukan saja apa yang dilakukan @xaizek dan hasilkan basis data di lokasi yang diizinkan pengguna Anda tanpa menggunakan--require-visibility
bendera?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.
Anda bisa membuat database di rumah dengan
-o
argumenupdatedb
:Dan gunakan dengan
slocate
seperti ini:Anda mungkin ingin mendefinisikan alias untuk
slocate --database=~/.locate.db
.sumber
xaizek:users
pemilik: pasangan grup untuk saya, jadi grup adalah yang default. Anda juga dapat memeriksa opsi dalam/etc/updatedb.conf
file.slocate
adalah versi lama yang lebih amanlocate
. Saya pikir centos harusslocate
diinstal dengan namalocate
. Bagaimanapun, seharusnya tidak ada perbedaan dalam kasus Anda, dan pada dasarnya dalam banyak kasus yang mungkin (pada Slackwarelocate
hanyalah tautan simbolis keslocate
).mlocate
seharusnya lebih cepat, tetapi masih kompatibel denganslocate
. Saya tidak yakin apakah itu alasannya. Jika Anda tidak ingin mencobaslocate
, situs mana yang tidak berfungsi, unduh sumber dari salah satu mirror Slackware, mereka termasuk sumber paket: lihat di sini .Berikut ini semua langkah untuk mendapatkan solusi lengkap (diuji dalam Centos 6.5)
1) menghasilkan db:
2) gunakan db:
3) buat alias:
4) gunakan locale locas db Anda:
sumber
$HOME
alih-alih~
, atau cukup singkirkan=
. kedua hal berikut ini akan berfungsi:locate --database ~/.locate.db
ataulocate --database=$HOME/.locate.db
. lihat utas ini: stackoverflow.com/questions/11587343/…