用户
- 超级管理员用户 root 0
- 普通用户 (0-65535)
- 系统用户:启动系统服务和进程的用户,不可以登陆. (1-999centos7)(1-499centos6)
- 可登陆用户:能登录系统的用户(1000-65535 centos7)(500-65535 centos6)
普通用户的id是递增的,系统用户的id是递减的
用户添加useradd
创建用户 Usage: useradd [options] LOGIN useradd taosiyu -d # 指定用户的家目录 useradd -d /文件夹/文件 用户名 ll home ll /opt/taosiyu cd /opt/taosiyu # bashrc 别名 # profile -g # 指定用户组的id useradd -g 组 用户名 id taosiyu -G # 指定用户的附加组 groups 附加组 useradd -G root,taosiyu1 taosiyu2 # 把taosiyu2 加到root, 和taosiyu1的附加组中 在组里就能使用组里的权限处理文件 id taosiyu3 cd /text/ ll /etc/skel/ -a -k # 指定复制哪个文件夹下的内容,需要和-m一起使用 -m # 创建用户的家目录 useradd -k /etc/sysconfig/metwork-scripts/ -m taosiyu ll /home/taosiyu -c + 'message' # 创建指定用户的描述信息 useradd -c "where are your future" vim /etc/passwd # /etc/passwd查看描述信息"message" -N # 不创建同名的组,以user为组 GROUP=100 默认100, # 这里就是系统用户组 useradd -N taosiyu -r useradd -r taosiyu id taosiyu -s # 指定用户登录后使用的shell cat /etc/shells useradd -s /sbin-nogloin 用户名 passwd taosiyu ssh taosiyu@190.198.107.133 #nologin登录后默认被系统退出 -u # 指定用户的id,创建用户时uid始终以最大uid顺延 useradd -u 2000 taosiyu id taosiyu useradd taosiyu useradd taosiyu1 id taosiyu1 # uid=2001 -D 显示系统的默认配置 useradd -D # 查看系统配置 -D [option] -s可以修改系统的默认配置. 每创建一个用户都是从/etc/skel复制
- 相关文件
- /etc/default/useradd 创建用户的默认文件.
- /etc/skel/*默认复制的文件
- /etc/login.defs
用户修改usermod
usermod修改 -c # 修改描述信息 usermod -c 'taosiyu made in furtue' taosiyu grep 'taosiyu' /etc/passwd -d # 修改家目录,默认不会创建新目录.如果向移动家目录,则需要使用-m -m # 移动家目录,只能和-d一起使用 cd ~ ll /home usermod -d /opt/taosiyu taosiyu ll /home grep 'taosiyu' /etc/passwd -g # 修改用户组 -G # 修改客户的附加组,默认情况是替换,将之前的附加组替换成新设置的(后面必须是组) usermode -G root,taosiyu taosiyu1 id taosiyu1 username -G taosiyu2 taosiyu1 # taosiyu2替换上边的root,taosiyu附加组 -a # 修改客户的添加,默认是追加附加组 -a -G 顺序不能变 usermod -a -G root taosiyu1 -l +newname +oldname # 修改用户的登录名 usermod -l taosiyu guorui id taosiyu -L # 锁定用户,不能登录系统,修改密码默认解锁用户锁. passwd taosiyu usermod -L taosiyu ssh taosiyu@192.168.107.133 # 拒绝登录 -U # 解锁用户锁 -s # 修改用户登录后的shell -u # 修改用户的uid -e # 失效日期,后面加年月日,修改用户的失效时间,失效后无法登陆 usermod -e 2019-08-07 taosiyu # 后面加年月日
删除用户userdel
默认删除用户,不删除用户家目录 userdel taosiyu id taosiyu ll /home/taosiyu -f # 强制删除,登录状态下也能删除 # 删除用户时,默认家目录不会被删除,默认情况下,用户登录状态下不能删除用户,强制删除后用户不退出还可以使用. -r # 删除家目录 userdel -f -r taosiyu
查看用户相关信息id
-g 只显示组id -G 只显示附加组id -u 只显示用户id -n 显示名称,需要和显示id搭配使用
切换用户
su [options] [-] [USER [arg]...] - # 完整切换,登录式切换,环境变量等都会切换 -c # 切换用户执行命令,然后切换回原用户 echo $PATH # 查看环境变量 exit # 退出切换
切换用户的方式
- 完整切换:su - username 登录式切换,环境变量等都会切换
- 不完整切换:su username不会切换用户的环境变量,家目录等.
- root切换普通用户不需要密码,非root用户切换需要密码
切换用户执行命令
su - taosiyu -c 'whoami' ll /home/root
sudo执行本身不能执行的命令
sudo 修改配置文件为/etc/sudoers
vim /etc/sudoers taosiyu ALL=(all) NOPASSWD:ALL sudo useradd guorui 用户名 ALL=(ALL) NOPASSWD:ALL # NOPASSWD,不用输入密码
/etc/passwd文件
用户名:密码,使用x占位:UID:GID:描述信息:家目录:登录后使用的shell
设置密码passwd
passwd taosiyu # 设置密码 -d # delete 删除指定用户的密码,删除之后用户不能登陆 passwd -d taosiyu -l # 锁定用户 -u # 解锁用户 -e # 在下次登陆以后强制用户修改密码 -f # 强制操作 -x maximun=Days # 密码的最长使用时间 -n minmum=DAYS # 密码的最短使用时间 -waningday # 密码过期多长时间提醒 -i --inactive=Days # 密码过期多久之后该用户不能使用 # inacticeday 密码过期多长时间以后禁用 --stdin # 从标准输入读取密码 echo '123'|passwd --stdin user # 修改密码
存放文件/etc/shadow
- 用户名
- 密码($6 加密方式 默认sha512)$盐$加密后的密码串$
- : 从1970年1月1日到最后一次修改密码经过的时间
- 密码的最短使用时间 (0表示随时可以修改)
- 密码的最常使用时间(99999表示永不过期)
- 密码过期多久提醒(默认是一周)
- 密码过期多长时间锁定(:)
- 从1970年1月1日开始算起,多长时间后账后失效
密码的复杂性策略
- 密码必须包括数字,大小写,特殊字符
- 密码必须是12位以上
- 要求密码不能为弱口令
- 必须为随机密码
- 3个月或者半年修改一次
机器免密登录
ssh_keygen # 点击回车 ssh_copy-id root@192.168.21.129 # 要登录的机器
修改用户密码策略chage
chage [option] ... login -d 将密码修改时间改为指定的时间 -E 指定用户的过期时间 -I 密码过期后经过多少天后账户会被禁用 -l 显示用户的账号信息 -m 两次修改密码之间的最少天数 -M 两次修改密码的最大天数 -W 设置过期警告天数 直接chage login 可以根据提示来设置 change login # 可以使用交互式的修改密码策略
chfn修改用户的个人信息
修改用户的个人信息
用户组
- 超级用户组 root 0
- 普通用户组
- 系统用户组 id(1-999 centos7) 1-499(centos6)
- 可登录用户组 1000-65535(centos7) 500-65535(centos6)
groupadd -g # 指定组id -r # 创建系统用户组 groupadd taosiyu tail -1 /etc/group groupadd -r taoosiyu /etc/group 存放组信息
组的文件/etc/group
组名:密码(x占位):gid:组成员
/etc/gshadow
- 组名
- 密码
- 组管理员的密码
- 组成员
修改组信息groupmod
-g 修改gid -n 修改组名 -p 密码(一般不会给组设置密码)
删除组groupdel
groupdel taosiyu
软件
windows中软件以exe结尾
centos(redhat)中软件以rpm结尾 (radhat package manager) 需手动解决依赖关系
yum 自动解决依赖关系
mirrors.aliyun.com
包的命名规范
MySQL -python -1.2.5 -1.e17.x864_64.rpm 名字-版本 (大版本.小版本.修订版)-打包版本.可用的系统.架构.rpm 架构(cpu): 64位:x86_64 32位:x86 i386 i486 i686 ppc noarch(表示通用)
包的来源
- 光盘
- 第三方网站
- 官方网站
- 自己做
- https://pkgs.org/
- epel(第三方包的结合地,阿里云里就有)
- https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
pip install openpyx1 -i https://pypi.douban.com/simple # 指定源
rpm包的查询
rpm -q # 查询指定的包是否安装 -a # all 表示当前系统安装的所有的包 rpm -qa -f filename # 查询指定的文件由哪个包安装生成 rpm -qf /etc/ssh/sshd_config rpm -q redis rpm -qa |grep redis rpm -qa |grep openssh -c # 查询指定的包生成的配置文件 rpm -qc openssh-server yum install -y redis -d # 查询指定的包生成的哪些文档(man帮助文档) rpm -qd openssh-server -i # 查询指定包的详细信息 rpm -qi openssh-server -l # 查询指定的包生成的文件 rpm -ql openssh-server 常用的选项 -qi -qa -ql -qc -qd
yum
yum会自动解决依赖关系
仓库 存放的是多个包和包的元数据信息(所在仓库,依赖信息等)
仓库(repos)的位置:
- http://
- https://
- ftp://
- file://(本地文件)
- 配置文件存放在/etc/yum.repos.d
yum配置文件
[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 repolist # 查看仓库
yum源
- 阿里 163 sohu 腾讯 北大 中科大学
yum命令
安装
yum repolist # 查看仓库 yum list # 仓库里所有的包,安装的包前面带@符号 yum list|grep openssh yum insttall # 安装包 yum install openssh_ldap yum reinstall # 重新安装 yum install openssh_ldep yum update # 更新包 yum update pkg 包名 # 更新指定包 yum update wget rpm -q wget yum downgrede # weget降级 + pkg包名 yum downgrade wget yump check-update # 检查包是否更新 yum remove # 卸载 + pkg包名 yum remove wget yum info name # 显示包的详细信息 + pkg包名 yum clean # 删除源数据信息 yum makecahe # 重新构建源数据信息 yum search # 搜索软件包(包名称,描述信息只要包含就可以搜索出来) yum search ssh yum provides # 搜索命令是由哪个包提供的 yum provides ssh
软件包组
yum grouplist 包组名 # 查看包组 yum groupinstall "包组" # 必须带引号,成为一个整体,安装完毕之后编程Installed # 在安装过程中,其他客户端无法使用yum,因为yum被占用 yum groupinfo # 获取包的信息,查看包组有哪些包组成 yum groupupdate '包组' # 更新 yum groupremove # 卸载包组 # Development Tools 开发包组 # GNOME Desktop 桌面 # devel api包 # docs 帮助信息
yum选项命令
-y # 自动确认 -q # 静默模式 yum -q -y install wget
源码安装
1. wfet 复制链接地址(source release 源) wget 地址 安装 2.解压文件 tar xf 3.切换目录 cd 4.查看帮助信息 README INSTALL 文件 5.yum install zlib2-devel openssl-devel # 安装所需文件 6./configure --prefix=/opt/python3.6 # 编译(检查程序所需的文件) 7.make # 构建安装程序 make 8.make install # 安装程序 [root@localhost Python-3.6.9]#cd /opt/python3.6/ [root@localhost python3.6]#ll total 4 drwxr-xr-x. 2 root root 4096 Aug 28 21:08 bin drwxr-xr-x. 3 root root 24 Aug 28 21:08 include drwxr-xr-x. 4 root root 63 Aug 28 21:08 lib drwxr-xr-x. 3 root root 17 Aug 28 21:08 share 9.vim /etc/profile.d/python.sh # 在文件下写 PATH=/opt/python36/bin:$PATH# 配置环境变量 在外面重新读取 source /etc/profile.d/python.sh