• updatedb:无法打开`/var/lib/mlocate/mlocate.db'的临时文件(linux用户不在sudoers文件中)


    操作 Linux 。发现 locate 命令的数据库 不是最新的。(我记得 222 开头的文本有两个。)

    [byx99@byx-linux ~]# locate 222.txt 
    /home/1.6/gs6/myfile/one/2222.txt

    随即 就updatedb 指令更新,发现提示如下:

    [[byx99@byx-linux ~]# updatedb 
    updatedb: 无法为 `/var/lib/mlocate/mlocate.db' 打开临时文件

    初步判断,应该是当前使用的是 普通用户,权限不足。必须 以 超级用户身份运行 updatedb 命令。

    随即,使用root权限,又发现新的提示:

    [byx99@byx-linux ~]$ sudo updatedb
    
    我们信任您已经从系统管理员那里了解了日常注意事项。
    总结起来无外乎这三点:
    
        #1) 尊重别人的隐私。
        #2) 输入前要先考虑(后果和风险)。
        #3) 权力越大,责任越大。
    
    [sudo] byx99 的密码:
    byx99 不在 sudoers 文件中。此事将被报告。

    处理这个问题很简单,但应该先理解其原理再操作。

    首先要明白 root 的密码一般用户是不应改知道的,但一般用户有时可能要用到root的一些权限。

    这里就有了一个 /etc/sudoers 文件用来保存一些用户。使这些用户可以通过 sudo命令 来 暂时获取root的权限。

    这些用户使用sudo时输入的密码是当前用户密码,而不是root密 码。还可一在 sudoers文件 里限制一般用户的权限,这样就有了安全保证。

    现在要让 byx99 用户 获得 sudo 使用权

    1. 切换到超级用户root

    [byx99@byx-linux ~]# su root

    2. 查看/etc/sudoers权限,可以看到当前权限为440

    [root@byx-linux ~]# ls -all /etc/sudoers
    -r--r----- 1 root root 4328 10月 24 23:23 sudoers 

    3. 更改权限为777

    [root@byx-linux etc]# chmod 777 /etc/sudoers
    [root@byx-linux etc]# ls -all /etc/sudoers
    -rwxrwxrwx 1 root root 4328 10月 24 23:23 sudoers 

    4. 编辑/etc/sudoers

    [root@byx-linux etc]# vi /etc/sudoers

    5. 在 root     ALL=(ALL)  ALL 下面添加一行

            byx99  ALL=(ALL)         ALL

       然后  保存退出。

    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    byx99   ALL=(ALL)       ALL

       第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明jack可以在此主机上执行后面的命令。

       第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。

       最后一个ALL当然就是指命令名了。

       具体这里不作说明。

    6. 把/etc/sudoers权限改回440

    [root@byx-linux etc]# chmod 440 /etc/sudoers 

    7. 操作完成,切换到 byx99 用户测试一下。

    [byx99@byx-linux ~]# sudo updatedb 
    [byx99@byx-linux ~]# locate 222.txt 
    /home/1.6/gs5/gs44/222.txt
    /home/1.6/gs6/myfile/one/2222.txt

    参考文档:Linux updatedb 命令 | 菜鸟教程

    by不言谢

    希望可以帮助到你。 

    不要和别人比,要赢得是自己。(ง •̀_•́)ง
  • 相关阅读:
    python-pycharm中使用anaconda部署python环境
    Spring Boot 整合 Redis 实现缓存操作
    Spring中的ThreadPoolTaskExecutor
    Redis-基本数据类型与内部存储结构
    Redis如何存储对象与集合示例详解
    redis存储对象
    java在注解中绑定方法参数的解决方案
    spring boot整合JMS(ActiveMQ实现)
    springboot集成activemq
    NodeJS、NPM安装配置步骤(windows版本)
  • 原文地址:https://www.cnblogs.com/byx1024/p/12315225.html
Copyright © 2020-2023  润新知