机房冷风吹-Linux基础环境搭建(基础篇)
当一台服务器或者虚拟机装完系统之后,需要进行基础的环境搭建,调整硬盘,逻辑卷,yum源,时钟同步等等,本篇文章的目的就是用最基本的操作步骤,用最简单的命令,不用动脑直接复制粘贴,根据需求挑选自己需要的进行操作快速完成环境搭建。
本篇基于centos7,6版本的请相应调整命令
一、关闭防火墙
防火墙记得关,防火墙记得关,防火墙记得关,防火墙记得关,防火墙记得关,防火墙记得关!!!
部署的时候如果开着就会因为它,有的服务就奇奇怪怪的不好使了。
[root@zzxt ~]# systemctl stop firewalld
[root@zzxt ~]# systemctl disable firewalld
[root@zzxt ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
二、关闭SElinux
部署的时候会更改系统文件,selinux会保护系统文件,关掉selinux以便部署。
[root@zzxt ~]# setenforce 0 ##临时关闭selinux
[root@zzxt ~]# getenforce ##获取selinux状态
Permissive
[root@zzxt ~]# vi /etc/selinux/config ##永久关闭selinux
##enforcing是强制模式会限制文件,permissive是宽容模式不限制文件,desabled关闭模式
SELINUX=disabled
三、存储操作
过程:分区-格式化-挂载
3.1 本地硬盘分区
须知:
MBR:MBR分区表(即主引导记录)大家都很熟悉。所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区
GPT: GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。
3.1.1 创建硬盘分区-fdisk
需登录root用户。
输入 fdisk -l 查看分区情况。
输入 fdisk /dev/sdb 创建分区(通过fdisk -l获取)。
- 输入n新建分区。
- 分区起始位置可以直接回车选择默认。
- 分区最后位置可以直接回车选择默认。
- 输入p打印分区情况,检查是否创建成功。
- 输入w保存分区。
[root@zzxt ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a3a13
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@zzxt ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x3398f95d 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n # 新建分区
Partition type: # 回车默认是主分区
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p # 回车默认
分区号 (1-4,默认 1): # 回车默认
起始 扇区 (2048-2097151,默认为 2048): # 回车默认
将使用默认值 2048
Last 扇区, +扇区 or +size{
K,M,G} (2048-2097151,默认为 2097151): # 回车默认
将使用默认值 2097151
分区 1 已设置为 Linux 类型,大小设为 1023 MiB
命令(输入 m 获取帮助):p # 打印设备情况
磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3398f95d
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2097151 1047552 83 Linux
命令(输入 m 获取帮助):w # 保存设置
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
3.1.2 创建硬盘分区-parted
parted命令可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区,fdisk命令对于大于2T的分区无法划分。
parted是一个可以分区并进行分区调整的工具,他可以创建,破坏,移动,复制,调整ext2 linux-swap fat fat32 reiserfs类型的分区,可以创建,调整,移动Macintosh的HFS分区,检测jfs,ntfs,ufs,xfs分区。
需登录root用户。
输入 fdisk -l 查看分区情况。
输入 parted /dev/sdb 创建分区(通过fdisk -l获取)。
- 输入mklabel gpt,选用gpt格式的分区表。
- mkpart primary 0 2190gb,确定分区类型大小。
- print,打印信息。
- quit,保存退出。
[root@zzxt ~]# fdisk -l
**
磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
**
[root@zzxt ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt #选择分区表格式
(parted) print #打印信息
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
(parted) mkpart primary 0KB 1074MB #确定分区类型大小
警告: You requested a partition from 0.00B to 1074MB (sectors 0..2097151).
The closest location we can manage is 17.4kB to 1074MB (sectors 34..2097118).
Is this still acceptable to you?
是/Yes/否/No? y
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? i
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 17.4kB 1074MB 1074MB primary
(parted) quit #保存退出
信息: You may need to update /etc/fstab.
[root@zzxt ~]# fdisk -l
磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: B2CBB080-88F0-45AD-A57F-181297FDC883
# Start End Size Type Name
1 34 2097118 1024M Microsoft basic primary
[root@zzxt ~]# ls /dev/sd
sda sda1 sda2 sdb sdb1
3.2 格式化-挂载硬盘
创建文件系统
mkfs.ext4 /dev/sdb1
创建挂载路径:
mkdir -p /data
挂在LV到用户路径:
mount -t ext4 /dev/sdb1 /data
永久挂载:vi /etc/fstab,在最后一行添加如下内容(下列内容均为示例,根据实际情况修改参数):
/dev/sdb1 /data ext4 defaults 0 0
3.3 挂载存储
3.2.1 SAN/IPSAN-多路径
multipath常用命令
multipath -r (修改multipath.conf配置文件之后重新加载)
multipath -ll (查看多路径状态)
multipath -v2 (格式化路径,检测路径,合并路径)
multipath -v3 (查看多路径详情blacklist、whitelist和设备wwid)
multipath -F (删除现有链路)
查看映射的存储盘
fdisk-l 可以看到很多块盘,都是没有进行聚合的物理盘。
下载依赖包
[root@zzxt ~]# yum install device-mapper
检查安装包情况
[root@zzxt ~]# rpm -aq|grep multipath
device-mapper-multipath-libs-0.4.9-111.el7.x86_64
device-mapper-multipath-0.4.9-111.el7.x86_64
重启系统
[root@zzxt ~]# reboot
将多路径模块添加至内核模块中
[root@zzxt ~]# modprobe dm-multipath
[root@zzxt ~]# modprobe dm-round-robin
检查内核添加情况
[root@zzxt ~]# lsmod |grep multipath
dm_multipath 27427 1 dm_round_robin
dm_mod 123303 10 dm_round_robin,dm_multipath,dm_log,dm_mirror
启动multipath服务
[root@zzxt ~]# systemctl start multipathd.service
设置开机自启动
[root@zzxt ~]# systemctl enable multipathd
查看需要设置多路径磁盘的wwid
[root@zzxt ~]# more /etc/multipath/wwids
如果查询不到,则需要一个个查询
[root@zzxt ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
创建multipath配置文件
[root@zzxt ~]# /sbin/mpathconf --enable
编辑multipath配置文件
[root@zzxt ~]# vim /etc/multipath.conf
defaults {
#全局属性的默认设置。
find_multipaths yes #默认值no,这将为黑名单外的所有设备创建多路径设备。如置为yes,则将为3种场景创建多路径设备:不在黑名单的两个路径的wwid相同;用户手动强制创建;一个路径的wwid与之前已经创建的多路径设备相同。
user_friendly_names no #默认值为no
}
blacklist {
#黑名单,multipath会忽略黑名单中的设备
wwid 3600508b1001c5ae72efe1fea025cd2e5 #不使用多路径的本地盘wwid号
devnode "^sda" #不使用多路径的本地盘名称,跟设备名称的正则表达式
}
#blacklist_exceptions{} #免除黑名单,加入黑名单内,但包含在这里的设备不会被忽略,是多路径管理的设备列表。
multipaths {
#多路径相关配置
multipath {
#单块存储盘配置,如有多块存储盘,如多个multipath{}配置
wwid 36000144000000010b0363b427faacc91 #---使用多路径的存储盘wwid号
alias zzx01 #设备别名
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}
multipath {
wwid 36000144000000010b0363b427faacc92
alias zzx02
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}
}
devices {
#存储设备相关配置,每个device子节用于描述一个设备
device {
vendor "EMC" #存储厂家名称可通过multipath –v3获取到(必填)
product "unity400" #存储产品型号
path_grouping_policy multibus #默认的路径组策略
getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" #获得唯一设备号使用的默认程序
path_checker readsector0 #决定路径状态的方法
path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法
hardware_handler "0"
failback 15
rr_weight priorities
no_path_retry queue
}
}
保存文件后退出.
启动multipath
[root@zzxt ~]# multipath -v2
[root@zzxt ~]# systemctl restart multipathd.service
查看多路径配置情况
[root@zzxt ~]# multipath -ll
Oct 26 14:59:27 | /etc/multipath.conf line 100, invalid keyword: devices
Oct 26 14:59:27 | /etc/multipath.conf line 101, invalid keyword: device
Oct 26 14:59:27 | /etc/multipath.conf line 102, invalid keyword: vendor
Oct 26 14:59:27 | /etc/multipath.conf line 103, invalid keyword: product
Oct 26 14:59:27 | /etc/multipath.conf line 104, invalid keyword: path_grouping_policy
Oct 26 14:59:27 | /etc/multipath.conf line 105, invalid keyword: getuid_callout
Oct 26 14:59:27 | /etc/multipath.conf line 106, invalid keyword: path_checker
Oct 26 14:59:27 | /etc/multipath.conf line 107, invalid keyword: path_selector
Oct 26 14:59:27 | /etc/multipath.conf line 108, invalid keyword: hardware_handler
Oct 26 14:59:27 | /etc/multipath.conf line 109, invalid keyword: failback
Oct 26 14:59:27 | /etc/multipath.conf line 110, invalid keyword: rr_weight
Oct 26 14:59:27 | /etc/multipath.conf line 111, invalid keyword: no_path_retry
Oct 26 14:59:27 | unmatched '}' at line 114 of /etc/multipath.conf
Oct 26 14:59:27 | /etc/multipath.conf line 114, invalid keyword: }
zzx02 (36000144000000010b0363b427faacc92) dm-7 EMC ,Invista
size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 7:0:0:5 sdg 8:96 active ready running
|- 8:0:0:5 sdaq 66:160 active ready running
|- 7:0:1:5 sdp 8:240 active ready running
|- 8:0:1:5 sdaz 67:48 active ready running
|- 7:0:2:5 sdy 65:128 active ready running
|- 8:0:2:5 sdbi 67:192 active ready running
|- 7:0:3:5 sdah 66:16 active ready running
`- 8:0:3:5 sdbr 68:80 active ready running
zzx01 (36000144000000010b0363b427faacc91) dm-5 EMC ,Invista
size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 7:0:0:4 sdf 8:80 active ready running
|- 8:0:0:4 sdap 66:144 active ready running
|- 7:0:1:4 sdo 8:224 active ready running
|- 8:0:1:4 sday 67:32 active ready running
|- 7:0:2:4 sdx 65:112 active ready running
|- 8:0:2:4 sdbh 67:176 active ready running
|- 7:0:3:4 sdag 66:0 active ready running
`- 8:0:3:4 sdbq 68:64 active ready running
如果配置正确的话就会在/dev/mapper/目录下多出mpath0、mpath1(自动分配的名称)等之类设备,不过如果在配置的时候起了别名,会使用别名来代替自动分配的名称
[root@zzxt ~]# ll /dev/mapper/
lrwxrwxrwx 1 root root 7 Oct 26 14:59 zzx01 -> ../dm-5
lrwxrwxrwx 1 root root 7 Oct 26 14:27 zzx02 -> ../dm-7
用fdisk -l命令可以看到多路径软件创建的磁盘
[root@zzxt ~]# fdisk -l
Disk /dev/mapper/zzx01: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/zzx02: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
之后再进行分区格式化操作,参考3.1
3.2.2 NAS-nfs
NAS存储我们用nfs文件共享的方式进行挂载,方法很简单
#创建挂载点
mkdir /nas
#添加自动挂载
echo “192.168.3.2:/nas /nas nfs defaults 0 0” >>/etc/fstab
#执行挂载
mount -a
#查看挂载情况:
df -h
挂载后不需要自己创建文件系统,因为nfs服务端已经创建过文件系统,直接进行使用就好。
四、LVM管理
做逻辑卷应该在硬盘分区之后在格式化之前
4.1创建PV
需登录root用户。
创建系统PV输入命令:pvcreate dev/sdb1。
查看系统PV输入命令pvscan。
[root@zzxt dev]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@zzxt dev]# pvscan
PV /dev/sda2 VG centos_zzxt lvm2 [<19.00 GiB / 0 free]
PV /dev/sdb1 lvm2 [1023.00 MiB]
Total: 2 [<20.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [1023.00 MiB]
4.2创建VG
vgcreate vg00 /dev/sdb1。
vgdisplay查看系统VG。
[root@zzxt dev]# vgcreate vg00 /dev/sdb1
Volume group "vg00" successfully created
[root@zzxt dev]# vgdisplay
--- Volume group ---
VG Name vg00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 1020.00 MiB
PE Size 4.00 MiB
Total PE 255
Alloc PE / Size 0 / 0
Free PE / Size 255 / 1020.00 MiB
VG UUID yUSuXi-bz56-Xd3C-Zps6-e4Fn-yuGD-Pfr0j4
4.3创建LV
lvcreate --name lv01 --size 1020m /dev/vg00
[root@zzxt dev]# lvcreate --name lv01 --size 1020m /dev/vg00
Logical volume "lv01" created.
[root@zzxt dev]# lvscan
ACTIVE '/dev/vg00/lv01' [1020.00 MiB] inherit
之后进行分区格式化挂载
[root@zzxt rpm-gpg]# mkfs.ext4 /dev/vg00/lv01
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65280 inodes, 261120 blocks
13056 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@zzxt rpm-gpg]# mkdir /home/lvnew
[root@zzxt rpm-gpg]# mount -t ext4 /dev/vg00/lv01 /home/lvnew/
[root@zzxt rpm-gpg]# vi /etc/fstab
/dev/vg00/lv01 /home/lvnew ext4 defaults 0 0
4.4 lv扩容
硬盘新分区-分区格式化-创建pv-加入vg-扩容lv-扩容挂载点的文件系统
mkfs -t ext4 /dev/sdb2
pvcreate /dev/sdb2
vgextend vg00 /dev/sdb2
lvdisplay
lvextend -L 2G /dev/vg_test/lv_root #扩展LV 2G为总大小 如果是增加4G 可写为 +4G
resize2fs /dev/vg_test/lv_root 2G
df -h
4.5 lv 缩小
卸载文件系统-检查坏块-缩小文件系统-缩小lv-重新挂载
umount /home/lvnew
e2fsck -f /dev/vg00/lv01
resize2fs /dev/vg00/lv01 500M #缩小到500m
lvreduce -L 500M /dev/vg00/lv01 #缩小到500m,如果是减少,可以是lvreduce -L -500M
mount -t ext4 /home/lvnew
五、网络
使用命令 nm-connection-editor 命令可以进入图形界面配置,以下是命令行界面的配置
5.1单网卡
动态ip
修改eth0的文件
[root@zzxt ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #设备名
ONBOOT=yes #网络自启动
BOOTPROTO=dhcp # dhcp协议获取ip地址
DNSPEER=yes # 不使用dhcp获取的dns地址,自己可以在/etc/resolv.conf中指定
静态ip
修改eth0的文件
[root@zzxt ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #设备名称
ONBOOT=yes #是否开机自动启动
BOOTPROTO=static #ip分配方式:none:不使用启动地址协议,bootp:BOOTP协议,dhcp:DHCP动态地址协议,static:静态地址协议
TYPE=Ethernet #设备类型以太网
IPADDR=192.168.1.55
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
USERCTL=no #非root用户不运行控制该网络接口
修改完成后重启网络服务
systemctl restart network
输入ifconfig查看网络状态
ping网关看网络是否通畅
5.2双网卡
1、修改网卡配置
a、新建文件ifcfg-bond0
新建文件ifcfg-bond0
[root@zzxt ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
USERCTL=no
IPADDR=192.168.1.55
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
b、修改eth0的文件
[root@zzxt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
USERCTL=no
c、修改eth1的文件
[root@zzxt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
USERCTL=no
2、加载bonding模块
vi /etc/modprobe.d/dist.conf 在文件的末尾加入
alias bond0 bonding
options bond0 mode=1 miimon=100
mode模式
0负载分担round-robin,需要接入交换机做端口聚合
1表示主备模式,即同时只有1块网卡在工作
2-6可以自行了解
miimon链路检查时间为100ms
3、将bond0设置为开机自动加载
vi /etc/rc.d/rc.local
在倒数第2行,增加一句
Ifenslave bond0 eth0 eth1
4、重启网卡
systemctl restart network
5、验证网卡绑定是否成功
输入ifconfig ,查看bond0,eth0,eth1三块网卡的MAC地址是否一样,如果一致,基本可以确定双网卡绑定已生效。
六、yum源
6.1 aliyum源
1.备份并删除原本的仓库文件
cd /etc/yum.repos.d/
mkdir allbak
mv ./* allbak
此时 /etc/yum.repos.d/底下就没有repo文件,此时无法使用yum工具,必须配置yum源,生成新的.repo文件
2.下载阿里云仓库文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3.清空原本yum缓存
yum clean all
4.生成新的阿里云的yum缓存,加速下载预热数据
yum makecache
6.2本地yum源
使用光盘做本地yum源
mount -o loop /dev/sr0 /mnt
vi /etc/yum.repos.d/mnt.repo
[mnt]
name=mnt
baseurl=file:///mnt
enabled=1
yum list |wc -l
导入key,不执行可能会报错
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-*
七、时钟同步
这里使用的是chrony服务
chrony 是网络时间协议(NTP)的通用实现。
chrony 包含两个程序:chronyd 是一个可以在启动时启动的守护程序。chronyc 是一个命令行界面程序,用于监视 chronyd 的性能并在运行时更改各种操作参数。
安装启动chrony
yum -y install chrony
systemctl enable chronyd
systemctl start chronyd
修改服务配置文件,注意两个地方
vim /etc/chrony.conf
server 0.centos.pool.ntp.org iburst #修改自己想配置的时钟同步服务器
allow 192.168.0.0/16 #允许该网段向自己进行同步时间,如果本机想配置成为时钟同步服务器,请取消注释并配置
修改后生效
修改后重启服务
systemctl restart chronyd
查看时间同步状态
timedatectl status
查看时间同步源
chronyc sources -v
时间同步源状态
chronyc sourcestats -v
八、创建应用用户
正常如果没有特殊要求的话useradd就可以满足,以下介绍一种非常稳妥的添加用户的方式,可以指定用户id用户组名和id,根据需求自己修改,个人很推荐这样添加用户。
需要登陆root用户,以下命令中的username为例子,根据实际情况修改username即可:
创建用户组
groupadd -g 500 username
创建用户
useradd -d /home/username -u 2000 -g username username
设置用户密码
/bin/echo "username"|/usr/bin/passwd --stdin username
拷贝用户环境文件
/bin/cp /etc/skel/.bash*/home/username -r
修改用户家目录权限以及属组
cd /home
chown username: username /home/username
chmod 755 /home/username
九、安装JDK
有时需要手动安装指定版本的jdk,需要自行下载
jdk下载地址
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
以1.8.0_144版本为例,其他版本请相应修改版本号。
解压JDK安装包
登陆用户:root,解压jdk-8u144-linux-x64.tar.gz到/usr/local目录,执行以下命令:
cd /usr/local
tar xvf jdk-8u144-linux-x64.tar.gz
chown -R root:root /usr/local/jdk1.8.0_144
配置全局环境变量
登陆用户:root,编辑/etc/profile文件
输入 vi /etc/profile 编辑环境变量控制文件
Shift+g跳转到文件末尾
按o在此文件末尾添加一下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
输入 :wq 保存并退出
生效环境变量 source /etc/profile
普通用户如配置变量
登录普通用户
vi ~/.bash_profile
最后添加两句:
export JAVA_HOME=/usr/local/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
保存退出后生效:
source ~/.bash_profile
检查环境变量
登陆相应用户,执行java –version,检查版本为1.8.0_144即可。
来源:oschina
链接:https://my.oschina.net/u/4309857/blog/4692560