LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1696|回复: 7

怎样将这些操作写成 shell 脚本

[复制链接]
发表于 2011-6-3 14:26:42 | 显示全部楼层 |阅读模式
怎样将以下这些操作写成 shell 脚本

新建一个终端(Applications menu -> Accessories -> Terminal),输入:
sudo –s
sudo passwd
输入要设置的密码,这样以后我们就可以用root 用户登录了。
发表于 2011-6-3 20:09:53 | 显示全部楼层
直接sudo不好么?或者你想在别人机器里埋钉子?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-7 09:21:23 | 显示全部楼层
Post by 糊涂;2141615
直接sudo不好么?或者你想在别人机器里埋钉子?

不是,给自己的机子用的,到时要销售10000台这样的机器
回复 支持 反对

使用道具 举报

发表于 2011-6-7 11:00:11 | 显示全部楼层
看看 /etc/shadow里面的东西吧,这个文件存储了各个用户的密码,不用sudo或者root账户是看不了的,更别提修改了。
比如我的:
fuming:[color="Red"]$6$i2iydpWF$[color="Blue"]8hziEwY4tL88a7XRWmD3PPOVHBJ3VVFymhtFzTFxlJkWC3MrNjXhNgpQXuSzWFkLZhAMAO1RNukCKhalxWIPq/:15115:0:99999:7:::

红色部分是加密方法,后面蓝色部分是加密的密码。红色部分的细节还不是很清楚,网上说$1$acQMceF9$表示MD5,我的文件里的这种方式就不是很清楚了。
如果你的root不能使用密码,那么应该是这种样子的:
root:*:15115:0:99999:7:::
中间有个*,表示密码禁用。将这个*替换成为密码就好。

你可以用下面这个命令来取得加密后的密码
  1. perl -e 'print crypt("passwd","\$6\$i2iydpWF\$"),"\n"'
复制代码

passwd就是你需要的密码,后面的那个就是红色部分。将输出记录下来,然后替换/etc/shadow里面root段里的*(这个总会吧?简单的shell脚本而已)就可以了。我试过,没问题。
回复 支持 反对

使用道具 举报

发表于 2011-6-7 11:58:31 | 显示全部楼层
$6$表示你系统上使用sha512散列算法。并不是整个红色的部分都表示加密算法。通常是前面两个$符号之间的前缀,可以指示出所使用的散列算法。第二组$符号之间的东西,叫做salt。
参考: http://en.wikipedia.org/wiki/Crypt_%28Unix%29
回复 支持 反对

使用道具 举报

发表于 2011-6-7 19:27:26 | 显示全部楼层
chpasswd  <<<  "root:passwd"

把root密码改为passwd,提供一种思路
回复 支持 反对

使用道具 举报

发表于 2011-6-7 19:44:25 | 显示全部楼层
Post by jacuro;2141910
$6$表示你系统上使用sha512散列算法。并不是整个红色的部分都表示加密算法。通常是前面两个$符号之间的前缀,可以指示出所使用的散列算法。第二组$符号之间的东西,叫做salt。
参考: http://en.wikipedia.org/wiki/Crypt_%28Unix%29
多谢。受教了。
回复 支持 反对

使用道具 举报

发表于 2011-8-9 23:28:05 | 显示全部楼层
使用expect行吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表