美文网首页每天写500字每周500字每天写1000字
linux命令行学习(32):用sudo命令以不同用户身份执行命

linux命令行学习(32):用sudo命令以不同用户身份执行命

作者: 金石明镜 | 来源:发表于2019-11-01 21:07 被阅读0次

    sudo命令在很多方面都类似于su命令,但是它另外还有一些重要的功能。

    一、命令格式

    sudo [-bhHpV][-s ][-u <用户>][指令]

    sudo [-klv]

    参数

      -b  在后台执行指令。

      -h  显示帮助。

      -H  将HOME环境变量设为新身份的HOME环境变量。

      -k  结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。

      -l  列出目前用户可执行与无法执行的指令。

      -p  改变询问密码的提示符号。

      -s  执行指定的shell。

      -u  <用户>  以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。

      -v  延长密码有效期限5分钟。

      -V  显示版本信息。

      -S  从标准输入流替代终端来获取密码

    最简单的格式是:sudo <命令>

    这是以超级用户身份执行指定的命令。

    注意,与su命令不一样,sudo后面的命令不需要加单引号。

    加-u选项,以其他普通用户身份执行命令。

    在第一次以某一用户身份执行命令时,需要输入密码,以后不需要输入密码。注意,输入的是自己的密码。这与su命令不一样,在那里要求输入对方的密码。

    在输入sudo命令后,系统将提示输入用户自己的密码(而不是超级用户或指定用户的密码),而且一旦认证通过,指定的命令就被执行。

    su命令和sudo命令之间的一个重要区别在于sudo命令并不需要启动一 个新的shell环境,而且也不需要加载另一个用户的运行环境。这意味着,使用sudo命令的时候并不需要用单引号把命令行引起来。

    二、is not in the sudoer file问题怎么解决?

    在执行sudo时,可能会出现当前用户名is not in the sudoers file的提示。这样就无法执行sudo命令。

    这时,首先切换到root用户,执行下面命令:

    sudo visudo

    这个命令会打开一个文本文件,在打开的文件的最后一行添加:

    user ALL=(ALL) ALL

    其中user是当前用户名。存盘后退出。

    这个文件就是sudoers文件。我们将user加进了这个文件,就可以在user中执行sudo命令了。

    三、查看sudo命令可以授予的权限

    要想知道sudo命令可以授予哪些权限,可以使用-l选项来查看:

    $sudo -l

    相关文章

      网友评论

        本文标题:linux命令行学习(32):用sudo命令以不同用户身份执行命

        本文链接:https://www.haomeiwen.com/subject/pevqbctx.html