热门标签 | 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 的解决办法


推荐阅读
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 如何修改MySQL数据库密码的方法及步骤详解
    本文详细介绍了四种修改MySQL数据库密码的方法,包括使用SET PASSWORD命令、mysqladmin命令、UPDATE语句直接编辑user表的步骤和操作示例。通过本文的指导,读者可以轻松掌握修改MySQL数据库密码的技巧和方法。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
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社区 版权所有