用户管理命令
useradd
添加用户
语法:useradd [选项] 用户名
passwd
修改密码命令
语法:passwd [选项] [用户名]
用户密码:生产环境中,用户密码长度8位以上,设置大小写加数字加特殊字符,要定期更换密码。
qwhA1/j=
userdel(user delete)
删除用户
-r 删除账号时同时删除宿主目录(remove)
权限管理
三种基本权限
r 读权限(read)
w 写权限(write)
x 执行权限 (execute)
权限说明
所有者 所属组 其他人
第1位:文件类型(d 目录,- 普通文件,l 链接文件)
第2-4位:所属用户(所有者)权限,用u(user)表示
第5-7位:所属组权限,用g(group)表示
第8-10位:其他用户(其他人)权限,用o(other)表示
第2-10位:表示所有的权限,用a(all)表示
类型: f 二进制文件 l 软连接文件 d 目录
字符 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读权限 | 可以查看文件内容 | 可以列出目录的内容(ls) |
w | 写权限 | 可以修改文件内容 | 可以在目录中创建删除文件( mkdir,rm ) |
x | 执行权限 | 可以执行文件 | 可以进入目录(cd) |
文件:
r-cat,more,head,tail,less
w-echo,vi
x-命令,脚本
目录:
r-ls
w-touch,mkdir,rm,rmdir
x-cd
能删除文件的权限是对该文件所在的目录有wx权限。
权限更改-chmod
英文:change mode (change the permissions mode of a file)
作用:改变文件或目录权限
语法:
chmod [{ugoa}{±=}{rwx}] [文件名或目录]
chmod [mode=421] [ 文件或目录]
参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的)
思考:一个文件的权限谁可以更改? root 所有者
root
文件所有者
例如:chmod u+x a.txt
chmod u+x,o-x a.txt
用数字来表示权限(r=4,w=2,x=1,-=0)
例如:chmod 750 b.txt
rwx和数字表示方式能随意切换
注意:root用户是超级用户,不管有没有权限,root都能进行更改。用普通用户测试权限。
不能用一个普通用户去修改另一个普通用户的权限。
更改所有者-chown
英文:change file ownership
作用:更改文件或者目录的所有者
语法 : chown user[:group] file…
-R : 递归修改
参数格式 :
user : 新的档案拥有者的使用者 ID
group : 新的档案拥有者的使用者群体(group)
eg:#chown lee file1 把file1文件的所有者改为用户lee
eg:#chown lee:test file1 把file1文件的所有者改为用户lee,所属组改为test
eg:#chown –R lee:test dir 修改dir及其子目录的所有者和所属组
改变所属组chgrp
英文:change file group ownership
作用:改变文件或目录的所属组
语法 : chgrp [group] file…
eg:chgrp root test.log 把test.log的所属组修改为root
RPM软件包管理
RPM软件包也称为二进制软件包
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的发行版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便
RPM命令使用
rpm的常用参数
i:安装应用程序(install)
vh:显示安装进度;(verbose hash)
U:升级软件包;(update)
qa: 显示所有已安装软件包(query all)
e:卸载应用程序(erase)
注意:如果其它软件包有依赖关系,卸载时会产生提示信息,可使用–nodeps强行卸载。
查询所有安装的rpm包: # rpm –qa
查询mysql相关的包: # rpm –qa | grep mysql
安装:rpm -ivh jdk.rpm
卸载: rpm –e mysql*
强行卸载:rpm –e mysql* --nodeps
图形化界面,手动挂载
YUM管理
yellowdog updater modified 软件包管理工具
应用yum的好处:
1,自动解决软件包依赖关系
2,方便的软件包升级
查询
yum list 查询所有可用软件包列表
yum search 关键字 搜索服务器上所有和关键字相关的包
可以通过yum info 关键字 来查找包名
安装
yum -y install 包名 -y 自动回答yes
升级
yum -y update 包名
注意:如果不加包名,就升级所有的,包括内核。必须加包名升级单个软件包,慎用升级所有的
检测升级 yum check-update
卸载
yum -y remove 包名
帮助
yum --help、man yum
yum clean all 清除缓存和旧的包
yum repolist 查看当前可用的yum源
yum deplist httpd 列出一个包所有依赖的包
搭建本地yum源
#cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$ releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$ releasever&arch=$ basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$ releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
解释:
[base] 容器名称,一定要放在[]中
name 容器说明,这个可以自己随便写
mirrorlist 镜像站点,这个可以注释掉
baseurl yum源服务器的地址。默认是CentOS官方的yum源服务器,
enabled 此容器是否生效,如果不写或写enable=1都是生效,写成enable=0就是不生效
gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效
pggkey 数字证书的公匙文件保存位置,不用修改
1、挂载光盘
#mkdir /mnt/cdrom
#mount /dev/cdrom /mnt/cdrom
卸载挂载用umount /mnt/cdrom
2、让网络yum源文件失效
cd /etc/yum.repos.d/
rename .repo .repo.bak * #重命名所有的.repo文件
cp CentOS-Media.repo.bak CentOS-Media.repo #配置一个.repo文件
3、修改光盘yum源文件
vi CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#这里的地址为自己光盘挂载地址,并把不存在的地址注释掉,在行首注释
#file:///media/cdrom/
#file:///media/cdrecorder/
gpgcheck=1
enabled=1 #把原来的0改为1,让这个yum源配资文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
可使用 yum repolist 查看 当前可用yum源
yum clean all
yum repolist
安装minimal镜像
Vmware11 安装Centos 6Minimal 教程
1 打开vmware虚拟机
选择新建虚拟机
2 选择自定义安装
3 选择稍后安装操作系统
4 选择操作系统及版本
5 命名虚拟机
6 配置处理器和内存
7 选择网络类型
8 选择控制器类型和磁盘类型
9 分配磁盘空间
10 指定磁盘文件
已创建完成,但还不能使用
此时启动会失败,先去本地找iso镜像文件,本地没有去网络下载,下载实际做的是,发一个广播,在所在网段找寻是否有提供镜像的server
11 挂载镜像
挂载完成之后,启动虚拟机
12 选择安装系统
13 跳过磁盘检测
14 选择语言
15 选择键盘格式
16 选择存储类型为基本存储
17 格式化磁盘
18 指定主机名和时区
19 指定root的密码
20 自定义分区
创建一个标准分区
创建一个/boot分区
创建一个swap交换空间
空间大小一般为1-2倍的内存空间。
划分根分区
4个分区
主分区 最多有4个
扩展最多有1个
主分区 + 扩展分区 最多有4个
扩展分区下面有多个逻辑分区
格式化磁盘:
21 安装
安装中。。。
安装完成
重启后界面:
鼠标进入后,用户名输入root,密码即为安装时设置的密码。
搭建集群环境
集群 :多台机器组成集群
假定使用3台机器
运行模式
1, 单机模式
2, 伪分布模式 hdfs
3, 集群模式 master slave1 slave2 namenode datanode
制作模板机
使用minimal镜像 安装虚拟机
把该虚拟机当做模板机
对模板机进行配置,然后基于模板机进行克隆
模板机配置
配置主机名
vi /etc/sysconfig/network
注意 :如果配置正确后,主机名显示不正常。可通过以下命令修改
#sysctl kernel.hostname=master
配置映射关系,可添加别名
vi /etc/hosts
建议:可提前规划集群, 在hosts中添加各节点的ip和主机名。
规划如下:
配置ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
注意 :
minimal版中,网卡默认是不开机自启动的,需要修改ONBOOT为yes
修改后的ip配置:删除mac地址信息
可以直接删除映射关系配置文件,避免mac地址的冲突。
#rm –rf /etc/udev/rules.d/70-persistent-net.rules
关闭防火墙
设置快照
快照,相当于还原点,如果出现一些不可恢复的问题,可以进行还原。
右键 – 快照 – 拍摄快照
可选择快照 – 转到 进行快照还原
或者直接还原到最新快照
补充:在生产环境中,是没有快照这一说法,需要对重要的文件,进行备份,或者说写脚本,配置定时任务,进行一个定时的备份。
checkpoint
防火墙
#查看防火墙状态
service iptables status
#开启防火墙
service iptables start
#关闭防火墙
service iptables stop
#重启防火墙
service iptables restart
或者
开启:/etc/init.d/iptables start
关闭:/etc/init.d/iptables stop
重启:/etc/init.d/iptables restart
#查看防火墙开机启动状态
chkconfig iptables –list
#开机启动
chkconfig iptables on
#关闭防火墙开机启动
chkconfig iptables off
/sbin/chkconfig --level 2345 iptables off 关闭防火墙的自动运行
学习阶段,建议关闭防火墙。
把该虚拟机当做模板机。用于生成快速生成其他机器。
克隆虚拟机
使用克隆方式,快速生成多台节点,组建集群。
关机,右键 – 管理 – 克隆
克隆源,可选当前状态或快照点。
克隆完成。
右键 – 设置
生成MAC地址
如果mac地址冲突或无效
解决方案1:
1,直接删除/etc/sysconfig/network-scripts/ifcfg-eth0中的mac配置信息
2,直接删除文件 /etc/udev/rules.d/70-persistent-net.rules
3,重启系统
解决方案2:
1,找到生成的最新的mac地址
2,修改ip地址配置文件, 修改为生成的mac地址:
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
3,vi /etc/udev/rules.d/70-persistent-net.rules 修改配置文件
4,重启系统
scp & ssh
集群模式下,各节点之间如何方便的拷贝文件?
命令格式:
scp file 远程用户名@远程服务器IP:~/ (注意:冒号和目录之间不能有空格)
如果拷贝目录,需要加-r 选项。
使用root用户
eg: scp /etc/profile root@node2:/etc
eg: scp -r /usr/jdk1.8 node2:/usr/java
eg:scp hello.log node2:pwd
eg:scp hello.log node2:
P
W
D
注
:
使
用
‘
p
w
d
‘
或
者
PWD 注:使用`pwd`或者
PWD注:使用‘pwd‘或者PWD 默认到当前目录。
~:到当前用户的宿主目录
scp /etc/services node2:/root/service.hard
可以通过这种方式修改拷贝的文件名。
如何方便的切换到其他节点??
ssh node2
配置免密登录
免密登录
1, 在第一台机器上生成一对钥匙,公钥和私钥
当前用户的宿主目录下的.ssh目录多了两个文件
将公钥拷贝给要免密码登录的机器
注意:主机名和ip都可以(确保配置了主机名 ip的映射)
还需要输入密码
拷贝完成之后,会在要免密登录的机器上生成授权密码文件
验证免密码登录
注意 :免密码登录是单向的
扩展:
ssh免密登录原理:
1, node1 使用 ssh-keygen –t rsa 生成公钥和私钥
2, ssh-copy-id root@node2 将公钥拷贝到node2上,实际上是把公钥内容追加到 authorized_keys文件中。
请求时:
1,node1向node2发送连接请求时,附带主机,ip地址等信息
3, node2收到请求后,去授权文件里查找node1的公钥,找到之后,随机生成一个字符串,并用公钥加密,并发送给node1
4, node1接收到密文之后,用私钥解密,并把解密结果返回给node2
5, node2拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。