习惯了 root 操作,我知道安全,只是我都是一个人在 VPS 上用用,
最近尝试下非 root 操作,
发现不加 sudo 什么也干不成,都是错误,只好全部都加 sudo ……
那么就想问下,不加 sudo,能干哪些权限的命令?
1
liangzi 2018-08-29 18:42:56 +08:00 via Android
你可以为用户配置环境变量的范围 以方便使用某些需要 sudo 的命令
|
2
MeteorCat 2018-08-29 18:43:43 +08:00 via Android
把自己新家的用户加入 /etc/sudoer
|
3
jworg 2018-08-29 18:44:33 +08:00
编译自己需要的一系列东西,比如 svn,gcc,vim 等等
|
4
PureWhiteWu 2018-08-29 18:45:34 +08:00
mac 上几乎用不到 sudo (除了安装 homebrew 的时候)
|
5
MeteorCat 2018-08-29 18:45:44 +08:00 via Android
啊不对,不用 sudo 执行命令的话,很多工作确实受限严重
|
6
prolic 2018-08-29 18:47:32 +08:00 via Android
往 home 里 xjb 怼呗,按软件靠下载+在 bashrc 里 export path,go 和 Python 开发都没什么问题,就是上 docker 没办法
|
7
Judoon 2018-08-29 18:52:53 +08:00 via Android
你可以列举一下你哪些操作用的 sudo,然后我相信下面会有一坨人帮你找到不需要 sudo 的方式
|
8
uptime OP @Judoon 问的当然是指原生支持的命令,不改系统配置的前提,既然默认用户也是 Admin 了,但是好多操作都不给,删个文件都不行,vim 修改、写入新建个文本都不行。
这个先说明一下了,是在 VPS 上使用操作,从 root 转到默认非 root 操作 |
10
Lax 2018-08-29 19:00:18 +08:00
你可以列举一下你哪些操作用的 sudo,然后我相信下面会有一坨人帮你找到不需要 sudo 的方式
|
11
Lax 2018-08-29 19:04:46 +08:00
如果是往系统目录比如 /etc 新建文件,当然需要 root 权限。
但是别忘了还有组权限可以利用。 有些固定操作比如重启 nginx 当时需要 80 端口,可以 chmod u+s |
12
msg7086 2018-08-29 20:41:58 +08:00
先纠正一点。
「既然默认用户也是 Admin 了」 是错误的想法。 非 root 用户即不是管理员,没有管理员权限,必须「手动地」提权得到管理员权限后,才能操作。 Windows 下现在也是这样,UAC 管理下默认是无权用户,要做系统操作必须提权。 |
15
HXM 2018-08-29 21:06:22 +08:00 via Android 2
npm install 😂
|
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。还有像什么重启系统服务、全局安装软件之类,不都要提权的吗? |
20
msg7086 2018-08-29 21:22:35 +08:00
还有,如 @Judoon 所说,你可以看看你的 sh_history,看看你平时到底做了哪些事,哪些是系统相关的,哪些是像 Windows 下一样的「一般使用」。如果你本来就是重度系统相关使用,那直接用 root 账号就好了。非 root 依靠 sudo 提权本来就是给 1 不熟悉 Linux 的人 2 一般使用,不需要频繁修改系统的人的。没必要在不合适的场景自找苦吃。
|
21
uptime OP @Lax 对权限、用户、用户组还是有了解的,只不过一直都是 root 操作通行无阻,并不那么深刻。现在尝试下非 root 操作下,发现限制实在太多太大了,于是只是很好奇想了解,在默认条件下,不加 sudo 到底还能操作那些命令,比如上面 #15 楼提到的 npm install
|
23
msg7086 2018-08-29 21:33:13 +08:00
npm install,包括我们 Ruby 用的 gem install,本来也是往系统级仓库里写东西。
如果要不提权,可以在本地做,比如 yarn、bundle 这些,部署在本地目录里的。 |
24
ynyounuo 2018-08-29 21:43:44 +08:00 via iPhone
强制在 sudo 都不给你的环境下作业一阵子,你就会发现大部分需要权限的操作都有 workaround。
|
25
otakustay 2018-08-29 22:01:25 +08:00
我怀疑你是不是建用户的时候把各种目录的权限和用户组配坏了,或者安装 node 之类的软件的时候没有把目录送到 /usr/local 之类的地方,而是放在了啥系统目录下面
|
26
Tink 2018-08-29 22:13:08 +08:00 via iPhone
什么都能干
|
27
billlee 2018-08-29 23:00:17 +08:00 1
如果你一直用 root, 那么你产生的所有数据都是 root 的,换用户后当然无法操作
|
28
liwufan 2018-08-30 00:17:37 +08:00
放音乐,看电影,写文档该干嘛干嘛。
Linux 是多用户系统,不过楼主喜欢畅通无阻的体验也可以去自己的服务器上开启单用户模式。 |
29
0312birdzhang 2018-08-30 08:52:12 +08:00 via iPhone
大部分运行在 Linux 的软件都不是用 root 权限,比如 nginx、apache、tomcat 你说能干嘛
|
30
iwtbauh 2018-08-30 09:25:43 +08:00 via Android
|
31
xderam 2018-08-30 11:42:56 +08:00
能干的太多了,除了 1024 以下的端口不能监听,其它的貌似都能干。除非那东西不是你自己的权限。比如开个 sshd,装各种语言的各种版本,把磁盘撑满,把 cpu 撑满,文件打开数可能有限制。等等等等。
所以每次开发来要权限的时候,开发总感觉普通用户权限太小,但是对一个运维来说,对系统了解很深的开发来说,真的是啥都可以干。 |