首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux用户-sudo命令

Linux用户-sudo命令

作者头像
运维小路
发布2024-11-01 18:58:18
发布2024-11-01 18:58:18
9610
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

Linux是一个多用户多任务操作系统,这意味着它可以同时支持多个用户登录并使用系统。但是我们之前所有的操作都是基于超级管理员root来操作的,从Linux设计来说,是不推荐的。因为root的权限太大,所以才需要普通用户来进行日常运维,那如果普通用户需要做的操作需要root权限的时候又怎么做的,我们将通过以下几个方面来讲解。

1.linux用户

2.linux用户组

3.Linux用户-su命令

4.Linux用户-sudo命令(本章节)

上一章,我们讲了使用su命令切换到root权限进行操作,本章节继续讲解sudo命令来临时提权。

sudo 是类 Unix 系统(如Linux、BSD等)中的一个命令,用于允许授权用户以另一个用户的身份执行命令。它的名称来源于"Superuser Do"(超级用户执行),用于执行需要超级用户权限(通常是 root 用户权限)的任务,而无需直接切换到 root 用户。

主要特点和用途

  1. 权限管理
    • 临时提升权限:允许普通用户在需要时以特权用户(通常是 root)的身份执行命令,执行完毕后权限自动降低为普通用户。
    • 授权控制:管理员可以通过配置 sudoers 文件详细控制哪些用户可以以哪些用户的身份执行哪些命令,以及在哪些主机上执行。
  2. 安全性
    • 审计sudo 的使用可以被记录和审计,管理员可以了解哪些用户在何时执行了哪些特权操作,有助于系统安全和问题追踪。
    • 限制权限:相比直接使用 root 用户,sudo 允许更细粒度地控制用户对系统的访问权限,减少了误操作和滥用特权的风险。
  3. 使用方式
    • 基本语法
代码语言:javascript
复制
sudo command

这会使用默认设置(通常是执行者的密码)尝试以 root 用户执行 command 命令。

  • 以其他用户身份执行

代码语言:javascript
复制
sudo -u username command

这会以 username 用户的身份执行 command 命令。

  • 编辑文件

代码语言:javascript
复制
sudoedit file
sudo vi file  //也可以这样

这会使用默认编辑器(通常是 vinano)以超级用户权限编辑 file 文件。

  1. 配置文件
    • sudo 的配置文件通常是 /etc/sudoers,第一次使用应该使用root用户来操作该文件,因为在没有配置的情况下,普通用户是没权限操作这个文件的。
  2. 示例用法
    • 执行需要 root 权限的命令
代码语言:javascript
复制
sudo yum updae

这会使用 sudo 命令以 root 权限执行 yum update 命令,从而更新系统软件包列表。

  • 编辑文件

代码语言:javascript
复制
sudoedit /etc/nginx/nginx.conf
sudo vi /etc/nginx/nginx.conf    //也直接直接这样

这会使用 sudoedit 命令以 root 权限编辑 Nginx 的配置文件。

  1. 注意事项
    • 密码验证:默认情况下,sudo 会要求用户输入自己的密码来验证身份。
    • 安全配置:应当小心配置 sudoers 文件,确保只有可信用户可以执行特权操作,并限制执行的具体命令和参数。
    • 不建议直接使用 root 用户:推荐使用 sudo 来执行需要特权的任务,以避免潜在的安全风险和操作失误。
  2. 最佳实践: 1.允许特定用户执行sudo命令
代码语言:javascript
复制
# Allow root to run any commands anywhere 
root  ALL=(ALL)   ALL
#需要添加这行,user01才有使用sudo命令的权限
user01  ALL=(ALL)       ALL  

2.免密使用sudo

代码语言:javascript
复制
## Allow root to run any commands anywhere 
root  ALL=(ALL)   ALL
#修改成这样,就可以免密使用sudo命令
user01  ALL=(ALL)       NOPASSWD:ALL

总结

  1. 普通用户默认是没有权限使用sudo命令,必须配置以后才能使用。
  2. 按照上面的配置,是所有的命令都可以执行,也可以做更精细化的配置,让普通用户只能执行特定的sudo命令。
  3. 普通用户使用sudo命令,默认是需要使用当前用户的密码的。也可以配置让它免密。
  4. sudo配置文件默认只有读权限,如果按照普通方式使用vi编辑文件,需要使用wq!强制保存才可以。
  5. 也可以使用使用下面命令,则不会提示文件只读,也可以正常保存退出。
代码语言:javascript
复制
sudo visudo
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主要特点和用途
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档