The difference between /sbin/sh and /bin/sh

Both /sbin/sh and /usr/bin/sh shells are Bourne shells. 

The difference is that /sbin/sh is statically linked and /usr/bin/sh is 
dynamically linked. There is also /bin/sh, however /bin is just a symbolic 
link to /usr/bin. 

# ls -l /sbin/sh 
-r-xr-xr-x 2 bin root 251712 Jul 16 1997 /sbin/sh 

# file /sbin/sh 
/sbin/sh: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped 

# ldd /sbin/sh 
ldd: /sbin/sh: file is not a dynamic executable or shared object 


# ls -l /usr/bin/sh 
-r-xr-xr-x 3 bin root 88620 Jul 16 1997 /usr/bin/sh 

# file /usr/bin/sh 
/usr/bin/sh: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped 

# ldd /usr/bin/sh 
libc.so.1 =>; /usr/lib/libc.so.1 
libdl.so.1 =>; /usr/lib/libdl.so.1 

Dynamically linked binaries use shared libraries during their execution. This 
makes them smaller in size and when libraries get updated, the binaries will 
automatically use the updated libraries. 

Statically linked binaries contain all the code within them. They do not 
use shared libraries at all. This makes them larger in size. The useful thing 
about statically linked binaries is that they can run all by themselves as 
they do not depend on shared libraries. If the system is "broken" and libraries 
were removed, damaged, or /usr is not mounted, /sbin/sh can still be executed. 

This is why it is recommended to use /sbin/sh as the default root shell

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值