V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
uptime
V2EX  ›  问与答

命令行,不用 sudo 能干什么?

  •  
  •   uptime · 2018-08-29 18:38:18 +08:00 · 4031 次点击
    这是一个创建于 2256 天前的主题,其中的信息可能已经有所发展或是发生改变。

    习惯了 root 操作,我知道安全,只是我都是一个人在 VPS 上用用,
    最近尝试下非 root 操作,
    发现不加 sudo 什么也干不成,都是错误,只好全部都加 sudo ……
    那么就想问下,不加 sudo,能干哪些权限的命令?

    31 条回复    2018-08-30 11:42:56 +08:00
    liangzi
        1
    liangzi  
       2018-08-29 18:42:56 +08:00 via Android
    你可以为用户配置环境变量的范围 以方便使用某些需要 sudo 的命令
    MeteorCat
        2
    MeteorCat  
       2018-08-29 18:43:43 +08:00 via Android
    把自己新家的用户加入 /etc/sudoer
    jworg
        3
    jworg  
       2018-08-29 18:44:33 +08:00
    编译自己需要的一系列东西,比如 svn,gcc,vim 等等
    PureWhiteWu
        4
    PureWhiteWu  
       2018-08-29 18:45:34 +08:00
    mac 上几乎用不到 sudo (除了安装 homebrew 的时候)
    MeteorCat
        5
    MeteorCat  
       2018-08-29 18:45:44 +08:00 via Android
    啊不对,不用 sudo 执行命令的话,很多工作确实受限严重
    prolic
        6
    prolic  
       2018-08-29 18:47:32 +08:00 via Android
    往 home 里 xjb 怼呗,按软件靠下载+在 bashrc 里 export path,go 和 Python 开发都没什么问题,就是上 docker 没办法
    Judoon
        7
    Judoon  
       2018-08-29 18:52:53 +08:00 via Android
    你可以列举一下你哪些操作用的 sudo,然后我相信下面会有一坨人帮你找到不需要 sudo 的方式
    uptime
        8
    uptime  
    OP
       2018-08-29 18:59:16 +08:00
    @Judoon 问的当然是指原生支持的命令,不改系统配置的前提,既然默认用户也是 Admin 了,但是好多操作都不给,删个文件都不行,vim 修改、写入新建个文本都不行。
    这个先说明一下了,是在 VPS 上使用操作,从 root 转到默认非 root 操作
    Lax
        10
    Lax  
       2018-08-29 19:00:18 +08:00
    你可以列举一下你哪些操作用的 sudo,然后我相信下面会有一坨人帮你找到不需要 sudo 的方式
    Lax
        11
    Lax  
       2018-08-29 19:04:46 +08:00
    如果是往系统目录比如 /etc 新建文件,当然需要 root 权限。
    但是别忘了还有组权限可以利用。
    有些固定操作比如重启 nginx 当时需要 80 端口,可以 chmod u+s
    msg7086
        12
    msg7086  
       2018-08-29 20:41:58 +08:00
    先纠正一点。
    「既然默认用户也是 Admin 了」
    是错误的想法。
    非 root 用户即不是管理员,没有管理员权限,必须「手动地」提权得到管理员权限后,才能操作。

    Windows 下现在也是这样,UAC 管理下默认是无权用户,要做系统操作必须提权。
    Judoon
        13
    Judoon  
       2018-08-29 20:46:41 +08:00 via Android
    @uptime 列举出来具体的操作和需求
    uptime
        14
    uptime  
    OP
       2018-08-29 21:03:44 +08:00
    @Judoon 你都是对的,我都是错的,不加 sudo 什么都能操作,能上天能下地。
    HXM
        15
    HXM  
       2018-08-29 21:06:22 +08:00 via Android   ❤️ 2
    npm install 😂
    Judoon
        16
    Judoon  
       2018-08-29 21:08:05 +08:00 via Android
    @uptime 有必要这样喷吗?我是真的在说问题啊
    uptime
        17
    uptime  
    OP
       2018-08-29 21:12:37 +08:00
    @msg7086 UAC 也是有等级的,而且一般使用上跳出 UAC 框机会实在并不多。
    johnniang
        18
    johnniang  
       2018-08-29 21:16:04 +08:00 via Android
    @prolic 可以把用户加入 docker 组,就能愉快地 docker 了
    msg7086
        19
    msg7086  
       2018-08-29 21:18:00 +08:00
    @uptime 你都说了一般使用。Linux 上的一般使用也不需要加 sudo。
    需要加 sudo 的都是操作了系统里的东西。
    比如改个 hosts,Linux 下需要 sudo vi /etc/hosts,Windows 下需要把编辑器提权后才能打开 /system32/drivers/etc/hosts。还有像什么重启系统服务、全局安装软件之类,不都要提权的吗?
    msg7086
        20
    msg7086  
       2018-08-29 21:22:35 +08:00
    还有,如 @Judoon 所说,你可以看看你的 sh_history,看看你平时到底做了哪些事,哪些是系统相关的,哪些是像 Windows 下一样的「一般使用」。如果你本来就是重度系统相关使用,那直接用 root 账号就好了。非 root 依靠 sudo 提权本来就是给 1 不熟悉 Linux 的人 2 一般使用,不需要频繁修改系统的人的。没必要在不合适的场景自找苦吃。
    uptime
        21
    uptime  
    OP
       2018-08-29 21:24:25 +08:00
    @Lax 对权限、用户、用户组还是有了解的,只不过一直都是 root 操作通行无阻,并不那么深刻。现在尝试下非 root 操作下,发现限制实在太多太大了,于是只是很好奇想了解,在默认条件下,不加 sudo 到底还能操作那些命令,比如上面 #15 楼提到的 npm install
    uptime
        22
    uptime  
    OP
       2018-08-29 21:28:22 +08:00
    @msg7086 #20 谢谢。是打算返回 root 操作了。
    msg7086
        23
    msg7086  
       2018-08-29 21:33:13 +08:00
    npm install,包括我们 Ruby 用的 gem install,本来也是往系统级仓库里写东西。
    如果要不提权,可以在本地做,比如 yarn、bundle 这些,部署在本地目录里的。
    ynyounuo
        24
    ynyounuo  
       2018-08-29 21:43:44 +08:00 via iPhone
    强制在 sudo 都不给你的环境下作业一阵子,你就会发现大部分需要权限的操作都有 workaround。
    otakustay
        25
    otakustay  
       2018-08-29 22:01:25 +08:00
    我怀疑你是不是建用户的时候把各种目录的权限和用户组配坏了,或者安装 node 之类的软件的时候没有把目录送到 /usr/local 之类的地方,而是放在了啥系统目录下面
    Tink
        26
    Tink  
       2018-08-29 22:13:08 +08:00 via iPhone
    什么都能干
    billlee
        27
    billlee  
       2018-08-29 23:00:17 +08:00   ❤️ 1
    如果你一直用 root, 那么你产生的所有数据都是 root 的,换用户后当然无法操作
    liwufan
        28
    liwufan  
       2018-08-30 00:17:37 +08:00
    放音乐,看电影,写文档该干嘛干嘛。
    Linux 是多用户系统,不过楼主喜欢畅通无阻的体验也可以去自己的服务器上开启单用户模式。
    0312birdzhang
        29
    0312birdzhang  
       2018-08-30 08:52:12 +08:00 via iPhone
    大部分运行在 Linux 的软件都不是用 root 权限,比如 nginx、apache、tomcat 你说能干嘛
    iwtbauh
        30
    iwtbauh  
       2018-08-30 09:25:43 +08:00 via Android
    @msg7086

    但其实 windows 的用户权限管理并不是一个 UAC 能解释完的事情,而是一个非常复杂(以至于臃肿)的体系。
    xderam
        31
    xderam  
       2018-08-30 11:42:56 +08:00
    能干的太多了,除了 1024 以下的端口不能监听,其它的貌似都能干。除非那东西不是你自己的权限。比如开个 sshd,装各种语言的各种版本,把磁盘撑满,把 cpu 撑满,文件打开数可能有限制。等等等等。
    所以每次开发来要权限的时候,开发总感觉普通用户权限太小,但是对一个运维来说,对系统了解很深的开发来说,真的是啥都可以干。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2817 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 06:32 · PVG 14:32 · LAX 23:32 · JFK 02:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.