Linux高级权限、Linux进程管理

一:高级权限的类型

sticky1 防止其他人的误删除  o+t
sgid 2 组继承权限  dir1 属组hr  目录下的内容都会继承该组的权限 
chmod  g+s  dir
suid 4 普通用户可以通过suid权限进行提权 chmod u+s file(二进制文件)  

二:设置特殊权限


a、字符


添加权限
chmod u+s file
chmod g+s dir
chmod o+t dir
取消权限
chmod u-s file
chmod g-s dir
chmod o-t  dir


b、数字


chmod 4777 file
chmod 2770 dir
chmod 1770 dir


示例1


suid 普通用户通过suid提权 <针对文件>
在进程文件(二进制,可执行)上增加suid权限
[lijin@xingdian-server-11 ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied


解决方案:


[root@xingdian-server-11 /]# which cat 查看cat这个命令对应二进制(可执行)文件的位置
[root@xingdian ~]# chmod u+s /usr/bin/cat
[lijin@xingdian-server-11 ~]$ cat /etc/shadow

作用: suid只能给命令添加,当给命令添加了suid之后,后面再有人去执行这个命令的时候就会拥有命令操作符所有者的权限


示例2:
sticky 用户只能删除自己的文件 <针对目录>
[root@xingdian ~]# mkdir /home/dir1
[root@xingdian ~]# chmod 777 /home/dir1
测试:user1在/home/dir1建立文件, user2尝试删除!
[root@xingdian ~]# chmod o+t /home/dir1
[root@xingdian ~]# ll -d /home/dir1
rwxrwxrwt 2 root root 4096 09-02 02:26 /home/dir1
谁可以删除:
root
文件的所有者
目录的所有者

示例3:


sgid 新建文件继承目录属组 <针对目录>
[root@xingdian ~]# mkdir /home/hr
[root@xingdian ~]# chgrp hr /home/hr/
[root@xingdian ~]# chmod g+s /home/hr
[root@xingdian ~]# ll -d /home/hr/
drwxr-sr-x. 2 root hr 4096 Dec 5 16:03 /home/hr/
[root@xingdian ~]# touch /home/hr/file9
[root@xingdian ~]# ll /home/hr/
-rw-r--r--. 1 root hr 0 Dec 5 16:03 file92

Linux进程管理

一、ps aux 静态查看所有进程

a 只能查看所有终端进程
u 显示进程拥有者
x 显示系统内所有进程

程序:


    二进制文件,静态/usr/sbin/httpd, /usr/sbin/sshd
进程:pid 是程序运行的过程, 动态,有生命周期的,可以产生和消亡的(进程是已启动的可执行程序的运行实例,实例即运行可执行程序)。


线程:


        线程是进程之内独立执行的一个单元。对于操作系统而言,其调度单元是线程;一个进程至少包括一个线程,通常将该线程称为主线程;一个进程从主线程的执行开始,进而创建一个或多个附加线程,就是所谓基于多线程的多任务。


父进程:


        程序运行时产生的第一个进程,任何进程都可以作为父进程创建子进程。


子进程:


        由父进程使用fork()函数完全复制自己的地址空间创建出来的新的进程就是子进程,子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码.
    
R Running or runnable (on run queue) 正在被cpu处理的进程
S Interruptible sleep (waiting for an event to complete) 暂停状态
T Stopped, either by a job control signal or because it is being traced. 停止运行

Z Defunct ("zombie") process, terminated but not reaped by its parent. 僵尸进程
‘+’ Is in the foreground process group运行在前台的进程组
< high-priority (not nice to other users) 高优先级的进程
s is a session leader 父进程

ps   aux   --sort   %cpu  按cpu使用率从小到大排序
ps   aux   --sort   %mem  内存使用
ps   aux   --sort  - %cpu   (从大到小)
ps   aux   --sort  - %mem


获取当前系统中每个进程cpu使用的详细情况,并且获取到cpu使用率前十的进程信息

ps  aux  --sort  %cpu  |  tail
ps  aux  --sort  %mem  |  tail
ps  aux  --sort  -%cpu  |  head
ps  aux  --sort  -%mem  |  head

获取当前系统中cpu使用率最高的进程信息
ps  aux  --sort  %cpu  | tail   -1
ps  aux  --sort  %mem  | tail   -1

发现cpu使用率超过100%,利用ps的命令获取到进程信息,对该进程进行管理

{该进程是我们应用产生的进程,需要对其进行优化}
{该进程不是我们应用的进程,使用进程管理的命令将其干掉}

    
自定义显示字段
[root@xingdian ~]# ps axo user,pid,ppid,%mem,command
只显示每个进程对应的内存使用率

查看指定进程的PID


[yang@xingdian ~]# cat /run/sshd.pid
830
[root@xingdian ~]# ps aux |grep sshd
root 10180 0.0 0.0 7224 1024 ? Ss 16:00 0:00 /usr/sbin/sshd
[root@xingdian ~]# pgrep -l sshd
10180 sshd
[root@xingdian ~]# pgrep sshd
10180
[root@xingdian ~]# pidof sshd
10180

安装lsof:yum -y install lsof


lsof  -i:端口号    查看端口号进程信息

yum -y install psmisc//安装这个软件得到pstree的命令
w/who:查看当前服务器有哪些客户端正在连接我,,进程管理

二、(1)top:实时查看进程信息

%cpu(s):0.7 us, 用户 1.0 sy, 系统 0.0 ni, 98.3 id,  空闲率
MiB Mem:2046640 total, 总的内存  886224 free, 空闲的  208308used使用的
第二部分:进程信息
命令(快捷键)
h|?帮助
M 按内存的使用排序**
P 按CPU使用排序**

N 以PID的大小排序
R 对排序进行反转
f 自定义显示字段
1 显示所有CPU的负载**
z 彩色
W 保存top环境设置 ~/.toprc
q退出**

[root@xingdian ~]# top -d 1 -b -n 2 > top.txt 将2次top信息写入到文件
-d 1指定每隔1秒显示一次  -b -n 2 加两次top的信息  
-p  指定pid 


(2)、htop

1.安装


[root@xingdian ~]# yum -y install wget
[root@xingdian ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@xingdian ~]# yum -y install htop

2.使用


htop 命令显示的图片
Load average; 平均负载
上左区:显示了CPU、物理内存和交换分区的信息;
上右区:显示了任务数量、平均负载和连接运行时间等信息;
进程区域:显示出当前系统中的所有进程;
操作提示区:显示了当前界面中F1-F10功能键中定义的快捷功能。
F1:显示帮助信息
F2:配置界面中的显示信息;
F3:进程搜索;
F4:进程过滤器;

//search会将光标定位到符合条件的进程上,通过F3键进行逐个查找;而filter会直接将符合条件的进程筛选出来。
F5:显示进程树;
F6:排序;
F7:减小nice值;
F8:增加nice值;
F9:杀掉指定进程;


常用参数:


u:显示指定用户的进程

退出 q


网络进程

    系统上每一个服务都有自己默认的端口号
    vnc 5900
    ssh 22
    http 80 (nginx apache)
    https 443
    mariadb/mysql 3306
    php 9000
    redis 6379 
    tomcat (8080 8009 8005)
    dhcp 68

yum -y install net-tools

netstat -auntpl

tcp协议上网用的  udp协议 直播用的

ss 推荐使用查看网络进程


-a 所有的进程
-u udp进程
-n 显示段口号 5900 vnc 21、20 ftp
-t tcp进程
-p 显示程序的pid 和 名称
-l listening 监听的

[root@xingdian ~]# ss -antpl | grep 22
LISTEN 0 128 *:22 *:* users:(("sshd",pid=856,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=856,fd=4))

你可能感兴趣的:(服务器,linux,运维)