zoukankan      html  css  js  c++  java
  • ubuntu -- 不输入密码执行sudo

    作为ubuntu等桌面系统,默认登录的帐号是没有root权限的,为了提升权限来执行任务,我们一般用到 "sudo+命令" 来执行,但是不难发现我们 一般都要输入密码。那么有没有什么方法可以让我们执行sudo的时候不输入密码呢?当然有咯。那就是对sudoers文件进行修改

    如何修改sudoers?

    1、修改sudoers文件内容

    方法一:直接修改/etc/sudoers。但是不推荐,因为那样子修改很容易造成权限错乱。(手动修改的时候,由于对于格式并不是那么了解,所以编辑的时候很容易出错,因此不建议用直接修改法。)

    方法二:用visudo来进行编辑。

      进入终端,执行sudo visudo

      在#User privilege specification下面会罗列一些规则,

      

      我们现在需要做的是对我们的用户进行一些操作。假如我们的用户名为ltech

      在文件的最后一行添加:

      ltech    ALL=(ALL) NOPASSWD: ALL

    2、将你需要的登陆用户添加到拥有超级权限的组中(如:这里是将用户 ltech 添加到 admin 组,前提是admin组必须存在)

      在终端执行 sudo usermod -aG admin ltech

    3、重启服务器

     

    /etc/sudoers文件内容部分介绍

    %admin ALL=(ALL) ALL
    这行只是让admin组的用户拥有可以像任何帐号一样执行命令的能力,但是还是需要有密码的,因此我们需要把我们的 ltech 用户加入到admin组中, 所以有sudo usermod -aG admin ltech,然后是对其进行NOPASSWD定义,这行一定要在%admin ALL=(ALL) ALL 这行后面,才会生效。

    当然了这样是存在安全隐患的。所以,我们可以把最后的
    ltech ALL=(ALL) NOPASSWD: ALL 更改为对于命令进行限制,例如对于关机命令取消密码

    ltech ALL=(ALL) NOPASSWD: /sbin/shutdown, /sbin/reboot

    sudo说明

    一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。

    sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将一般用户登记在特殊的文件中(通常是/etc/sudoers),即完成 对该用户的授权(此时该用户称为“sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密 码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc /sudoers自定义),使用sudo不需要再次输入密码。

    visudo说明:

    我们可以通过visudo命令来编辑/etc/sudoers文件,visudo是一个脚本文件,也可以通过编辑工具来对/etc/sudoers进行修改

  • 相关阅读:
    linux screen工具
    nginx 启动重启脚本
    Docker入门
    时间管理定律
    贪婪算法
    指针与指针的地址
    双向链表(前插操作,删除操作)
    Trie树检索字符串
    函数调用
    字符串匹配算法
  • 原文地址:https://www.cnblogs.com/hf8051/p/5082264.html
Copyright © 2011-2022 走看看