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


推荐阅读
  • WebBenchmark:强大的Web API性能测试工具
    本文介绍了一款名为WebBenchmark的Web API性能测试工具,该工具不仅支持HTTP和HTTPS服务的测试,还提供了丰富的功能来帮助开发者进行高效的性能评估。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文深入探讨了Linux内核中进程地址空间的设计与实现,包括虚拟地址空间的概念、内存描述符`mm_struct`的作用、内核线程与用户进程的区别、进程地址空间的分配方法、虚拟内存区域(VMA)的结构以及地址空间与页表之间的映射机制。 ... [详细]
  • Ubuntu系统下的GIF动画录制解决方案
    在撰写文章或教程时,GIF动态图能够有效地传达信息。对于Windows用户而言,ScreenToGif是一款非常实用的工具。而在Ubuntu系统中,用户同样拥有多种选择来创建GIF动画,本文将重点介绍两款录屏工具——Byzanz和Peek。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 16.04 系统上配置 Qt 5.5 的交叉编译环境,特别针对 i.MX6 平台进行了优化设置。内容涵盖从基本的软件安装到高级配置的全过程。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器
    本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。 ... [详细]
  • AcetoneISO:Ubuntu Linux下的全能虚拟光驱工具
    AcetoneISO 是一款功能强大的虚拟光驱软件,适用于 Linux 和 Mac 系统。它支持多种映像文件格式的挂载和转换,并提供丰富的文件管理功能。 ... [详细]
  • 本文详细介绍了如何在 CentOS 7 及其衍生发行版(如 Red Hat, Oracle, Scientific Linux 7)上安装和完全卸载 GitLab。包括安装必要的依赖关系、配置防火墙、安装 GitLab 软件包以及常见问题的解决方法。 ... [详细]
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社区 版权所有