Ubuntu编码服务器搭建(samba、ssh、svn)

来源:互联网 发布:设计工程图纸的软件 编辑:程序博客网 时间:2024/06/06 03:34

我们是做路由器的,eCos和Linux两个系统一直在一个现成的编码服务器上编译,前段时间我编译OpenWrt的固件,因为没理解我们老大的意思,把OpenWrt的代码下载到了服务器上,因为很多东西不懂,按照OpenWrt的文档所说做了更新,重装了工具链,结果搞得我们编码服务器出现了点小问题,所有人eCos的那套代码都编译不过了,我们老大查了一下发现是strncmp这个函数的实现方式不一样导致的,改下strncmp函数里的参数就行了,但是担心别的地方也有影响,就让我重新搭个服务器,来来回回搞了快两周,最后总算搞定了,记录如下:

——–分割线——–

在wmware上安装ubuntu,16版本和14版本的我都试过,这里已16版本的为例。

ubuntu选择“自定义”,一直下一步,有需要填写的按照提示填写内容,装好后开始在ubuntu里装各种工具,这里我们主要是用到samba、ssh、和svn三个工具。

更新:
直接安装samba等工具时总是报错,提示“Package samba has no installation candidate”,这个是安装包的下载地址有变动,需要更行下安装包的下载地址【apt update】。

安装工具:
我比较习惯使用vim编辑,所以先装个vim【apt install vim】,再装上samba【apt install samba】、ssh【apt install openssh-server】和svn【apt install subversion】。
注意:16版本的安装时使用【apt install xxx】,14版本为【apt-get install xxx】,网上查到的好像都有点老,用的都是【apt-get install xxx】。

samba:
安装samba【apt install samba】;
配置samba【vim /etc/samba/smb.conf】,文件末尾增添如下内容

[test]   path = /work/test   available = yes   browseable = yes   writable = yes   read only = no   valid users = test   guest ok = yes

新建路径/work/test,网上都说需要给目录修改权限和用户,我试了下是不用的,不过还是习惯性的改了权限,用户就没改了;
添加samba用户密码【smbpasswd -a test】,根据提示输入两次密码,结果提示失败,“Failed to add entry for user test.”;
原来需要先增加test用户和密码【useradd test】【passwd test】,成功之后才能为用户添加samba密码【smbpasswd -a test】;
远程通过samba登录,win+R,输入“\\172.16.87.44”,回车后再输入用户名和samba密码,即可登录到samba,可以看到test文件夹;
注意samba密码和用户的登录密码是不一样的,为了方便,我把这两个密码设置成一样的了。

ssh:
安装ssh【apt install openssh-server】,OK,重启ssh【/etc/init.d/ssh restart】,检查ssh启动【ps -e |grep ssh】,OK,远程XShell连接ubuntu,使用设置的test登录用户和密码登录,OK。嗯,我们这边习惯用XShell 5,用SecureCRT的也有,其他的就没了,看个人习惯;
欲进入root权限【sudo -i】,输入密码后提示“ is not in the sudoers file. This incident will be reported.”,是因为test账户未开放root权限,【vim /etc/sudoers】 编辑文件,在root ALL=(ALL)ALL行下添加test ALL=(ALL)ALL,test为你的用户名,该文件为只读文件,修改后需要 :wq!才能保存,网上都是先修改sudoers文件权限为可写,再编辑文件,再改回权限,感觉很麻烦,加个!就可以了。再次使用test账户进入root权限,OK。

过程中遇到的一些问题:

更新问题:
Ubuntu装好后直接去安装samba,提示“Package has no installation candidate”,这个上面说过,更新下就好【apt update】,这里主要说下update和upgrade的区别;
【apt update】只是更新安装包的下载地址,并不会执行任何安装的动作,执行这条指令后你本地的环境、标准的库和函数等所有内容还是原来的,可以放心执行这个指令;
【apt upgrade】是查看所有更新并下载安装,会将你本地环境更新,我就是因为执行了这条指令才改变了strncmp函数的实现方式,导致我们eCos的代码编译出错的;
所以,如果代码中有些依赖库和函数比较老的话,最好不要【apt upgrade】。

下载失败:
不管是安装还是更新,需要联网下载东西时,经常会提示报错,“Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?”,或者其他的一些报错信息,这个时候先检查下是否有连接到互联网【ping 8.8.8.8】,OK的话再执行一次命令,有时候第二次执行就好了,还不行的话修改个文件【vim /etc/resolv.conf 】,在该文件最后添加一行,内容为“nameserver 8.8.8.8”,保存退出,再次安装或更新,就可以了。

samba问题:
装好samba后尝试登录时,有遇到登录不成功的情况,提示“不允许一个用户使用一个以上用户名”类似信息,这是因为我之前用test登录了samba,之后又创建了自己的用户名,用自己的用户名登录是提示此错误,打开cmd,输入【net use】查看当前连接的用户,【net use * /del /y】 删除当前所有用户连接,再重新输入用户名密码进入即可。
在14版本的Ubuntu上,还出现过“无法访问,可能没有权限访问”的问题,查询后安装了talloc【apt-get install libtalloc2】后重启ubuntu,OK,参见如下两个连接:
http://blog.csdn.net/merlinholland/article/details/52822501
http://www.linuxdiyf.com/linux/25915.html

ssh首次登录修改密码:
方便起见,添加完所有的用户名和密码后,需要设置每个用户首次登录强制修改密码,【chage -d 0 username】强制密码过期,这个用户首次登录时就会提示密码过期,必须修改,修改后需使用新密码重新登录。

eCos编译时还遇到一些问题,放到下一篇说。

原创粉丝点击