原文链接:【信创】Linux操作系统上sudo命令解读|统信|麒麟|方德

Hello,你们好啊!明天给你们带来一篇关于在信创操作系统上sudo命令解读的文章。sudo(SuperuserDo)命令是Linux系统中十分重要的工具,它容许普通用户以超级用户(root)的身分执行命令,因而对系统进行管理和配置。本文将详尽介绍sudo命令的使用方式、配置方法及安全性审视。欢迎你们分享转发,点个关注和在看吧!

哪些是sudo命令?

sudo命令的全称是“SuperuserDo”linux解压rar,它容许用户在授权的情况下,以超级用户或其他用户的身分执行命令。与直接使用su切换到root用户不同,sudo仅在当前命令的执行期间授予超级用户权限,这样可以有效地限制权限滥用并提升系统安全性。

一、sudo的基本用法

1.sudo的基本句型

sudocommand

此命令以root权限执行command。诸如:

pdsyw@pdsyw-PC:~/Desktop$sudoapt-getupdate

以上命令以超级用户身分更新包列表。

Linux sudo命令详解 _linux登录其它用户_ 信创系统sudo使用

2.提示输入密码

在使用sudo时,系统会提示你输入当前用户的密码,而不是root的密码。这是为了验证用户身分,确保用户有权使用sudo。

二、sudo的选项

1.sudo-s

启动一个以root权限运行的交互式shell。

pdsyw@pdsyw-PC:~/Desktop$sudo-s

这让你可以临时以root身分操作,而毋须每次都输入sudo。

Linux sudo命令详解 _ 信创系统sudo使用 _linux登录其它用户

2.sudo-i

模拟root用户的登陆环境,启动一个新的shell。

pdsyw@pdsyw-PC:~/Desktop$sudo-i

与sudo-s相比,sudo-i会加载root用户的环境配置文件(如.bashrc、.profile)。

Linux sudo命令详解 _ 信创系统sudo使用 _linux登录其它用户

 信创系统sudo使用 _Linux sudo命令详解 _linux登录其它用户

3.sudo-ucommand

以指定用户的身分执行命令。诸如:

pdsyw@pdsyw-PC:~/Desktop$sudo-uwww-datals/var/

这会以www-data用户的身分列举/var/目录的内容。

Linux sudo命令详解 _linux登录其它用户_ 信创系统sudo使用

4.sudo-k

立刻忘掉用户的密码缓存,这样下一次使用sudo时会再度提示输入密码。

pdsyw@pdsyw-PC:~/Desktop$sudo-k

Linux sudo命令详解 _ 信创系统sudo使用 _linux登录其它用户

5.sudo-l

列举当前用户被准许执行的命令,这取决于sudoers文件中的配置。

pdsyw@pdsyw-PC:~/Desktop$sudo-l

 信创系统sudo使用 _linux登录其它用户_Linux sudo命令详解

6.sudo!!

以sudo重新执行上一条命令,这是一个十分有用的快捷方法。假如你忘掉在上一个命令前加sudo,可以使用:

pdsyw@pdsyw-PC:~/Desktop$sudo!!

 信创系统sudo使用 _Linux sudo命令详解 _linux登录其它用户

7.sudovisudo

安全编辑sudoers文件的工具。visudo会在保存时检测文件的句型,避免错误配置。

pdsyw@pdsyw-PC:~/Desktop$sudovisudo

Linux sudo命令详解 _linux登录其它用户_ 信创系统sudo使用

三、sudoers文件

/etc/sudoers文件是sudo的配置文件,用于定义什么用户可以执行什么命令。一般使用visudo来编辑这个文件,以确保配置的安全性和正确性。

sudoers文件的基本格式

linux登录其它用户_ 信创系统sudo使用 _Linux sudo命令详解

sudoers文件中的一条规则一般是这样的格式:

userhost=(runas_user)command

user:可以是单个用户名、用户组(以%开头)或ALL表示所有用户。

host:表示准许从什么主机运行命令。一般为ALL。

runas_user:指定以那个用户的身分运行命令。一般是ALL,意味着可以以任何用户身分运行。

command:指定用户可以运行的命令。也可以是ALL,表示准许运行所有命令。

示例:

pdsywALL=(ALL:ALL)ALL

表示用户pdsyw可以在所有主机上以任何用户身分运行任何命令。

pdsyw@pdsyw-PC:~/Desktop$sudocat/etc/sudoers

 信创系统sudo使用 _Linux sudo命令详解 _linux登录其它用户

四、安全性考虑

1.最小权限原则

只授予用户执行其工作所需的最小权限,防止过度授权。

2.防止使用sudo执行毋须要的命令

以root权限执行命令时要特别慎重,错误的命令可能造成系统严重受损。

3.慎用sudo-s和sudo-i

在rootshell中操作时,极易因误操作造成系统问题。

4.定期审查sudoers文件

确保没有毋须要的用户或命令权限,并删掉不再须要的条目。

5.使用命令别称

在sudoers文件中,可以使用别称来限制用户只能运行特定的命令集合。

五、特殊用例

1.时间限制

linux登录其它用户_Linux sudo命令详解 _ 信创系统sudo使用

在sudo的配置中,时间限制主要是指在用户首次输入密码后的一段时间内,容许用户不须要再度输入密码即可继续使用sudo命令。这个时间限制可以通过配置sudoers文件中的timestamp_timeout参数来控制。在使用visudo进行编辑并保存后,配置会立刻生效。上次使用sudo时,系统会依照你配置的时间限制进行操作。通过合理配置timestamp_timeout,你可以在安全性与便利性之间取得平衡,既确保系统不受未经授权的操作影响,又让用户在日常操作中愈发高效。

1)使用visudo编辑sudoers文件

建议使用visudo命令来编辑/etc/sudoers文件,以防止句型错误:

pdsyw@pdsyw-PC:~/Desktop$sudovisudo

Linux sudo命令详解 _linux登录其它用户_ 信创系统sudo使用

2)配置timestamp_timeout

在sudoers文件中,你可以设置Defaults行中的timestamp_timeout参数来控制时间限制。timestamp_timeout的值以分钟为单位,指定用户在输入密码后可以不再提示密码的时间。

比如:

Defaultstimestamp_timeout=15

这意味着用户在成功使用sudo输入密码后,在接出来的15分钟内,不须要再度输入密码。

pdsyw@pdsyw-PC:~/Desktop$sudovisudo

pdsyw@pdsyw-PC:~/Desktop$sudocat/etc/sudoers

linux登录其它用户_Linux sudo命令详解 _ 信创系统sudo使用

3)设置立刻过期

立刻过期:假如你将timestamp_timeout设置为0linux登录其它用户,这么用户每次使用sudo命令时就会被要求输入密码。

Defaultstimestamp_timeout=0

pdsyw@pdsyw-PC:~/Desktop$sudovisudo

pdsyw@pdsyw-PC:~/Desktop$sudocat/etc/sudoers

 信创系统sudo使用 _Linux sudo命令详解 _linux登录其它用户

4)设置永久有效

假如你将timestamp_timeout设置为正数(比如-1),用户只需在首次使用sudo时输入密码,之后在同一终端会话上将不再须要输入密码,直至终端会话结束或用户自动注销。

Defaultstimestamp_timeout=-1

pdsyw@pdsyw-PC:~/Desktop$sudovisudo

pdsyw@pdsyw-PC:~/Desktop$sudocat/etc/sudoers

Linux sudo命令详解 _linux登录其它用户_ 信创系统sudo使用

linux登录其它用户_ 信创系统sudo使用 _Linux sudo命令详解

5)为特定用户配置时间限制

你可以为特定用户配置不同的时间限制。诸如:

Defaults:pdsywtimestamp_timeout=10

这表示pdsyw用户在使用sudo时,输入密码后的10分钟内不须要再度输入密码。

pdsyw@pdsyw-PC:~/Desktop$sudovisudo

pdsyw@pdsyw-PC:~/Desktop$sudocat/etc/sudoers

 信创系统sudo使用 _linux登录其它用户_Linux sudo命令详解

6)为特定命令配置不同的时间限制

你也可以对特定命令设置不同的timestamp_timeout。诸如:

Defaults!/usr/bin/apt-gettimestamp_timeout=5

这表示使用apt-get命令时,密码的有效时间为5分钟。

pdsyw@pdsyw-PC:~/Desktop$sudovisudo

pdsyw@pdsyw-PC:~/Desktop$sudocat/etc/sudoers

 信创系统sudo使用 _linux登录其它用户_Linux sudo命令详解

7)示例:配置文件中的配置

假定你希望默认的sudo密码超时时间为10分钟,但对于特定用户pdsyw,超时时间为20分钟,对于命令/usr/bin/apt-getlinux空间,密码在5分钟后失效。你可以在sudoers文件中这样配置:

Defaultstimestamp_timeout=10

Defaults:pdsywtimestamp_timeout=20

Defaults!/usr/bin/apt-gettimestamp_timeout=5

pdsyw@pdsyw-PC:~/Desktop$sudovisudo

pdsyw@pdsyw-PC:~/Desktop$sudocat/etc/sudoers

Linux sudo命令详解 _linux登录其它用户_ 信创系统sudo使用

2.NOPASSWD

sudoers文件中可以指定不须要密码的命令:

Linux sudo命令详解 _ 信创系统sudo使用 _linux登录其它用户

pdsywALL=(ALL)NOPASSWD:/usr/bin/apt-get

这表示pdsyw用户可以在不输入密码的情况下使用apt-get。

pdsyw@pdsyw-PC:~/Desktop$sudovisudo

pdsyw@pdsyw-PC:~/Desktop$sudocat/etc/sudoers

 信创系统sudo使用 _linux登录其它用户_Linux sudo命令详解

3.环境变量

通过sudo执行命令时,可以保留或更改环境变量,这在运行须要特定环境的命令时很有用。使用sudo-E来保留用户的环境变量。诸如:

sudo-Eenv

这会以root权限运行env命令,并输出当前用户的环境变量。

pdsyw@pdsyw-PC:~/Desktop$sudo-Eenv

linux登录其它用户_ 信创系统sudo使用 _Linux sudo命令详解

4.sudo的历史记录

sudo命令的执行记录一般会被写入日志文件,这种日志文件可以用于审计和安全检测。日志文件的位置和详尽内容可以在/etc/sudoers中配置。

sudo日志的详尽内容

在sudo的日志中,你一般可以看见以下信息:

日期和时间:命令执行的准确时间。

主机名:执行命令的主机名称。

用户:执行sudo命令的用户。

终端:执行命令的终端设备(如tty或则pts)。

命令:用户实际执行的命令。

pdsyw@pdsyw-PC:~/Desktop$sudocat/var/log/auth.log|grepsudo

linux登录其它用户_Linux sudo命令详解 _ 信创系统sudo使用

通过本文的介绍,您应当早已把握了在信创操作系统上sudo命令的详尽使用技巧。sudo命令是Linux系统中必不可少的工具,通过正确配置和使用sudo,可以有效地提升系统的安全性和管理效率。假若您认为这篇文章有用,请分享和转发。同时,别忘了点个关注和在看,便于未来获取更多实用的技术信息和解决方案。谢谢你们的阅读linux登录其它用户,我们上次再会!

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复