所需工具
PuTTY.exe
acp_commander
一。改机root
1. 在盘位1装上一块全新硬盘(没分区的盘)。
2. 启动NAS,然后按下机器后面function,这会把机器还原为出厂设置并格式化硬盘(慎:这会清除硬盘上的所有数据,如果你的硬盘上有数据,要先备份)。过了几分钟,设置完成后NAS自动重启。打开浏览器,输入NAS的地址(默认是192.168.1.100),如果能打开设置界面,就表示NAS准备就绪了。
不能进入先需安装系统- NASNAVI
点击NASNAVI软件的REFRESH,刷新会提示找到带有EM字样的NAS图标,此时NAS会显示NAS获取到的IP,暂时还不能访问到NAS的页面。如果提示更改IP,请直接取消,因为NAS已经从路由器上获得了IP。确认IP为以前路由器分配的以后,进入下一步。
安装系统-上传系统进入解压好的固件目录内,运行LSUpdater.exe,上传(UPDATE)固件,稍等即可。此过程可能持续20分钟。直到提示升级成功。
安装系统-改LSUpdater.ini【可选,改了以后记得重新打开LSUPDATER.EXE】
- [Application]
- Title = BUFFALO LinkStation Series Updater Ver.1.70
- WaitReboot = 1200
- WaitFormat = 600
- WaitFileSend = 600
- WaitDiscover = 120
- [Target]
- ProductID = 0x00000011
- ProductID2 = 0x00000012
- ProductID3 = 0x00000013
- ProductID4 = 0x00000014
- ProductID5 = 0x00003006
- ProductID6 = 0x00003007
- ProductID7 = 0x00000015
- ProductID8 = 0x00000016
- ProductID9 = 0x00003008
- ProductID10 = 0x00004001
- ProductID11 = 0x00000017
- ProductID12 = 0x00000019
- ProductID13 = 0x00000020
- ProductID14 = 0x00003010
- Name = LinkStation
- [Flags]
- VersionCheck = 0
- NoFormatting = 0
复制代码
VersionCheck = 1————1表示检查版本、0表示不检查版本,0用于降级
NoFormatting = 1———–1表示不格式化硬盘、0表示格式化硬盘
3. 准备一台windows机器,关闭windows防火墙。安装jre,地址http://java.com/zh_CN/download/manual.jsp
4. 下载acp_commander.jar。打开windows命令行,切换到acp_commander.jar所在的目录,输入以下命令以测试机器能否破解
java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c “ls /”
注意-pw后的参数”password”是web设置界面admin用户的登录密码,默认就是password,如果成功的话就能看到输出的根目录列表了!
5. 把root密码改为123456,你也可以改成别的。
java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c “(echo sweetopen;echo sweetopen)|passwd”
6. 修改sshd设置以允许root用户登录
java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c “sed -i ‘s/PermitRootLogin no/PermitRootLogin yes/g’ /etc/sshd_config”
7. 修改sshd设置,关闭PAM
java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c “sed -i ‘s/UsePAM yes/UsePAM no/g’ /etc/sshd_config”
8. 重启ssh服务
java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c “/etc/init.d/sshd.sh restart”
现在你可以用ssh登录LS-WVL了。
(注:以上几条命令可能会出错,注意看屏幕输出。如果对还有什么疑问,可以参考这篇文章http://i.592.net/?post=360,或者google一下,网上有很多关于改机的文章。)
二。安装git软件
1. 用PuTTY登录LS-WVL/E(默认地址192.168.1.100),用户root,密码是你在第一部分的步骤5设置的。
2.输入以下命令:
mkdir /mnt/disk1/temp
cd /mnt/disk1/temp
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/ls-mvkw-bootstrap_1.2-7_arm.xsh
sh ./ls-mvkw-bootstrap_1.2-7_arm.xsh
做了阵列的
mkdir /mnt/array1/tmp
cd /mnt/array1/tmp/
wget http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/teraprov2-bootstrap_1.2-7_arm.xsh
sh ./teraprov2-bootstrap_1.2-7_arm.xsh
ipkg update
ipkg upgrade
ipkg install git
三。配置
这部分操作是创建并配置好一个用户,使其能通过ssh登录系统,专门用于进行git相关操作
1. 以root登录,创建git用户
groupadd git(创建组git)
useradd -g git -m git(创建用户git,属于组git,同时创建用户主目录/home/git)
passwd git(设置git用户密码)
然后根据提示输入两遍密码
2. 修改ssh服务器的配置文件/etc/sshd_config,输入
vi sshd_config
然后编辑如下参数设置
StrictModes no(如果.ssh目录及相关文件的权限和拥有人owner等都能严格正确设置,可以设为yes)
UsePrivilegeSeparation no(这是必须的,否则git用户无法登录)
PermitUserEnvironment yes(必须的,使ssh加载用户自定义的环境配置文件)
3. 配置git用户环境变量文件,设置PATH(如果不设置好用户的PATH,运行git命令将提示”command not found”)。
输入如下命令:
cd /home/git(进入用户git的主目录)
mkdir .ssh
echo PATH=/mnt/disk1/.optware/bin:/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin >> .ssh/environment
echo PATH=/mnt//array1/.optware/bin:/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin >> .ssh/environment
chown -R git.git .ssh(更改.ssh目录及其中文件的owner为用户git)
chmod 700 .ssh(更改.ssh目录的权限)
chmod 600 .ssh/environment
4. 创建git项目的存储目录。输入命令
mkdir -m 777 /mnt/disk1/gits(创建目录gits来存放所有的git项目,权限777)
mkdir -m 777 /mnt/array1/gits
5. 重启sshd(见第一部分步骤8),然后用PuTTY以git用户登录,应该就能登上了。
四。测试
1.通过ssh以用户git登录,创建一个git项目testproj。输入命令
mkdir /mnt/disk1/gits/testproj.git(创建项目的目录)
cd /mnt/disk1/gits/testproj.git
git init –bare(初始化git仓库)
2. 在windows客户机上安装tortoiseGit和mysisgit并设置好,你就可以从服务器上clone项目testproj了。(具体操作不在本文讨论范围,请自行google之)
如果客户机是linux或mac,并且安装好了git,你可以直接输入命令
git clone git@192.168.1.100:/mnt/disk1/gits/testproj.git
回车后输入用户git的密码,就把testproj项目给clone下来了
五。其它
一开始我按照网上的很多教程root后,发现只有root用户能够通过ssh登录,其它用户都不能登录。经过几天在网上苦苦的搜寻,终于找到了原因和解决办法:ssh服务器在底层使用了sftp这个工具,这个工具有一个配置文件/etc/sftponly_config,这个配置文件里禁止了用户(在Buffalo LS-WVL的Web配置页面能看到的所有用户和组)的ssh登录,而且这个配置文件每次ssh服务器启动时都会重新生成,所以你改这个配置文件也没有用。
解决办法有两个:
1. 既然在Web配置页面能看到的所有用户和组(默认有用户admin,guest,组包括admin,guest,hdusers)都不能ssh登录,那么Web配置页面里看不到的用户和组,不就不受这个限制了吗。所以解决方法就是通过ssh以root登录,新建一个组git,然后再创建一个用户git,使其属于这个新建的组(创建用户时如果不指定其所属的组,就默认属于hdusers组,这个是配置文件/etc/sftponly_config里面禁止ssh登录的),这样这个用户git就可以登录了。(具体操作见上文第三部分步骤1)
2. 第二个解决方法就是想办法修改这个配置文件/etc/sftponly_config。打开ssh服务器的启动脚本/etc/init.d/sshd.sh,你可以在启动ssh服务器的代码前找到这样一行“nas_configgen -c sftp”,就是这行代码重新生成了配置文件/etc/sftponly_config,只要在这一行后面再加一行代码,把sftponly_config改一改,把所有的”allowssh no”全部改成”allowssh yes”,问题不就解决了吗。
(事实上这是我最开始找到的办法,但是由于操作比较复杂,而且有一定的安全隐患,所以还是建议使用第一个解决方法)
用vi来编辑/etc/init.d/sshd.sh,输入以下命令
vi /etc/init.d/sshd.sh
移动光标,在sshd_start()方法中找到“nas_configgen -c sftp”这一行,将光标移至行末,按a键,然后在这行之后插入一行:
sed -i ‘s/allowssh no/allowssh yes/g’ /etc/sftponly_config
按ESC键,输入”:wq”(双引号中间的3个字母)然后回车,这就保存退出了。