用户
-
超级管理员用户 :root id为0
-
普通用户
-
系统用户 :专门用来启动系统一些服务和进程的,不可以登入,id值默认为1-999(centos7)(centos6:1-499)
-
可登入用户 :能登入系统的用户,id值:(centos:1000-65535)(centos6:500-65535)
-
useradd
Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]
普通用户的id是递增的,系统用户的id是递减的
-G :指定用户的附加组
[root@localhost ~]#useradd -G root,alex1 alex3
[root@localhost ~]#id alex3
uid=1006(alex3) gid=1006(alex3) groups=1006(alex3),0(root),1004(alex1)
-k :指定复制哪个文件夹下的内容,需要和-m一起使用
-m :创建用户的家目录
# 将network-scripts里面的文件复制到alex4中
[root@localhost ~]#useradd -k /etc/sysconfig/network-scripts/ -m alex4
# 查询
[root@localhost ~]#ls /home/alex4/
-c "message" :指定用户的描述信息
[root@localhost ~]#useradd -c 'xxxxx' alex5
# 查看描述信息
[root@localhost ~]#vim /etc/passwd
alex5:x:1008:1008:xxxxx:/home/alex5:/bin/bash
-N :不创建同名的组,以users为组
[root@localhost ~]#useradd -N alex6
[root@localhost ~]#id alex6
uid=1009(alex6) gid=100(users) groups=100(users)
-
-d : 用来指定家目录
[root@localhost ~]#useradd -d /opt/alex alex1
[root@localhost opt]#ll /opt/
total 12
drwx------. 3 alex1 alex1 78 Aug 28 17:14 alex
# 家目录已存在会报错,但用户已创建
[root@localhost ~]#useradd -d /opt/alex alex12
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[root@localhost ~]#id alex12
uid=2010(alex12) gid=2010(alex12) groups=2010(alex12) -
-D :显示系统的默认配置
-D [options] 可以修改系统的默认配置
[root@localhost ~]#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
# 修改shell
[root@localhost ~]#useradd -D -s /sbin/nologin -
-u :指定用户的id
[root@localhost ~]#useradd -u 2008 alex10
[root@localhost ~]#id alex10
uid=2008(alex10) gid=2008(alex10) groups=2008(alex10) -
-s :指定用户登入后使用的shell
# 查看可以使用的shells
[root@localhost ~]#cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost ~]#useradd -s /sbin/nologin alex9
# 可以登入alex9这个账户,但系统发现shell是/sbin/nologin,紧接着给踢了 -
-r :创建系统用户(id递减)
[root@localhost ~]#useradd -r alex7
[root@localhost ~]#id alex7
uid=988(alex7) gid=982(alex7) groups=982(alex7) -
-g : 用来指定用户组的id
[root@localhost alex]#id alex1
uid=1004(alex1) gid=1004(alex1) groups=1004(alex1)
# 指定alex2的gid和alex1的gid一样
[root@localhost ~]#useradd -g alex1 alex2
[root@localhost ~]#id alex2
uid=1005(alex2) gid=1004(alex1) groups=1004(alex1) -
相关文件
-
vim /etc/default/useradd 创建用户的默认文件
-
vim /etc/login.defs 默认复制的文件
-
用户修改:usermode
-c :修改描述信息
[root@localhost ~]#usermod -c 'ooo' alex5
alex5:x:1008:1008:ooo:/home/alex5:/bin/bash # 由‘xxx’改成了‘ooo’
-d :修改家目录,默认不会创建新目录,如果想移动家目录,则需使用-m
[root@localhost ~]#usermod -d /opt/alex11 -m alex11
[root@localhost ~]#ls /opt/
alex alex11 etc rh
-g :修改用户组
[root@localhost ~]#usermod -g xin alex2
-G :修改用户的附加组,默认情况是替换
[root@localhost ~]#usermod -G root,alex10 alex2
[root@localhost ~]#id alex2
uid=1005(alex2) gid=1004(alex1) groups=1004(alex1),0(root),2008(alex10)
-a :追加附加组
[root@localhost ~]#usermod -G alex10 alex2
[root@localhost ~]#id alex2
uid=1005(alex2) gid=1000(xin) groups=1000(xin),2008(alex10)
# 追加root
[root@localhost ~]#usermod -a -G root,alex10 alex2
[root@localhost ~]#id alex2
uid=1005(alex2) gid=1000(xin) groups=1000(xin),0(root),2008(alex10)
-l newname :修改用户的登入名称
[root@localhost ~]#usermod -l gg alex5
[root@localhost ~]#id gg
uid=1008(gg) gid=1008(alex5) groups=1008(alex5)
-L :锁定用户,不能登入系统,修改密码默认情况下可以登入
-U :解锁用户
-s :修改用户登入后的shell
-u :修改用户的uid
[root@localhost ~]#usermod -u 8888 alex6
[root@localhost ~]#id alex6
uid=8888(alex6) gid=100(users) groups=100(users)
-e 年-月-日 :修改用户过期时间,过期以后不能登入
usermod -e 2019-09-01 alex10
删除用户 :userdel
userdel 用户名 :删除用户,但不删除用户的家目录
-f : 强制删除
-r :删除家目录
默认情况下,用户登入状态下是不能删除用户,强制删除用户以后,用户还是可以用的
查看用户相关信息 :id
-g :只显示组id
-G :只显示附加组id
-u :只显示用户id
-n :显示名称,需要和g,u,G配合使用,不能直接使用
[root@localhost ~]#id alex6
uid=8888(alex6) gid=100(users) groups=100(users)
[root@localhost ~]#id -n -u alex6
alex6
切换用户
Usage:
su [options] [-] [USER [arg]...]
切换用户的方式
-
完整切换:su -username 登入式切换,环境变量等都会切换
-
不完整切换 :su username 不会切换用户的环境变量,家目录等
-
root切换普通用户不需要密码,非root用户切换需要密码
[root@localhost ~]#su - alex2
Last login: Wed Aug 28 20:01:58 CST 2019 on pts/1
[alex2@localhost ~]$su - alex3
Password:
Last login: Wed Aug 28 18:48:09 CST 2019 from 192.168.71.1 on pts/3
[alex3@localhost ~]$
切换用户执行命令,最后还是回到之前用户
[root@localhost ~]#su - alex2 -c 'whoami'
alex2
[root@localhost ~]#
# 可以退回到上一个用户
[alex2@localhost root]$exit
exit
[root@localhost ~]#
执行本身不能执行的命令
-
sudo 配置文件为 /etc/sudoers
vim /etc/sudoers # 进入到文件中
root ALL=(ALL) ALL # 在root下面添加一个用户,这样才能执行root才能执行的命令
alex2 ALL=(ALL) ALL
peiqi ALL=(ALL) NOPASSWD:ALL
# 其中的NOPASSWD 是不需要输入密码
[root@localhost ~]#su - alex3
[alex3@localhost ~]$sudo useradd eva # 创建用户eva
/etc/passwd 文件
-
用户名称
-
密码 :使用x来占位
-
uid
-
gid
-
描述信息
-
家目录
-
登入后的shell
设置密码:passwd
passwd [OPTION...] <accountName>
-d :删除指定用户的密码,删除之后就不能登入了
-l :锁定用户
-u :解锁用户
-e :在下次登入以后强制用户修改密码
-f :强制操作
-x maxday :密码最长使用时间
-n minday :密码的最短使用时间
-w warnday :密码过期前多长时间提醒
-i inactiveday :密码过期多长时间后禁用
--stdin :从标准输入读取密码
# 设置alex6的密码为123
[root@localhost ~]#echo '123' | passwd --stdin alex6
存放文件 :/etc/shadow
-
用户名
-
密码 : $加密方式(默认是sha512)$盐$加密后的字符串
-
从1970年1月1号到最近一次修改密码经过的时间
-
密码的最短使用时间(0表示随时可以修改)
-
密码的最长使用时间(99999表示永不过期)
-
密码过期多长时间提醒(默认是一周)
-
密码过期多长时间后锁定
-
从1970年1月1号开始算起,多长时间后账号失效
密码复杂性策略
-
必须规定数字 、大小写、特殊字符
-
密码必须12位以上
-
不能为弱口令,必须是随机密码
-
3个月或者半年修改一次
机器免密登入
ssk-keygen 一路回车
ssh-copy -id 要登入的机器
修改用户密码策略 :chage
chage 用户名
chage login 可以使用交互式的修改密码策略
chfn :修改用户的个人信息
用户组:
-
超级用户组
-
普通用户组
-
系统用户组
-
可登入用户组
[root@localhost ~]#groupadd peiqi
[root@localhost ~]#tail -1 /etc/group
peiqi:x:2011:
-g :指定组id
-r :创建系统用户组
[root@localhost ~]#groupadd -r peiq2i
[root@localhost ~]#tail -1 /etc/group
peiq2i:x:980: # id小于1000 -
组的文件
-
vim /etc/group
-
组名
-
密码占位
-
gid
-
组成员
-
-
vim /etc/gshadow
-
组名
-
密码
-
组管理员的密码
-
组成员
-
修改组信息
groupmod
-g : 修改gid
-n :修改组名
删除组 :groupdel
软件
windows :exe结尾
centos(Redhat)rpm结尾
包的命名规范
MySQL-python-1.2.5-1.el7.x86_64.rpm
名字-版本(大版本.小版本.修订版)-打包版本.可用的系统.架构.rpm
架构:
x86_64
x86
i386
i686
ppc
noarch :表示通用
包的来源
-
光盘获取
-
第三方网站
-
官方网站
-
自己做
-
epel :第三方包的结合地
rpm包的查询
rpm -q :查询指定的包是否安装
[root@localhost ~]#rpm -q openssh
openssh-7.4p1-16.el7.x86_64
rpm -qa : all(表示当前系统安装的所有的包)
rpm -qf filename : 查询指定的文件由哪个包安装生成
[root@localhost ~]#rpm -qf /etc/ssh/sshd_config
openssh-server-7.4p1-16.el7.x86_64
rpm -q redis
rpm -qc filename :查看指定的包生成了那些配置文件
[root@localhost ~]#rpm -qc openssh-server
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
-d :查询指定的包生成了哪些帮助信息
-i :查询指定包的详细信息
-l :查询指定的包生成的文件
常用选项
-qi
-qa
-ql
-qc
-qd
yum
yum会自动解决依赖关系
仓库:存放的是多个包和包的元数据信息(所在仓库,依赖关系)
仓库的位置:
-
http://
-
https://
-
ftp://
-
file:// (本地文件)
-
配置文件在 /etc/yum.repos.d
yum配置文件
# 使用阿里云的镜像
1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]#cat /etc/yum.repos.d/CentOS-Base.repo
[base] #名称
name=CentOS-$releasever - Base - mirrors.aliyun.com # 描述信息
failovermethod=priority # 定义挑选顺序 priority 按顺序 roundrobin 随机
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
enabled ={0|1} #是否启用,1启用,0是不启用
gpgcheck={0|1} #使用校验
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 # 校验文件
默认值
$releasever 发行版
$basearch 系统架构
yum源
-
阿里
-
163
-
sohu
-
腾讯
-
北大
-
中科大学
yum命令
-
yum repolist :查看仓库
-
yum list :列出仓库里面所有的包,安装的包前面有@
-
yum install xx : 安装包
-
yum reinstall xx :重新安装
-
yum update :更新所有可更新的包
-
yum update pkg :跟新指定的包
-
[root@localhost ~]#yum update wget
[root@localhost ~]#rpm -q wget
wget-1.14-18.el7_6.1.x86_64
-
-
yum downgrade :降级
-
yum check-update : 检查包是否可以更新
-
yum remove : 卸载包
-
yum info pkg :显示包的详细信息
-
yum clean all :删除元数据信息
-
yum makecache :重新构建元数据信息
-
yum search :搜索软件包(包名称,描述信息只要包含就可以搜索出来)
-
yum provides :搜索命令是由哪个包提供的
软件包组
-
yum grouplist :查看包组
-
yum groupinstall "Development Tools" :安装包组
-
yum groupinfo "Development Tools" : 获取包的信息,查看包组由哪些包组成
-
yum groupupdate " " :跟新包组
-
yum groupremove :卸载包组
yum选项命令
-
-y :自动确认
-
-q :静默模式
源码安装
-
下载:wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tar.xz
-
解压文件:
[root@localhost ~]#tar xf Python-3.6.9.tar.xz
-
切换目录:
[root@localhost ~]#cd Python-3.6.9/
-
可以查看帮助信息 README 或者 INSTALL 文件
[root@localhost Python-3.6.9]#cat README.rst
-
安装所需文件
[root@localhost Python-3.6.9]#yum install zlib2-devel openssl-devel
zlib2-devel: 给别人提供api -
编译(检查程序所需的文件)
[root@localhost Python-3.6.9]#./configure --prefix=/opt/python36 --enable-optimizations
-
构建安装程序 make
[root@localhost Python-3.6.9]#make
-
安装程序 make install
[root@localhost Python-3.6.9]#make install
[root@localhost Python-3.6.9]#cd /opt/python36/
[root@localhost python36]#ll
[root@localhost python36]#./bin/python3
Python 3.6.9 (default, Aug 28 2019, 22:37:05)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
-
配置环境变量
[root@localhost python36]#vim /etc/profile.d/python.sh
PATH=/opt/python36/bin:$PATH
[root@localhost python36]#source /etc/profile.d/python.sh
[root@localhost python36]#python3
Python 3.6.9 (default, Aug 28 2019, 22:37:05)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> -