linux之sudo使用技巧汇总

sudo和su之间的区别

su命令是当前用户用来切换到另外一个用户的命令,参数为用户名。执行时会要求输入密码,这个密码是你要切换到的用户的密码。

sudo 表示 “superuser do”。它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,绝大部分时候我们用它来以提升的权限来运行命令。

sudo命令工作流程

sudo的配置

USER/GROUP HOST=(USER[:GROUP]) [NOPASSWD:] COMMANDS
# 允许 sudo 组执行所有命令
%sudo ALL=(ALL:ALL) ALL

# 允许用户执行所有命令,且无需输入密码
escape ALL =(ALL) NOPASSWD: ALL

# 仅允许用户执行 echo, ls 命令
escape ALL =(ALL) NOPASSWD: /bin/echo /bin/ls

# 运行本机的用户执行关机命令
escape localhost=/sbin/shutdown -h now

# 允许 users 用户组中的用户像 root 用户一样使用 mount、unmount、chrom 命令
%users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

以提升的权限执行命令

> sudo cat /etc/passwd

当你执行这个命令时,它会询问 rumenz 的密码,而不是root用户的密码。

以其他用户执行命令

> sudo -u deploy whoami
deploy

内置命令行为

sudo 的一个限制是 —— 它无法使用 Shell 的内置命令。history记录是内置命令,如果你试图用sudo执行这个命令,那么会提示如下的未找到命令的错误:

> sudo history 
[sudo] password for rumenz: 
sudo: history: command not found

我们可以访问 root shell,并在那里执行任何命令,包括 Shell 的内置命令。
要访问 root shell, 执行下面的命令:

> [rumenz@localhost]$ sudo bash
> [root@localhost rumenz]# history

sudo执行多条命令

sudo -- bash -c 'pwd; hostname; whoami'

限制用户执行某些命令

为了提供受控访问,我们可以限制 sudo 用户只执行某些命令。例如,下面的行只允许执行 echo 和 ls 命令 。

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

在 vim 里面使用 sudo 命令

我们编辑系统的配置文件时,在保存时才意识到我们需要 root 访问权限来执行此操作。因为这个可能让我们丢失我们对文件的改动。没有必要惊慌,我们可以在 Vim 中使用下面的命令来解决这种情况

:w !sudo tee %

sudo的原理

> ls -l /usr/bin/sudo
---s--x--x. 1 root root 143248 Jun 28  2018 /usr/bin/sudo

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

当我们不使用sudo执行 id 命令时,将显示用户 rumenz 的 id。

> id
uid=1001(rumenz) gid=1001(rumenz) groups=1001(rumenz)

当使用sudo id时

uid=0(root) gid=0(root) groups=0(root)

sudo -i

sudo -i:可以切换到root状态下. 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行exit或logout。

sudo !!

Linux命令行记录以前执行的命令。可以通过按向上箭头访问这些记录。要以提升的特权重复执行最后一个命令,请使用

> sudo !!

sudo !n

想要作为root授权来运行一个命令,但是忘记使用“sudo”了?不要担心。我们可以使用”sudo !!”结合命令历史来执行你想要执行的命令。参数”!!“和”!-1“作用一样,都是允许用户作为root来执行我们刚才输入的命令。当然,以此类推,我们可以使用下面命令来执行倒数第二个命令:

> sudo !-2

原文链接:https://rumenz.com/rumenbiji/linux-sudo-skills.html

展开阅读全文

页面更新:2024-05-20

标签:百分号   双连   冒号   感叹号   其他用户   账户   进程   命令   权限   提示   参数   密码   文件   用户   系统   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top