![]() | 1 loading 2014-05-23 14:23:02 +08:00 sudo vim xxx sudu chroot cp /usr/bin/vim /sbin |
![]() | 2 loading 2014-05-23 14:23:25 +08:00 第二个搞错了。。。 |
3 cyyever 2014-05-23 14:33:10 +08:00 你在执行这个命令时是root?那应该可以吧,或者which vim? |
![]() | 5 jamesxu 2014-05-23 14:55:16 +08:00 @stevenyou 你要先用 ls -l 看看文件本身是什么权限,在用 lsattr 看看有没有隐藏的权限,一般来说 root 几乎可以修改任何文件,即便是 readonly,在 vim 中按 :wq! 也可以保存的。 另外,不建议随便将一个可执行文件添加 SUID,这会造成很大的安全隐患。 |
7 stevenyou OP |
9 stevenyou OP 文件是普通的文件, sudo vim 可以打开写入 |
10 duzhe0 2014-05-23 15:27:44 +08:00 我怀疑是vim对自身的setsid位做了检测并自我限制了。因为这个操作太危险了, vim是可以当shell执行其它命令的,这相当于把root权限暴露给了系统上的所有用户。不要嫌麻烦, 还是老老实实sudo vim 吧 |
11 cyyever 2014-05-23 15:45:52 +08:00 你这已经设置了 可能是vim自己用access判断,绕过去吧。 |
12 cyyever 2014-05-23 15:47:49 +08:00 vim实际上是往一个副本写,在x时候再覆盖回去,所以只要你目录有写权限,应该没问题,因此你应该看看目录的权限 |
13 cyyever 2014-05-23 15:51:45 +08:00 @jamesxu 没错,像我一般在做rpm包时如果很难绕过去,才临时setuid给install等程序,搞完就改回去。如果是在自己虚拟机,一般用root随便折腾。如果是生产机,该用普通用户就要用。 |
14 walleL 2014-05-23 16:20:18 +08:00 |
![]() | 15 msg7086 2014-05-23 17:26:13 +08:00 实测Debian下给cat或者vi加上setuid权限以后可以直接读写无权文件。 |
16 edwardro 2014-05-24 17:51:33 +08:00 执行文件上加上setuid权限只代表此程序有调用setuid()这个函数的权限,是否调用setuid()切换到root取决于程序本身的实现。 |
17 stevenyou OP |
18 edwardro 2014-05-27 22:55:48 +08:00 via Android |