13.4.2 【Linux】sudo

简介: 13.4.2 【Linux】sudo

相对于 su 需要了解新切换的使用者密码 (常常是需要 root 的密码), sudo 的执行则仅需要自己的密码即可。sudo 可以让你以其他用户的身份执行指令 (通常是使用 root 的身份来执行指令),因此并非所有人都能够执行sudo , 而是仅有规范到 /etc/sudoers 内的用户才能够执行 sudo 这个指令。


事实上,一般用户能够具有 sudo 的使用权,就是管理员事先审核通过后,才开放 sudo的使用权的!因此,除非是信任用户,否则一般用户默认是不能操作 sudo 的。


sudo 的指令用法


由于一开始系统默认仅有 root 可以执行 sudo ,因此下面的范例我们先以 root 的身份来执行,等到谈到 visudo 时,再以一般使用者来讨论其他 sudo 的用法吧! sudo 的语法如下:


39972119d4c14041b41e5cee92298114.png


sudo的执行流程是这样的:


1. 当使用者执行 sudo 时,系统于 /etc/sudoers 文件中搜寻该使用者是否有执行 sudo 的权限;


2. 若使用者具有可执行 sudo 的权限后,便让使用者“输入使用者自己的密码”来确认;


3. 若密码输入成功,便开始进行 sudo 后续接的指令(但 root 执行 sudo 时,不需要输入密码);


4. 若欲切换的身份与执行者身份相同,那也不需要输入密码。


sudo 执行的重点是:“能否使用 sudo 必须要看 /etc/sudoers 的设置值, 而可使用sudo 者是通过输入使用者自己的密码来执行后续的指令串”。由于能否使用与 /etc/sudoers有关, 所以我们当然要去编辑 sudoers 文件。不过,因为该文件的内容是有一定的规范的,因此直接使用 vi 去编辑是不好的。 此时,我们得要通过 visudo 去修改这个文件。


visudo 与 /etc/sudoers


除了 root 之外的其他帐号,若想要使用 sudo 执行属于 root 的权限指令,则 root 需要先使用 visudo 去修改 /etc/sudoers ,让该帐号能够使用全部或部分的root 指令功能。为什么要使用 visudo 呢?这是因为 /etc/sudoers 是有设置语法的,如果设置错误那会造成无法使用 sudo 指令的不良后果。因此才会使用 visudo 去修改, 并在结束离开修改画面时,系统会去检验 /etc/sudoers 的语法就是了。


一般来说,visudo 的设置方式有几种简单的方法,下面我们以几个简单的例子来分别说明:


假如我们要让 vbird1 这个帐号可以使用 root 的任何指令,基本上有两种作法,第一种是直接通过修改 /etc/sudoers ,方法如下:

c428438cc4294deab64dd21d67411999.png

e9caf2a8b6b246538cb1aedb961e8b18.png

上面这一行的四个元件意义是:


1. “使用者帐号”:系统的哪个帐号可以使用 sudo 这个指令的意思;


2. “登陆者的来源主机名称”:当这个帐号由哪部主机连线到本 Linux 主机,意思是这个帐号可能是由哪一部网络主机连线过来的, 这个设置值可以指定用户端计算机(信任的来源的意思)。默认值 root 可来自任何一部网络主机


3. “(可切换的身份)”:这个帐号可以切换成什么身份来下达后续的指令,默认 root 可以切换成任何人;


4. “可下达的指令”:可用该身份下达什么指令?这个指令请务必使用绝对路径撰写。 默认root 可以切换任何身份且进行任何指令之意。


那个 ALL 是特殊的关键字,代表任何身份、主机或指令的意思。所以,我想让 vbird1 可以进行任何身份的任何指令, 就如同上表特殊字体写的那样,其实就是复制上述默认值那一行,再将 root 改成 vbird1 即可。


II. 利用 wheel 群组以及免密码的功能处理 visudo


90087116ccb049d3b23fcc33ccb575e1.png


上面的设置值会造成“任何加入 wheel 这个群组的使用者,就能够使用 sudo 切换任何身份来操作任何指令”的意思。 你当然可以将 wheel 换成你自己想要的群组名。接下来,请分别切换身份成为 pro1 及 pro2 试看看 sudo 的运行。


2b3c9f7781f6494c84e2d988c885d398.png


如果你想要让 pro3 也支持这个 sudo 的话,不需要重新使用 visudo ,只要利用 usermod 去修改 pro3 的群组支持,让 pro3 用户加入 wheel 群组当中,那他就能够进行 sudo。


从 CentOS 7 开始,在 sudoers 文件中,默认已经开放 %wheel 那一行,以前的CentOS 旧版本都是没有启用的。


96568f877af1488dad69794bf92a7f53.png


III. 有限制的指令操作:


比方说,系统上面的 myuser1 仅能够帮 root 修改其他使用者的密码时,亦即“当使用者仅能使用 passwd 这个指令帮忙 root 修改其他用户的密码”时,你该如何撰写呢?可以这样做:


287142a2944f47e4a4cd99df5fc0e3b6.png


上面的设置值指的是“myuser1 可以切换成为 root 使用 passwd 这个指令”的意思。其中要注意的是: 指令字段必须要填写绝对路径才行!否则 visudo 会出现语法错误的状况发生! 此外,上面的设置是有问题的。


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
7月前
|
安全 Linux Shell
百度搜索:蓝易云【Linux基本功系列之sudo命令】
总结: sudo命令是Linux系统中的一个重要工具,允许普通用户以超级用户的权限执行命令,以提高系统安全性和管理灵活性。通过sudo,管理员可以精确控制用户的权限,并限制对系统资源的访问。合理使用sudo命令,可以提高系统的安全性和管理效率。
62 5
|
安全 Linux Shell
在最爱的秋天学习 linux 之 su 和 sudo
在最爱的秋天学习 linux 之 su 和 sudo
176 4
|
7月前
|
安全 网络协议 Shell
Linux sudo 以其他身份来执行命令
Linux sudo 以其他身份来执行命令
70 0
|
7月前
|
Linux Shell 文件存储
linux(二十一)sudo命令~
linux(二十一)sudo命令~
66 0
|
数据安全/隐私保护
39Linux - 用户/权限管理(为创建的普通用户添加sudo权限)
39Linux - 用户/权限管理(为创建的普通用户添加sudo权限)
74 0
|
7月前
|
Linux 数据安全/隐私保护
Linux中普通用户使用sudo命令提示lin is not in the sudoers file. This incident will be reported.
Linux中普通用户使用sudo命令提示lin is not in the sudoers file. This incident will be reported.
|
7月前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 以超级用户(root)的身份执行特权命令 sudo命令 使用指南
【Shell 命令集合 系统管理 】Linux 以超级用户(root)的身份执行特权命令 sudo命令 使用指南
192 1
|
4月前
|
安全 Linux 数据安全/隐私保护
驾驭Linux的权力:Root与Sudo
在 Linux 系统中,权限管理至关重要,Root 用户与 Sudo 命令为核心组件。Root 作为超级用户,拥有最高权限,可执行任意命令,但也带来较高安全风险,建议仅在必要时使用。Sudo 则允许系统管理员授予普通用户临时的 Root 权限以执行特定命令,提升了系统的安全性和管理灵活性。通过合理配置 Sudoers 文件,可以实现对用户权限的精细化管理。综合运用 Root 和 Sudo 可确保系统的安全稳定运行。
84 1
|
4月前
|
存储 安全 Linux
Linux权限之谜:一步步教你如何解锁sudo权限并窥视/etc/shadow的神秘面纱!
【8月更文挑战第22天】在Linux中,`sudo`命令让授权用户能以其他用户(通常是root)身份运行命令。关键的安全文件`/etc/shadow`存储用户密码哈希,仅root可读。要使用`sudo`,需确保账户被列入`sudoers`文件中。系统管理员可通过`visudo`编辑此文件来赋予用户权限,例如添加`username ALL=(ALL) NOPASSWD: ALL`行。获得`sudo`权限后,可运行`sudo cat /etc/shadow`查看文件内容,但需谨慎操作以免影响系统安全。遵循最小权限原则,确保安全使用这些强大工具。
111 2
|
5月前
|
JSON Java Linux
linux 命令使用总结:vim,nohup,find,df,du,sudo,netstat,ll,curl,lastlog
linux 命令使用总结:vim,nohup,find,df,du,sudo,netstat,ll,curl,lastlog
71 5

热门文章

最新文章