热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

XXXisnotinthesudoersfile解决方案:赋予linux普通用户挂载光驱的权限

默认普通用户不能挂载光驱,提示只有root可以[root@localhost~]#su-htc[htc@localhost~]$mount

   默认普通用户不能挂载光驱,提示只有root可以

    [root@localhost~]# su - htc

    [htc@localhost ~]$ mount  /dev/cdrom  /mnt/

    mount: only root can do that

    假设机器上有几个普通用户,想让他们用光驱,但是又不能告知root密码,

    这就要求赋予他们最少的权限但是又可以用光驱,可以用sudo来实现。

    以下是测试实例

    1,root当然可以挂载

    [root@localhost~]# mount  /dev/cdrom  /mnt/

    mount: block device /dev/cdrom iswrite-protected, mounting read-only

    2,普通用户htc不行啦

    [root@localhost~]# su - htc

    [htc@localhost ~]$ mount  /dev/cdrom  /mnt

    mount: only root can do that

    3,尝试用sudo来执行,提示sudoers里边没有htc,惨,还被人记录了

    [htc@localhost~]$ sudo mount  /dev/cdrom  /mnt

    Password:

    htc is not in the sudoers file. This incident will be reported.

    4,下边就用visudo来修改权限了(/etc/sudoers文件有提示要用visudo修改)

    [root@localhost ~]# visudo

    搜索关键字cdrom找到如下的行

    ## Allows members of the users group tomount and unmount the

    ## cdrom as root

    # %users ALL=/sbin/mount /mnt/cdrom,/sbin/umount /mnt/cdrom

   

   %users表示users组, ALL表示hostlist(主机列表) 等号后边的表示可以执行的命令

    上边这一行的意思是users组中的成员,可以执行/sbin/mount /mnt/cdrom 和/sbin/umount /mnt/cdrom这两个命令

   Fedoracore 6实际中的mount命令是在/bin 下的,而不是/sbin

    [root@localhost ~]# which mount

    /bin/mount

    [root@localhost ~]# which umount

    /bin/umount

    现在要赋予htc用户可以挂载和卸载光驱的权限,添加如下行,多个命令间用逗号隔开,保存退出

htc ALL=/bin/mount  /dev/cdrom /mnt, /bin/umount  /dev/cdrom

注意上面这句htcALL=… 中的htc是用户名,不是htc这个用户的组名

可以通过#groups htc 来查找htc的组名 ,假设htc在htcs组中,那么上面的那句话可以改成:

%htcs  ALL=/bin/mount  /dev/cdrom  /mnt, /bin/umount  /dev/cdrom

同时要注意上面这两句中ALL =后面的/ bin/mount  /dev/cdrom/mnt之间是有空格的,同理 /bin/umount/dev/cdrom之间也是空一格

    5,测试,成功挂载

    [root@localhost ~]# su - htc

    [htc@localhost ~]$ sudo mount /dev/cdrom/mnt (此时会提示输入htc自己的密码而不是root的密码)

    mount: block device /dev/cdrom iswrite-protected, mounting read-only

    [htc@localhost ~]$ mount

    /dev/sda3 on / type ext3 (rw)

    proc on /proc type proc (rw)

    sysfs on /sys type sysfs (rw)

    devpts on /dev/pts type devpts(rw,gid=5,mode=620)

    /dev/sda1 on /boot type ext3 (rw)

    tmpfs on /dev/shm type tmpfs (rw)

    none on /proc/sys/fs/binfmt_misc typebinfmt_misc (rw)

    /dev/hdc on /mnt type iso9660 (ro)

   

    下边是成功卸载

    [htc@localhost ~]$ sudo umount /dev/cdrom

    [htc@localhost ~]$ mount

    /dev/sda3 on / type ext3 (rw)

    proc on /proc type proc (rw)

    sysfs on /sys type sysfs (rw)

    devpts on /dev/pts type devpts(rw,gid=5,mode=620)

    /dev/sda1 on /boot type ext3 (rw)

    tmpfs on /dev/shm type tmpfs (rw)

    none on /proc/sys/fs/binfmt_misc typebinfmt_misc (rw)

    6,怎么又不行了

    [htc@localhost ~]$ sudo mount  /dev/cdrom  /mnt/

    Sorry, user htc isnot allowed to execute '/bin/mount /dev/cdrom /mnt/' as root on localhost.

    看出以上的错误在哪里了吗?

    错误在于/mnt的后边加了一个slash/”,测试好久才发现这个问题

    下边就是成功的

    [htc@localhost ~]$ sudo mount  /dev/cdrom   /mnt

    mount: block device /dev/cdrom is write-protected,mounting read-only

    以下是需要注意的地方

    7,/etc/sudoers中没写的命令肯定不能执行,虽然/dev/cdrom就是/dev/hdc但是仍然不能执行

    [htc@localhost ~]$ ll /dev/cdrom

    lrwxrwxrwx 1 root root 3 May 2 19:48/dev/cdrom -> hdc

    [htc@localhost ~]$ sudo mount /dev/hdc /mnt

    Sorry, user htc is not allowed to execute'/bin/mount /dev/hdc /mnt' as root on localhost.

    [htc@localhost ~]$ sudo mount  /dev/cdrom  /mnt

    mount: block device /dev/cdrom iswrite-protected, mounting read-only

    下边也是同理,虽然在/dev/cdrom挂载之后就是/mnt,但是执行umount /mnt会报错

    [htc@localhost ~]$ sudo mount  /dev/cdrom  /mnt

    mount: block device /dev/cdrom iswrite-protected, mounting read-only

    [htc@localhost ~]$ sudo umount /mnt

    Sorry, user htc is not allowed to execute'/bin/umount /mnt' as root on localhost.

    [htc@localhost ~]$ sudo umount  /dev/cdrom

    [htc@localhost ~]$


关于XXX is not in the sudoers file . 的详细解释如下

在ubuntu中由于禁用了root用户,默认情况下会把安装系统时建立的用户添加到sudoers中。但在redhat和centos中并没有把任何root用户之外的用户默认的添加到sudoers之中。这样我们在执行sudo 命令时就会出现xxx is not in the sudoers file. This incident will be reported.这样的错误输出。现在为了安全起见比较提倡使用普通用户做日常操作,而在需要超级用户的时候使用sudo 来做,这样,我们就有必要把一些用户添加到sudoers之中。
其实把用户添加到sudoers之中很简单。就是用上面的第4步 visudo 来修改即可。

参考:赋予普通用户挂载光驱的权限

      is not in the sudoers file 的解决办法


推荐阅读
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • Linux 基础命令详解
    本文介绍了在 Linux 系统中常见的命令及其用法。当用户登录系统后,默认提示符会显示为 [root@localhost ~]# 或 [user@localhost ~]$,其中 # 表示当前用户为 root,$ 表示普通用户。我们将深入探讨一些常用的 Linux 命令,帮助初学者更好地理解和使用这些工具。 ... [详细]
  • 本文介绍如何通过更改软件源来提前体验Ubuntu 8.10,包括详细的配置步骤和相关注意事项。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 本文介绍如何在Linux Mint系统上搭建Rust开发环境,包括安装IntelliJ IDEA、Rust工具链及必要的插件。通过详细步骤,帮助开发者快速上手。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 解决U盘安装系统后无法重启的问题
    本文详细探讨了运维新手常遇到的U盘安装系统后无法正常重启的问题,提供了从问题分析到具体解决方案的完整步骤。通过理解Boot Loader的工作原理和正确配置启动项,帮助用户顺利解决问题。 ... [详细]
  • 在使用 Flutter 进行开发时,可能会遇到热更新功能无法正常工作的问题。本文将探讨一种常见的错误:无法连接到 Dart 观察站,并提供详细的解决方法。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 在创建新的Android项目时,您可能会遇到aapt错误,提示无法打开libstdc++.so.6共享对象文件。本文将探讨该问题的原因及解决方案。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
author-avatar
继续微笑丶保持硪的骄傲_195
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有