iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >如何解决使用Linux命令行时出现的错误提示
  • 145
分享到

如何解决使用Linux命令行时出现的错误提示

2023-06-16 14:06:32 145人浏览 独家记忆
摘要

这篇文章主要介绍了如何解决使用linux命令行时出现的错误提示,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。你在使用 Linux 命令行时曾经得到过“拒绝访问(Permiss

这篇文章主要介绍了如何解决使用linux命令行时出现的错误提示,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

你在使用 Linux 命令行时曾经得到过“拒绝访问(Permission denied)”的错误提示吗?这可能是因为你正在尝试执行一个需要 root 权限的操作。例如,下面的截图展示了当我尝试复制一个二进制文件到一个系统目录时产生的错误。

如何解决使用Linux命令行时出现的错误提示

shell 的拒绝访问

那么该怎么解决这个错误?很简单,使用 sudo 命令。

如何解决使用Linux命令行时出现的错误提示

用 sudo 运行命令

用户运行此命令后会被提示输入他们(自己)的登录密码。一旦输入了正确的密码,操作将会成功执行。

毫无疑问,sudo 是任何在 Linux 上使用命令行的人都必须知道的命令。但是,为了更负责、更有效地使用该命令,你还是要知道一些相关(及深入)的细节。这正是我们将会在这篇文章中讨论的。

在我们继续之前,值得提一下的是,这篇文章所提到的所有命令指示都已经在 ubuntu 14.04 LTS 下的 4.3.11 版 Bash 下通过测试

什么是 sudo

正如你们大部分人所知道的,sudo 用来执行需要提升权限(通常是作为 root 用户)的命令。在这篇文章之前的简介部分已经讨论过这样的一个例子。然而,如果你想的话,你能用 sudo 以其它(非 root )用户运行命令。

这是由工具提供的 -u 命令行选项所实现的。举个例子,如下例所展示的那样,我(himanshu)尝试将一个在其他用户(howtoforge)的 Home 目录中的文件重命名,但是得到一个“访问拒绝”的错误。然后我加上 sudo -u howtoforge 后用同样的“mv”命令,命令成功执行了:

如何解决使用Linux命令行时出现的错误提示

什么是 sudo

任何人都能用 sudo 吗?

不是。一个用户要能使用 sudo ,应该在 /etc/sudoers 文件里有一条跟该用户相关的信息。下述摘自 Ubuntu 网站的一段能讲得更清楚:

/etc/sudoers 文件控制了谁能以哪个用户的身份在哪个机器上运行什么命令,还可以控制特别的情况,例如对于特定的命令是否需要输入密码。这个文件由别名aliases(基本变量)和用户标识user specifications(控制谁能运行什么命令)组成。

如果你正在使用 Ubuntu,让一个用户能运行 sudo 命令很容易:你所需要做的就是把账户类型改成管理员administrator。这可直接在 系统设置System Settings -> 用户账户 User Accounts里完成。

如何解决使用Linux命令行时出现的错误提示

sudo 用户

首先解该窗口:

如何解决使用Linux命令行时出现的错误提示

unlocking window

然后选择你想改变用户类型的用户,然后将类型改成管理员administrator。

如何解决使用Linux命令行时出现的错误提示

choose sudo accounts

然而,如果你不使用 Ubuntu,或者你的发行版没有提供这个特性,你可以手动编辑 /etc/sudoers 文件来实现此改变。要在文件中添加这样的一行:

[user]    ALL=(ALL:ALL) ALL

无需赘言,[user] 应该用你想提升 sudo 权限的用户的用户名所代替。在这里值得提到的一件重要的事情是,官方建议通过 visudo 命令编辑该文件 —— 你需要做的就是运行下述命令:

sudo visudo

为了说清究竟是怎么一回事,这里有段从 visudo 手册里的摘要:

visudo 以安全的模式编辑 sudoers 文件。visudo 锁定 sudoers 文件以防多个编辑同时进行,提供基本的检查(sanity checks)和语法错误检查。如果 sudoers 文件现在正在被编辑,你将会收到一个信息提示稍后再试。

关于 visudo 的更多信息,前往这里。

什么是 sudo 会话

如果你经常使用 sudo 命令,你肯定注意到过当你成功输入一次密码后,可以不用输入密码再运行几次 sudo 命令。但是一段时间后,sudo 命令会再次要求你的密码。

这种现象跟运行 sudo 命令数目无关,跟时间有关。是的,sudo 默认在输入一次密码后 15 分钟内不会再次要求密码。15 分钟后,你会再次被要求输入密码。

然而,如果你想的话,你能改变这种现象。用以下命令打开 /etc/sudoers 文件:

sudo visudo

找到这一行:

Defaults env_reset

如何解决使用Linux命令行时出现的错误提示

env_reset

然后在这行***添加以下变量:

Defaults env_reset,timestamp_timeout=[new-value]

[new-value] 为想要 sudo 会话持续的时间数。例如,设数值为 40。

如何解决使用Linux命令行时出现的错误提示

sudo timeout value

如果你希望每次使用 sudo 命令时都要求输入密码,你可以把这个变量赋值为 0 。想要 sudo 会话永远不过时,应赋值为 -1。

注意将 timestamp_timeout 的值赋为 “-1” 是强烈不推荐的。

sudo 密码

你可能注意过,当 sudo 要求输入密码然后你开始输入时,不会显示任何东西 —— 甚至连常规的星号都没有。虽然这不是什么大问题,不过一些用户就是希望显示星号。

好消息是那有可能也很容易做到。所有你需要做的就是在 /etc/sudoers 文件里将下述的行:

Defaults env_reset

改成

Defaults env_reset,pwfeedback

然后保存文件。

现在,无论什么时候输入 sudo 密码,星号都会显示。

如何解决使用Linux命令行时出现的错误提示

hide the sudo passWord

一些重要的 sudo 命令行参数

除了 -u 命令行参数(我们已经在这篇教程的开始部分讨论过了),还有其他重要的 sudo 命令行参数值得注意。在这部分,我们将会讨论其中一些。

-k 参数

考虑下这种情况:输入密码后你刚刚运行了几个 sudo 驱动的命令。现在,如你所知,sudo 会话默认保持 15 分钟。假设在这会话期间,你需要让某些人访问你的终端,但你不想让他们可以使用 sudo ,你将会怎么做?

还好,有 -k 命令行参数允许用户取消 sudo 权限。这是 sudo 帮助页面(man page)对此的解释:

-k, --reset-timestamp

不带任何命令使用时,撤销用户缓存的凭据。换句话讲,下一次使用 sudo 将会要求输入密码。使用这个参数不需要密码,也可以放到一个 .loGout 文件中来撤销 sudo 权限。

当与一个命令,或者一个可能需要密码的操作一起用时,这个参数将会导致 sudo 忽略用户缓存的凭据。结果是 sudo 要求输入密码(如果这是被安全策略所要求的),而且不会更新用户缓存的凭据。

-s 参数

有时你的工作要求你运行一堆需要 root 权限的命令,你不想每次都输入密码。你也不想通过改变 /etc/sudoers 文件调整 sudo 会话的过期时限。

这种情况下,你可以用 sudo 的 -s 参数。这是 sudo 帮助页面对此的解释:

-s, --shell

如果设置了 SHELL 环境变量或者调用用户的密码数据库指定了 shell,就运行该 shell 。如果指定了命令,命令将会通过 shell 的 -c 参数将命令传递给该 shell 执行。如果没有指定命令,会执行一个交互式 shell。

所以,基本上这命令参数做的是:

  • 启动一个新的 shell - 至于是哪一个 shell,参照 SHELL 环境变量赋值。如果 $SHELL 是空的,将会用 /etc/passwd 中定义的 shell。

  • 如果你用 -s 参数传递了一个命令名(例如 sudo -s whoami),实际执行的是 sudo /bin/bash -c whoami。

  • 如果你没有尝试执行其他命令(也就是说,你只是要运行 sudo -s),你将会得到一个有 root 权限的交互式的 shell。

请记住,-s 命令行参数给你一个有 root 权限的 shell,但那不是 root 环境 —— 还是执行的你自己的 .bashrc 。例如,在 sudo -s 运行的新 shell 里,执行 whoami 命令仍会返回你的用户名,而非 root 。

-i 参数

-i 参数跟我们讨论过的 -s 参数相像。然而,还是有点区别。一个重要的区别是 -i 给你的是 root 环境,意味着你的(用户的).bashrc 被忽略。这就像没有显式地用 root 登录也能成为 root 。此外,你也不用输入 root 用户密码。

重要:请注意 su 命令也能让你切换用户(默认切换到 root )。这个命令需要你输入 root 密码。为了避免这一点,你可以使用 sudo 执行它(sudo su),这样你只需要输入你的登录密码。然而,su 和 sudo su 有隐含的区别 —— 要了解它们,以及它们和 sudo -i 的区别,请看这里 。

感谢你能够认真阅读完这篇文章,希望小编分享的“如何解决使用Linux命令行时出现的错误提示”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网操作系统频道,更多相关知识等着你来学习!

--结束END--

本文标题: 如何解决使用Linux命令行时出现的错误提示

本文链接: https://www.lsjlt.com/news/283960.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决使用Linux命令行时出现的错误提示
    这篇文章主要介绍了如何解决使用Linux命令行时出现的错误提示,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。你在使用 Linux 命令行时曾经得到过“拒绝访问(Permiss...
    99+
    2023-06-16
  • MySQL命令提示符出现输入错误时如何修改前面的命令
    目录当前问题解决过程具体步骤解决案例当前问题 ​ 在MySQL命令提示符中输入多行命令时,突然发现前面有错误,是很令人头疼的事情。大部人都知道可以通过输入\c来取消前边的...
    99+
    2022-11-12
  • ubuntu更新源命令出现错误如何解决
    如果在使用"sudo apt-get update"命令更新Ubuntu源时出现错误,可以尝试以下几种解决方法:1. 检查网络连接:...
    99+
    2023-08-08
    ubuntu
  • 如何在Linux上解决PHP加载时的错误提示?
    在Linux系统上,PHP是一种非常流行的脚本语言。然而,在使用PHP时,有时会遇到错误提示,这会影响我们的开发工作。本文将介绍如何在Linux上解决PHP加载时的错误提示。 一、错误提示的原因 在Linux系统中,PHP的错误提示通常由以...
    99+
    2023-11-04
    load linux linux
  • 使用Unity3D时出现DllNotFoundException错误如何解决
    这篇文章给大家介绍使用Unity3D时出现DllNotFoundException错误如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。起因unity程序build到pc上,拿到其他人的机器上结果有些功能不正常,看...
    99+
    2023-06-14
  • 如何利用Oracle命令解决函数运行错误
    1 问题 自定义了一个 Oracle 函数。编译正常;使用 PL/SQL Developer 的 Test 窗口模式,测试通过。但 Java 直接调用失败;使用 PL/SQL Developer 的 SQ...
    99+
    2022-10-18
  • word提示向程序发送命令出现问题如何解决
    遇到向程序发送命令时出现问题,可以考虑以下几种解决方法:1. 检查命令格式:确保命令的格式正确,并且符合程序的要求。可以查阅程序的文...
    99+
    2023-10-09
    word
  • Win10系统中命令提示符出现字符乱码如何解决
    本篇文章给大家分享的是有关Win10系统中命令提示符出现字符乱码如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。解决步骤如下:打开控制面板,选择“更改日期、时间或数字格式...
    99+
    2023-06-10
  • XP在安装驱动时弹出“read pcsc drive error”错误提示如何解决
    这篇文章主要介绍“XP在安装驱动时弹出“read pcsc drive error”错误提示如何解决”,在日常操作中,相信很多人在XP在安装驱动时弹出“read pcsc drive error”错误提示如何解决问题上存在疑惑,小编查阅了各...
    99+
    2023-06-27
  • oracle关键字在mybatis中使用时出现错误如何解决
    oracle关键字在mybatis中使用时出现错误如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。解决方式 可以使用resultMap**示例代...
    99+
    2023-05-31
    mybatis oracle
  • 使用php将时间戳转日期出现错误如何解决
    使用php将时间戳转日期出现错误如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php时间戳转日期出错?今天用时间戳转日期,居然day出现了51号,把我弄...
    99+
    2023-06-15
  • 如何解决phpmyadmin出现令牌不符提示的问题
    这篇文章给大家分享的是有关如何解决phpmyadmin出现令牌不符提示的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。phpmyadmin出现令牌不符提示的解决办法:首先打开...
    99+
    2022-10-18
  • 在使用vuex的时候出现commit未定义错误的解决
    目录使用vuex的时候出现commit未定义错误出现的原因错误展现过程vuex模块化 commit()时报错 unknown mutation type:xxx废话不多说直接上问题总...
    99+
    2023-01-10
    vuex使用 commit未定义错误 vuex commit未定义错误
  • 使用studio时出现java.lang.UnsatisfiedLinkError报错如何解决
    这篇文章将为大家详细讲解有关使用studio时出现java.lang.UnsatisfiedLinkError报错如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。studio中碰到的j...
    99+
    2023-05-31
    studio unsatisfiedlinkerror ava
  • 搬瓦工恢复快照时出现“Failed to restore snapshot (729102)”错误提示的解决方法
    本文记录下笔者在迁移一台搬瓦工vps的时候出现的问题,都是迁移后出现了下面的提示:Failed to restore snapshot (729102) Additional information: Error 590730596311,...
    99+
    2023-06-05
  • Vue中使用v-for语句时抛出错误如何解决
    这篇文章将为大家详细讲解有关Vue中使用v-for语句时抛出错误如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Vue 中使用v-for语句抛出错误的...
    99+
    2022-10-19
  • Win8系统打开excel提示“向程序发送命令时出现问题”的解决方法
      Win8系统打开excel提示“向程序发送命令时出现问题”,如下图所示:   Win8系统打开excel提示“向程序发送命令时出现问题”的解决方法: ...
    99+
    2022-06-04
    解决方法 命令 提示
  • 如何解决CentOS执行ftp命令提示ftp:command not found的问题
    本篇内容主要讲解“如何解决CentOS执行ftp命令提示ftp:command not found的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决CentOS执行ftp命令提示ftp...
    99+
    2023-06-10
  • 使用vuex出现commit未定义错误如何解决
    这篇文章主要介绍“使用vuex出现commit未定义错误如何解决”,在日常操作中,相信很多人在使用vuex出现commit未定义错误如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用vuex出现com...
    99+
    2023-07-04
  • 使用IDEA进行打包时代码出现报错如何解决
    本篇文章给大家分享的是有关使用IDEA进行打包时代码出现报错如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、问题由来报错信息如下:Failed to execute ...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作