+ -
当前位置:首页 → 问答吧 → JHALFS里怎么实现su和chroot的?

JHALFS里怎么实现su和chroot的?

时间:2010-04-22

来源:互联网

执行了测试脚本

#!/bin/sh
su - lfs
mkdir test
exit

但执行后并没有返回到root
而且创建的文件也不是属于lfs用户的
按我理解 是因为执行该脚本的是root
所以创建额文件也是root的
exit root也无效 所以有这样的结果
是不是啊?

奇怪jhalfs怎么实现LFS里那么多的su到LFS用户和chroot到临时系统的

作者: heuyck   发布时间: 2010-04-22

Su -c 脚本

作者: swordhui   发布时间: 2010-04-22

shell调用shell?

作者: dstling   发布时间: 2010-04-23

首先 su 无法使用 echo "passwd" | su -l 方式接收密码,这是 su 当初撰写时的处理。

另外你的 script 写法也不对,因为就算是 su 真的成功变成 root 了,那就产生另外一个 shell 让你操作,你需要执行 exit 结束该 shell 后才会继续执行 script 后面叙述。

要执行叙述,可以写成 script,使用 su 可以搭配 -c 执行指定程式。

代码:
su - root -c "/path/script.sh"
要可以输入 root 密码,单纯一点要搭配 expect 来使用。像是:

usr/bin/expect

spawn su - root -c "/path/script.sh"
expect Password:
send "root_passwd\n"
interact


参见http://www.linuxgoo.com/bbs/archiver/77517.html

作者: dstling   发布时间: 2010-04-23

楼上思路方向正确,但从安全角度看恶习重重,expect 滥用范例。

root 用户可直接用 su 切换到普通用户,反之不行。
用 root 权限执行类似下面形式脚本即可:
代码:
#!/bin/sh
do something

su - lfs -c /path/script.sh

do something

chroot /path/to/newroot /path/script.sh

do something

作者: 聚焦深空   发布时间: 2010-04-23

多谢几位指点 尝试自行制作AHALFS。。。

作者: heuyck   发布时间: 2010-04-26

引用:
作者: heuyck
多谢几位指点 尝试自行制作AHALFS。。。
楼主的AHALFS怎样了? 对写脚本感兴趣? 对使用自己的LFS系统感兴趣?

作者: swordhui   发布时间: 2010-05-07