Linux *** 作系统下Sudo命令的使用方法?

Linux *** 作系统下Sudo命令的使用方法?,第1张

名称:sudo

使用权限:在 /etc/sudoers 中有出现的使用者

使用方式:sudo -V

sudo -h

sudo -l

sudo -v

sudo -k

sudo -s

sudo -H

sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s

sudo command

说明:以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行

参数:

-V 显示版本编号

-h 会显示版本编号及指令的使用方式说明

-l 显示出自己(执行 sudo 的使用者)的权限

-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码

-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)

-b 将要执行的指令放在背景执行

-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称

-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)

-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell

-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )

command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

范例:

sudo -l 列出目前的权限

sudo -V 列出 sudo 的版本资讯

直接使用 sudo 加上你需要执行的linux命令就可以了。

通常,系统会提示你输入你的密码。 输入完成后,如果你有sudo的权限,就可以运行 sudo后面的linux命令了。

1、概念

su使用起来非常方便,但同样也存在安全隐患。在一台服务器上面,如果有多人使用,在使用su命令切换到root后,则大家都知道了root密码,那么以后其他用户均可以以root用户身份登录和维护服务器,则安全策略形同虚设了。那该如何是好?Linux系统中则提供了另外一个命令 sudo 。

sudo配置文件默认权限为440

[root@shell ~]#

[root@shell ~]# ll   /etc/sudoers

2、sudo 用法

sudo主要功能是以其他用户身份执行命令,而要输入的密码也仅仅是当前用户身身的密码而非root账户密码,类似于Windows系统中的 以管理员身份运行 。其常用用法如下所示:

sudo [选项] [命令]

常用选项如下所示:

3、执行流程

1)当用户执行sudo时,系统会在 /etc/sudoers 文件查找该用户是否有执行sudo的权限。

2)若用户拥有执行sudo权限后,则输入用户自身的密码确认

3)若密码确认成功,即可执行sudo后面的命令

4)若切换身份与执行者身份相同,则无需要输入密码

    基于以上流程,能否使用sudo则要看 /etc/sudoers 中的设置

4、sudo 配置

修改 /etc/sudoers,不建议直接使用 vim,而是使用 visudo。因为修改 /etc/sudoers 文件需遵循一定的语法规则,使用 visudo 的好处就在于,当修改完毕 /etc/sudoers 文件,离开修改页面时,系统会自行检验 /etc/sudoers 文件的语法。

[root@shell ~]#

[root@shell ~]# visudo                 #配置sudo

1) 这样我们就可以使用sudo了,我们需要输入普通用户ctsi自己的密码

输入过密码后我们就可以直接使用 ls/cat/mv 这些命令了

[ctsi@shell root]$

[ctsi@shell root]$ sudo  ls                      #以ctsi的身份执行 ls

[ctsi@shell root]$

[ctsi@shell root]$ sudo  cat  anaconda-ks.cfg             #以ctsi的身份执行 cat

2)设置用户免密码执行sudo命令

在准备执行的sudo命令前边增加 NOPASSWD:   即可

[root@shell ~]#

[root@shell ~]# visudo                #配置sudo

## Allow root to run any commands anywhere                 #定位到这一行,在这一行下边添加配置内容即可

root    ALL=(ALL)      ALL                                            #默认存在

ctsi     ALL=(ALL)      NOPASSWD: /usr/bin/ls,/usr/bin/cat,/usr/bin/mv                    ##增加的免密码执行sudo命令的内容

[ctsi@shell root]$

[ctsi@shell root]$ sudo   ls                   #严重免密码执行 sudo

5、sudo 权限用户组设置

有时我们需要为很多用户添加sudo权限,此时可以通过组来实现

前提是这些用户执行的sudo命令是一样的

把需要执行同样的权限的普通用户,添到同一个组中

比如:用户 user1 和 用户 user2 执行的sudo命令和用户ctsi是一样的,那么我们就可以将 user 和 user2 加入到ctsi组:

[root@shell ~]#

[root@shell ~]# visudo

6、定义别名


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8392048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存