您的位置 首页 IC

关于Linux sudo指令运用的10个技巧

关于Linux sudo命令使用的10个技巧-udo 命令与安全策略配合使用,默认安全策略是 sudoers,可以通过文件 /etc/sudoers 来配置。其安全策略具有高度可拓展性。人们可以开发和分发他们自己的安全策略作为插件。

      sudo 标明 “superuser do”。 它答应已验证的用户以其他用户的身份来运转指令。其他用户可所以普通用户或许超级用户。可是,大部分时分咱们用它来以进步的权限来运转指令。

  sudo 指令与安全策略合作运用,默许安全策略是 sudoers,能够经过文件 /etc/sudoers 来装备。其安全策略具有高度可拓展性。人们能够开发和分发他们自己的安全策略作为插件。

  与 su 的差异

关于Linux sudo指令运用的10个技巧

  在 GNU/Linux 中,有两种方法能够用进步的权限来运转指令:

  运用 su 指令

  运用 sudo 指令

  su 标明 “switch user”。运用 su,咱们能够切换到 root 用户而且履行指令。可是这种方法存在一些缺陷:

  咱们需求与别人同享 root 的暗码。

  由于 root 用户为超级用户,咱们不能颁发受控的拜访权限。

  咱们无法检查用户在做什么。

  sudo 以共同的方法处理了这些问题。

  首要,咱们不需求退让来共享 root 用户的暗码。普通用户运用他们自己的暗码就能够用进步的权限来履行指令。

  咱们能够操控 sudo 用户的拜访,这意味着咱们能够约束用户只履行某些指令。

  除此之外,sudo 用户的一切活动都会被记载下来,因而咱们能够随时检查进行了哪些操作。在根据 Debian 的 GNU/Linux 中,一切活动都记载在 /var/log/auth.log 文件中。

  实践着手操作 sudo

  现在,咱们对 sudo 有了大致的了解。让咱们实践着手操作吧。为了演示,我运用 Ubuntu。可是,其它发行版别的操作应该是相同的。

  答应 sudo 权限

  让咱们增加普通用户为 sudo 用户吧。在我的景象中,用户名为 linuxtechi。

  按如下所示修改 /etc/sudoers 文件:

  $ sudo visudo

  增加以下行来答应用户 linuxtechi 有 sudo 权限:

  linuxtechi ALL=(ALL) ALL

  上述指令中:

  linuxtechi 标明用户名

  第一个 ALL 指示答应从任何终端、机器拜访 sudo

  第二个 (ALL) 指示 sudo 指令被答应以任何用户身份履行

  第三个 ALL 标明一切指令都能够作为 root 履行

  以进步的权限履行指令

  要用进步的权限履行指令,只需求在指令前加上 sudo,如下所示:

  $ sudo cat /etc/passwd

  当你履行这个指令时,它会问询 linuxtechi 的暗码,而不是 root 用户的暗码。

  以其他用户履行指令

  除此之外,咱们能够运用 sudo 以另一个用户身份履行指令。例如,鄙人面的指令中,用户 linuxtechi 以用户 devesh 的身份履行指令:

  $ sudo -u devesh whoami [sudo] password for linuxtechi: devesh

  内置指令行为

  sudo 的一个约束是 —— 它无法运用 Shell 的内置指令。例如, history 记载是内置指令,假如你试图用 sudo 履行这个指令,那么会提示如下的未找到指令的过错:

  $ sudo history [sudo] password for linuxtechi: sudo: history: command not found

  拜访 root shell

  为了战胜上述问题,咱们能够拜访 root shell,并在那里履行任何指令,包含 Shell 的内置指令。

  要拜访 root shell, 履行下面的指令:

  $ sudo bash

  履行完这个指令后——您将观察到提示符变为井号(#)。

  技巧

  这节咱们将评论一些有用的技巧,这将有助于进步生产力。大多数指令可用于完结日常使命。

  以 sudo 用户履行之前的指令

  让咱们假定你想用进步的权限履行之前的指令,那么下面的技巧将会很有用:

  $ sudo !4

  上面的指令将运用进步的权限履行历史记载中的第 4 条指令。

  在 Vim 里边运用 sudo 指令

  许多时分,咱们修改体系的装备文件时,在保存时才意识到咱们需求 root 拜访权限来履行此操作。由于这个或许让咱们丢掉咱们对文件的改动。没有必要慌张,咱们能够在 Vim 中运用下面的指令来处理这种状况:

  :w !sudo tee %

  上述指令中:

  冒号 (:) 标明咱们处于 Vim 的退出形式

  感叹号 (!) 标明咱们正在运转 shell 指令

  sudo 和 tee 都是 shell 指令

  百分号 (%) 标明从当前行开端的一切行

  运用 sudo 履行多个指令

  至今咱们用 sudo 只履行了单个指令,但咱们能够用它履行多个指令。只需求用分号 (;) 离隔指令,如下所示:

  $ sudo — bash -c ‘pwd; hostname; whoami’

  上述指令中

  双连字符 (–) 中止指令行切换

  bash 标明要用于履行指令的 shell 称号

  -c 选项后边跟着要履行的指令

  无暗码运转 sudo 指令

  当第一次履行 sudo 指令时,它会提示输入暗码,默许景象下暗码被缓存 15 分钟。可是,咱们能够防止这个操作,并运用 NOPASSWD 关键字禁用暗码认证,如下所示:

  linuxtechi ALL=(ALL) NOPASSWD: ALL

  约束用户履行某些指令

  为了供给受控拜访,咱们能够约束 sudo 用户只履行某些指令。例如,下面的行只答应履行 echo 和 ls 指令 。

  linuxtechi ALL=(ALL) NOPASSWD: /bin/echo /bin/ls

  深化了解 sudo

  让咱们进一步深化了解 sudo 指令。

  $ ls -l /usr/bin/sudo -rwsr-xr-x 1 root root 145040 Jun 13 2017 /usr/bin/sudo

  假如仔细观察文件权限,则发现 sudo 上启用了 setuid 位。当任何用户运转这个二进制文件时,它将以具有该文件的用户权限运转。在所示景象下,它是 root 用户。

  为了演示这一点,咱们能够运用 id 指令,如下所示:

  $ id uid=1002(linuxtechi) gid=1002(linuxtechi) groups=1002(linuxtechi)

  当咱们不运用 sudo 履行 id 指令时,将显现用户 linuxtechi 的 id。

  $ sudo id uid=0(root) gid=0(root) groups=0(root)

  可是,假如咱们运用 sudo 履行 id 指令时,则会显现 root 用户的 id。

  定论

  从这篇文章能够看出 —— sudo 为普通用户供给了更多受控拜访。运用这些技能,多用户能够用安全的方法与 GNU/Linux 进行交互。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/102760.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部