sudo命令这是干什么捏?

tf 2026-06-10 21:11 1

sudo一直困扰着我 为什么有很多的命令都是会默认带sudo 所以服务器需要特地apt install sudo 用带sudo的命令的东西就是因为要root才能执行 我执行这个东西就是因为我原来就是root 我不是root我执行这个东西干嘛 好像只有sudo -i? sudo真的好无聊 sudo还有什么用法 ^-^

最新回复 (20)
  • hryen 06-10 21:13
    1

    debian系统默认必须要创建普通用户的,正常情况在企业里root也不让直接登录和使用,需要申请

  • maikeer932 06-10 21:13
    2

    就是开启root吧

  • nickelback 06-10 21:13
    3

    ^-^ sudo rm -r

  • azwww32 06-10 21:14
    4

    非root用户登录,大部分命令得用sudo才能用,sudo之后还要输入root密码 我笔记本刷了ubuntu之后每次运行命令都得这样搞 除非ssh直接用root登录 ^-^

  • hryen 06-10 21:14
    5

    sudo也可以配置某些命令不用输入root的密码

  • coldsword 06-10 21:14
    6

    ai还是太权威了,下文含有ai生成的内容:


    你的理解其实已经接近 sudo 的本质了。


    对于你这种经常直接用 VPS root 登录的人来说,sudo 确实会显得很多余


    sudo 到底是什么


    sudo = Super User DO


    意思是:


    临时以 root 身份执行某条命令。


    例如:


    sudo apt update

    实际上等价于:


    su -
    apt update

    但只执行这一条命令,执行完就恢复普通用户身份。




    为什么很多教程都带 sudo


    因为现代 Linux 发行版(特别是 Ubuntu)默认:


    root账号禁用登录

    创建普通用户

    给这个用户sudo权限

    例如:


    ubuntu
    debian
    ec2-user
    rocky
    centos

    这些用户都不是 root。


    此时:


    apt update

    会报:


    Permission denied

    必须:


    sudo apt update



    为什么你觉得 sudo 很蠢


    因为你经常这样:


    root@server:~#

    你已经是 root 了。


    此时:


    apt update


    sudo apt update

    完全一样。


    甚至:


    sudo apt update

    反而多了一层 sudo 调用。


    所以很多 VPS 用户看到教程:


    sudo nano /etc/ssh/sshd_config

    都会直接写:


    nano /etc/ssh/sshd_config

    因为本来就是 root。




    VPS 为什么还要安装 sudo


    主要是为了多用户管理。


    例如:


    alice
    bob
    tom

    三个运维。


    不可能把 root 密码发给所有人。


    可以:


    usermod -aG sudo alice

    然后:


    alice

    sudo systemctl restart nginx

    这样:



    • 不知道 root 密码

    • 仍然能管理服务器

    • 有操作日志




    sudo 最重要的用途


    1. 权限控制


    允许:


    alice

    只能执行:


    sudo systemctl restart nginx

    不能:


    sudo rm -rf /

    通过:


    visudo

    配置。


    例如:


    alice ALL=(root) NOPASSWD: /usr/bin/systemctl

    这样 alice 只能执行 systemctl。




    2. 操作审计


    sudo 会记录:


    /var/log/auth.log

    或者:


    journalctl

    里出现:


    alice executed:
    systemctl restart nginx

    知道是谁干的。


    如果大家都直接 root:


    root
    root
    root

    出了事故根本不知道是谁删的文件。




    3. 临时提权


    日常工作:


    jane

    普通权限。


    需要改配置:


    sudo vim /etc/nginx/nginx.conf

    改完继续普通权限。


    避免长期 root 误操作。


    例如:


    rm -rf *

    普通用户最多删自己目录。


    root 可能删系统。




    sudo -i 是什么


    这是你最常见到的。


    sudo -i

    相当于:


    sudo su -

    或者:


    su -

    效果:


    jane

    root

    获得完整 root shell:


    root@server:~#

    直到退出:


    exit



    sudo 还有什么常用玩法


    查看自己有什么 sudo 权限


    sudo -l

    输出:


    User jane may run the following commands:



    切换成其他用户


    sudo -u www-data bash

    变成:


    www-data

    这个运维经常用。


    例如测试 PHP:


    sudo -u www-data php test.php



    用 sudo 编辑 root 文件


    sudo vim /etc/hosts

    普通用户也能修改系统文件。




    sudo 执行一条命令


    sudo systemctl restart nginx

    执行完立即恢复普通用户。




    对 VPS 用户来说


    如果你登录后看到:


    root@xxx:~#

    那么:


    sudo

    基本可以忘掉。


    你平时:


    apt update
    apt install
    systemctl restart
    nano
    vim
    nft
    iptables

    统统直接执行。


    很多教程里的:


    sudo apt install xxx

    直接改成:


    apt install xxx

    即可。


    所以你的感觉没错:对于长期直接 root 管理 VPS 的人,sudo 的核心价值几乎只剩兼容教程和偶尔管理其他用户权限。真正发挥作用的是企业环境、多运维人员协作和禁用 root 登录的服务器。

  • 皮桑 06-10 21:14
    7

    就字面意思“superuser do”

  • Stance 06-10 21:15
    8

    类似于Windows中的以管理员身份运行

  • tf 楼主 06-10 21:15
    9

    @hryen #1 这个真的很烦 不管是ai还是很多网络上的教程 命令都会带sudo 很明显,很多教程都是给自己的服务器用的 我主要追求精简 所以我都不会apt install sudo 每次都会自己手动sudo删了 ^-^

  • mochi快跑 06-10 21:15
    10

    @azwww32 #4 笔记本刷Linux爽不爽?

  • 杜会主乂 06-10 21:16
    11

    无所谓 root用户加sudo我感觉是一种仪式感

  • azwww32 06-10 21:16
    12

    @mochi快跑 #10 爽 就是后面莫名其妙识别不到无线网卡了 一开始以为硬件问题 后面发现是系统不知咋的炸了 后面没用这台电脑了 一直拖到现在还没重装 ^-^

  • tf 楼主 06-10 21:17
    13

    @coldsword #6 最最最难受的是个人教程、ai 像搭建私人网盘 教程都会出现一大堆sudo 每次我还得让ai给我删掉sudo ^-^

  • hryen 06-10 21:18
    14

    @tf #9 发布于2026/6/10 21:15:18

    @hryen #1 这个真的很烦 不管是ai还是很多网络上的教程 命令都会带sudo 很明显,很多教程都是给自己的服务器用的 我主要追求精简 所以我都不会apt install sudo 每次都会自己手动sudo删了 ^-^


    我觉得你搜一搜,应该有那种开源项目,装一个sudo命令上去但是实际什么事都不干的

  • tf 楼主 06-10 21:19
    15

    @maikeer932 #2 sudo -i是切换到root 运行命令带sudo是临时使用root执行命令 但是对于个人用户来讲没啥用qaq 毕竟自己服务器登录就是root 就一个人管理

  • hryen 06-10 21:21
    16

    @hryen #14 发布于2026/6/10 21:18:32


    @tf #9 发布于2026/6/10 21:15:18

    @hryen #1 这个真的很烦 不管是ai还是很多网络上的教程 命令都会带sudo 很明显,很多教程都是给自己的服务器用的 我主要追求精简 所以我都不会apt install sudo 每次都会自己手动sudo删了 ^-^


    我觉得你搜一搜,应该有那种开源项目,装一个sudo命令上去但是实际什么事都不干的


    但是也跟你装一个sudo没啥区别了,总结最简单的还是装一个sudo就是了,用root带不带sudo也没啥区别

  • zch401 06-10 21:22
    17

    提权,sudo之后你可以像root一样畅通无阻执行命令

  • tf 楼主 06-10 21:24
    18

    @zch401 #17 但是对于像我说的一样 个人vps登录就是root感觉这个没啥用qaq

  • zch401 06-10 21:24
    19

    @tf #18 对,直接登陆root的话没啥区别

  • Na 06-10 21:41
    20

    加sudo是最佳实践

* 帖子来源NodeSeek
返回