背景

我正在做一个小项目,做好了打算上线,所有需要买个服务器,看了一圈,发现还是卖个vps合算。买了之后,进行了一些列的设置,这里记录一下,以便后面查看。

  • 系统: ubuntu
  • 内存:1G

一、更改时区

1. 运行tzselec
2. 选择亚洲 Asia,确认之后选择中国(China),最后选择北京(Beijing)
3. 复制文件到/etc目录下:cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
4. 更新时间:sudo ntpdate time.windows.com

注意:如果提示“sudo 无法解析主机名称”,解决办法:/etc/hosts中的127.0.1.1对应的值修改为/etc/hostname的值。

二、区域语言设置

  1. 编辑文件:sudo vi /var/lib/locales/supported.d/local

  2. 写入相关内容,比如写入如下内容:

    代码:
    zh_CN.UTF-8 UTF-8
    zh_CN GB2312
    zh_CN.GBK GBK
    en_US.UTF-8 UTF-8
    fr_FR ISO-8859-1
    zh_CN.GB18030 GB18030

    这个文件是所有已经激活的区域语言的列表

  3. 生成相关的locales:sudo locale-gen --purge

  4. 编辑文件:sudo vi /etc/default/locale:

    写入相关内容.比如,写入如下内容:
    
    代码:
    LANG="zh_CN.UTF-8"
    LANGUAGE="zh_CN:zh"
    LC_ALL="zh_CN.UTF-8"
  5. 完了重启电脑,终端中输入命令locale,看看命令是否报错,正常的结果如下:

三、添加用户

不要使用root用户操作,所以需要创建一个用户用于安装、管理系统。

1、添加用户

首先用adduser命令添加一个普通用户,命令如下:

#adduser tommy  //添加一个名为tommy的用户
#passwd tommy   //修改密码
Changing password for user tommy.
New UNIX password:     //在这里输入新密码
Retype new UNIX password:  //再次输入新密码
passwd: all authentication tokens updated successfully.

2、赋予root权限

方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉

## Allows people in group wheel to run all commands

%wheel    ALL=(ALL)    ALL

然后修改用户,使其属于root组(wheel),命令如下:
#usermod -g root tommy

修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。

方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
tommy   ALL=(ALL)     ALL

修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。

3、允许新建的用户远程登录(使用密码登陆)

用useradd新增的用户不能直接用ssh远程访问,需要修改ssh相关配置

vi /etc/ssh/sshd_config
内容添加,如下:
AllowUsers root@192.168.1.32 admin
多个用户用空格隔开

注意:su [user]切换到其他用户,但是不切换环境变量,su - [user]则是完整的切换到新的用户环境。(建议用su -)

4、使用key登陆

在.ssh目录下创建authorized_keys,并把登陆机器的pub_key内容填入。下次ssh登录时就不需要输入密码,并且安全性更高。

参考

四、安装工具

  • 安装编译所需要的基本库:sudo apt-get install build-essential python-dev

  • 安装pip,git,mysql:
    • mysql: sudo apt-get install mysql-server
    • git: sudo apt-get install git
    • pip: sudo apt-get install python-pip
  • 安装docker:wget -qO- https://get.docker.com/ | sh (都在root下执行)
    • docker 安装ss
    • docker常用指令:重启——service docker restart;查看docker启动的容器——ps -aux | grep docker

参考

[linux]记录如何设置一个新的vps的更多相关文章

  1. (repost)在ARM Linux内核中增加一个新的系统调用

    实验平台内核版本为4.0-rc1,增加一仅仅打印Hello World的syscall,最后我们在用户空间swi验证 实验平台内核版本为4.0-rc1,增加的系统调用仅仅是简单打印一个Hello Wo ...

  2. 【Git教程】如何清除git仓库的所有提交记录,成为一个新的干净仓库

    一.引言 马三也算Github的忠实用户了,经常会把一些练手的项目传到Github上面进行备份.其中有一个名为ColaFramework的Unity框架项目,马三开发了一年多了,期间提交代码的时候在L ...

  3. 实验六:分析Linux内核创建一个新进程的过程

    原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 题目自拟,内容围绕对Linu ...

  4. linux 环境变量设置及查看

    1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量hello $ export HELLO="Hello!" $ ech ...

  5. 【转】linux环境变量设置

    1. 显示环境变量HOME $ echo $HOME /home/terry 2. 设置一个新的环境变量WELCOME $ export WELCOME="Hello!" $ ec ...

  6. linux环境变量设置 以及 source命令 Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程 Linux 设置环境变量

    定制环境变量  环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell.对于Linux来说一般是bash,但也可以重新设定或切换到其它的Shell.环境变量文件:/etc/profil ...

  7. 第六周——分析Linux内核创建一个新进程的过程

    "万子恵 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 &q ...

  8. 分析Linux内核创建一个新进程的过程

    一.原理分析 1.进程的描述 进程控制块PCB——task_struct,为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct ...

  9. linux内核分析作业6:分析Linux内核创建一个新进程的过程

    task_struct结构: struct task_struct {   volatile long state;进程状态  void *stack; 堆栈  pid_t pid; 进程标识符  u ...

随机推荐

  1. [3].jekyll的基础

    一.创建新项目 以下是一个获取最简单 Jekyll 模板并生成静态页面的方法.: Administrator@FANGPENG /e $ jekyll new myblog # 创建名为 myblog ...

  2. SCN试验之二 checkpoin scn 与数据库scn的关系

    oracle11g 观察数据库scn: SQL> select dbms_flashback.get_system_change_number from dual; GET_SYSTEM_CHA ...

  3. Spring MVC+Quartz 定时任务持久化

    请自行参考: http://sloanseaman.com/wordpress/2011/06/06/spring-and-quartz-and-persistence/ https://object ...

  4. 那些在学习iOS开发前就应该知道的事(part 2)

    英文原文:Things I wish I had known before starting iOS development—Part 2 http://www.cocoachina.com/ios/ ...

  5. LeetCode: Convert Sorted List to Binary Search Tree 解题报告

    Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted in as ...

  6. [GraphQL] Use GraphQLNonNull for Required Fields

    While certain fields in a GraphQL Schema can be optional, there are some fields or arguments that ar ...

  7. Tomcat抛出异常:ClientAbortException: java.net.SocketException: Connection

    在做一个小网站的时候,写了一个通过servlet实现文件下载功能的页面.当我点击超级练级,弹出下载对话框,点击保存正常下载,不会出现任何问题,当我我点击取消,服务器端就出现如下提示: ClientAb ...

  8. ssh框架搭建错误集合

    1,把jsp放入到WEB-INF/view目录下,struts2.xml配置<result name="success">/WEB-INF/view/home.jsp& ...

  9. Newtonsoft 自定义输出内容

    高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称 7.动态决定属性是否序列化 8.枚举值的自定义格式化问题 9.自定义类型转换 ...

  10. Multipart/form-data POST文件上传详解

    Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...