umask
umask 系统建立文件时默认保留的权力
umask ##临时设定系统预留权限为077
目录:700
文件:600 ##系统自动去除文件的用户操作权限
永久修改umask
vim /etc/profile ##系统配置文件
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002 ##普通用户的umask
else
umask 022 ##超级用户的umask
fi
vim /etc/bashrc ##当前shell环境的配置文件
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
source /etc/profile ##让更改立即生效
source /etc/bashrc
特殊权限
1.sticky ##粘制位
作用:
只针对目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件的所有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir
2.sgid ##强制位
作用:
对文件: 只针对二进制可执行文件
当文件上有sgid时,任何人执行此文件产生的进程属于文件的组
对目录: 对目录上有sgid时,任何人在此目录中建立的文件都属于目录的所有组
设定方式:
chmod g+s file
chmod 2xxx file
3.suid ##冒险位
只针对二进制可执行文件
当文件上有suid时任何人执行这个文件中的程序都属于文件的所有人
设定方式:
chmod u+s file
chmod 4xxx file
acl权限列表
1.作用:
让特定的用户对特定的文件拥有特定的权限
2.acl列表查看
-rw-rwxr--+ 1 root root 0 Oct 1 11:11 file
^
acl开启
getfacl file ##查看acl开启的文件的权限
# file:file ##文件名称
# owner:root ##文件所有者
# group:root ##文件所有组
user::rw- ##文件所有人的权限
user:tom:rwx ##指定用户的权限
group::r-- ##文件所有组的权限
mask::rwx ##能赋予用户的最大权力阈值
other::r-- ##其他人的权限
3.acl列表管理
setfacl -m u:username:rwx file ##设定username对file拥有rwx权限
setfacl -m g:group:rwx file ##设定group组成员对file拥有rwx权限
4.mask值
在权限列表中mask表示能生效的权力值
当用chmod减小开启acl的文件权限时,mask值会发生变化
chmod g-w westos ##看到减掉的是mask值
恢复mask值:
setfacl -m m:rwx westos
acl默认权限只针对目录设定
setfacl -m d:u:student:rwx /mnt/westos
"acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件时不会继承默认权限的"
系统进程及服务的控制
什么是进程
程序放置在存储媒体中(如硬盘、光盘、软盘、磁带),为实体文件的型态存在
进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(pid),可以说,进程就是一个正在运行中的程序。
查看进程
1、图形方式查看
gnome-system-monitor
2) 进程查看命令
ps -A ##所有进程
-a ##当前环境中运行的进程,不包含环境信息
-u ##显示进程用户信息
a ##在当前环境中运行的进程
x ##列出系统中所有运行包含tty输出设备
f ##显示进程父子关系
e ##显示进程的详细信息(系统的资源调用)
##常用组合
ps aux ##显示系统中所有进程并显示进程用户
ps ef ##显示进程详细并显示进程父子关系
ps ax ##显示当前系统中的所有进程
##显示进程指定信息
ps -o xxx ##显示进程的指定信息
comm ##进程名称
user ##进程所有人
group ##进程所有组
%cpu ##进程cpu使用率
%mem ##进程内存使用率
pid ##进程id
nice ##进程优先级
##进程排序
显示CPU占用最大的前五个
ps ax --sort=+(-)%cpu -o %cpu | head -n 5 | grep %CPU -v
正号从小到大 只显示前五个 过滤名称
进程优先级
S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
+ ##前台运行
s ##顶级进程
1.优先级范围
-20~=19
2.优先级查看
ps ax -o pid,nice,comm
3.改变进程优先级
renice -n 优先级数字 进程id
renice -n -5 6574 ##改变6574进程的优先级位-5
4.指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n -5 vim & ##开启vim并且指定程序优先级位-5
环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
ctrl+z ##把占用终端的进程打入后台
fg jobsnum ##把后台进程调回前台
bg jobsnum ##把后台暂停的进程运行
comm & ##让命令直接在后台运行
进程信号
1.常用进程信号等级
1 ##进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不可被阻塞)
15 ##正常关闭进程(可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程(不能被阻塞)
20 ##把进程打入后台(可以被阻塞)
man 7 signal ##查看信号详细信息
kill -信号 进程id ##关闭该进程
killall -信号 进程名字 ##关闭所有此名称的进程
pkill -u student 信号 ##关闭多个切换到student用户的终端,关闭后的终端不能正常运行。
进程的动态监控
1.top
1 ##显示cpu每个核的的负载
s ##调整刷新频率
c ##cpu负载排序
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户进程
k ##对指定进程发起信号
q ##退出
控制服务
1、用什么控制服务
系统初始化进程可以对服务进行相应控制
2、当前系统初始化进程是什么
systemd ##系统初始化进程
pstree ##显示系统中的进程树
3、进程控制命令
ssh -------> sshd
client server
systemctl ##服务控制命令
systemctl status sshd ##查看服务状态,inactive(不可用)active(可用)
systemctl start sshd ##开启服务
systemctl stop sshd ##关闭服务
systemctl restart sshd ##重启服务
systemctl reload sshd ##重新加载服务配置
systemctl enable sshd ##设定服务开机启动
systemctl disable sshd ##设定服务开机不启动
systemctl list-units ##列出已经开启服务的当前状态
systemctl list-unit-files ##列出所有服务开机启动状态
systemctl list-dependencies ##列出服务依赖
systemctl set-default multi-user.target ##设定系统启动级别为多用户模式(无图形),无图形界面切换到有图形界面输入"init 5"
systemctl set-default graphical.target ##设定系统启动级别为图形模式
sshd服务
sshd简介
sshd = secure shell
可以通过网络在主机中开启shell的服务
客户端软件
ssh
连接方式:
ssh username@ip ##文本模式的连接
ssh -X username@ip ##可以在连接成功后打开图形
注意:
第一次连接陌生主机时需要建立认证文件
会询问是否建立,需要输入yes
再次连接此主机时,因为已经生成~/.ssh/know_hosts
远程复制:
scp file root@ip:dir ##上传(dir为绝对路径)
scp root@ip:file dir ##下载(file为绝对路径)
sshd的key认证
[root@desktop .ssh]# ssh-keygen ##生成密钥的命令
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ##指定保存加密字符的文件
Enter passphrase (empty for no passphrase): ##设定密码
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa. ##私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. ##公钥
The key fingerprint is:
b0:b0:9d:40:cf:c3:50:0e:64:ae:04:36:b2:30:2e:52 root@desktop.example.com
The key's randomart image is:
+--[ RSA 2048]----+
|=oE.*.. |
|==.+ B |
|+.. + B |
|o. . = = |
| . . + S |
| |
| |
| |
| |
+-----------------+
2.加密服务
[root@desktop .ssh]# ssh-copy-id -i id_rsa.pub root@172.25.254.126 ##加密root用户
The authenticity of host '172.25.254.126 (172.25.254.126)' can't be established.
ECDSA key fingerprint is 65:4d:ac:8a:c9:58:82:b5:0c:91:c4:ef:a5:e6:f6:65.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.25.254.126's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@172.25.254.126'"
and check to make sure that only the key(s) you wanted were added.
[root@desktop .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
^
这个文件出现,表示
加密成功
3.分发钥匙
scp id_rsa root@172.25.254.226:/root/.ssh/
4.测试
在客户主机中(172.25.254.226)
ssh root@172.25.254.126 ##连接时发现直接登陆不需要输入root密码
sshd的安全认定
vim /etc/ssh/sshd_config ##查看sshd的配置文件
PasswordAuthentication yes ##是否允许用户通过密码作sshd认证
PermitRootLogin yes ##是否允许root用户通过sshd服务的认证
AllowUsers student westos ##设定用户白名单,白名单出现,默认不在白名单中的用户不能使用sshd
DenyUsers westos ##设定用户黑名单,黑名单出现,默认不在黑名单的用户可以使用sshd
添加sshd登录信息
vim /etc/motd ##文件内容就是登录后的信息显示
用户的登录审计
1.w ##查看正在使用当前系统的用户
-f ##查看使用来源
-i ##显示ip
2.last ##查看使用过并退出的用户信息
3.lastb ##试图登录但没成功的用户,只能是root用户才能查看
文件在系统中的传输
1.scp
scp file username@ip:dir
scp username@ip:file dir
2.rsync ##远程同步,速度快,默认会忽略文件属性,链接文件,设备文件
-r ##同步目录
-p ##同步权限
-o ##同步文件所有人
-g ##同步文件所有组
-t ##同步文件时间戳
-l ##同步链接文件
-D ##同步设备文件
3.tar
-c ##创建
-x ##解档
-v ##显示过程
-f ##指定归档文件名称
-t ##查看归档文件内容
-r ##添加文件到归档中
--get ##解档指定文件
--delete##删除归档中的指定文件
-C ##指定解档目录
常用用法:
tar -cvf /etc etc.tar ##创建归档并显示过程
tar -xf etc.tar ##解档
tar rf etc.tar file ##将file文件添加到指定归档中
tar f etc.tar --delete file ##将归档中的file文件删除
tar f etc.tar --get file ##解档指定文件
tar xf etc.tar -C /mnt/ ##解档到指定目录中
4.压缩
zip
zip -r xxx.tar.zip xxx.tar ##压缩
unzip xxx.tar.zip ##解压
gz
gzip xxx.tar
gunzip xxx.tar.gz
====
tar zcf xxx.tar.gz /xxx ##直接压缩成.gz文档
tar zxf xxx.tar.gz ##直接解压成目录
bz2
bzip2 xxx.tar
bunzip2 xxx.tar.bz2
====
tar jcf xxx.tar.bz2 /xxx
tar jxf xxx.tar.bz2
xz
xz xxx.tar
unxz xxx.tar.xz
====
tar Jcf xxx.tar.xz /xxx
tar Jxf xxx.tar.xz
附:物理机连接虚拟机
1.打开虚拟机终端输入 nm-connection-editor
2.在弹出的窗口中删除Ethernet内的数据,之后再添加创建一个连接
3.name改为eth0,在Ethernet栏下的Device MAC address中选择里面唯一一个选项
4.在IPv4 settings栏内的Method中选择Manual,再在Addresses内添加一个address为172.25.254.126 Netmask为24 保存退出(126为物理机号26加100)
5.在物理机终端输入 ssh root@172.25.254.126
输入密码redhat就可连接虚拟机。
注意:物理机连接的ip地址就是虚拟机修改的ip地址,不可输错,否则连接到其他机器。
6.修改虚拟机的名称 hostnamectl set-hostname server.example.com
改好后退出终端,重新打开一个终端就可显示改好的名字。
附:root用户的密码重置
在开机选择系统时按"e"键,在跳转的页面中从倒数第二行的末尾开始一直删除到"ro"单词的"o"处,在"r"的后面添加"w rd.break",按ctrl+x跳转到下一页面。
在页面输入"chroot /sysroot/“回车,之后输入"passwd"修改root的密码,改完密码后建立一个文件"touch /.autorelabel”,输入两次"exit"退出。
附:无线网连接设置
在物理机的root用户下输入"vim /etc/sysconfig/network"查看文件内是否有"GATEWAY=172.25.254.250"有的话在前面输入"#“键将这行语句失效并保存退出。
再输入"vim /etc/sysconfig/network-scripts/ifcfg-br0"查看文件内是否有"GATEWAY=172.25.254.250"有的话在前面输入”#"键将这行语句失效并保存退出。
之后输入"systemctl restart network"重启网络连接功能。
完成后连接无线网即可上网。