普通用户使用scp命令时出现异常,输入密码登录时密码变为明文并且卡死!

在工作时发现scp一个异常现象,在板子(注意不是电脑)上测试只有root用户使用scp命令才能成功,其它用户都失败!

现象:在输入密码登录时密码不再隐藏而是变为明文,并且会卡死!
问题说明:所有用户使用ssh命令是正常的,但scp命令只有root用户才能正常使用


一开始发现这个问题时,网上查询scp时,看到一条说明是scp命令必须要远程主机给当前用户权限才可以。便怀疑是不是当前的用户没有权限拷贝远程主机文件。
但是这个和现象不太符合,scp是隐式使用ssh来连接远程主机的,在输入密码的时候出现异常,说明scp在ssh阶段出现了问题!但单独测试ssh连接远程主机也是正常的,那么便不是ssh导致的!

对此我做了几个实验,当将当前用户的uid改为0,再使用scp命令时,便可正常使用!
这个实验可以提供一些方向:
1、远程主机限制具有root权限便能进行连接!
2、使用scp时需要某些权限,而这个权限在我的板子上被限制了!而root用户具有最高权限不受限制,故只有root能成功!

问题①可以排除,因为我并没有对远程主机做限制,任何用户都可以进去连接。
那么很有可能就是问题②导致的,于是我追踪查看了scp此命令的源码。发现此命令是需要suid权限的,然后去查看scp命令的权限,发现确实是suid的权限导致的!
查看scp命令可以看到:

root@:/# which scp
/usr/bin/scp
root@:/# ls -l /usr/bin/scp
lrwxrwxrwx    1 root     root            16 Nov 30 02:39 /usr/bin/scp -> ../sbin/dropbear

可以看到命令权限为777,并没有suid的权限!
下面进行修改:

root@:/# chmod 4777 usr/sbin/dropbear 
root@:/# ls -l usr/sbin/dropbear 
-rwsrwxrwx    1 root     root        151919 Nov 30 02:38 usr/sbin/dropbear
这里可以看到s权限已经加上,再次使用scp命令便能正常使用!
注:为何对dropbear进行改权限而不是scp?,是因为scp是链接到dropbear的!scp命令依赖dropbear来实现的!

特别说明:suid和guid是特殊权限,有兴趣可以自行了解。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值