Linux(文件的权限,进程以及服务的管控)
文件权限的控制
- 权限存在的意义?
- 自己的理解:设定自己的“活动范围“,自己可以干什么,不能干什么,更好的控制自己,约束别人,能够使计算机更好的管理,更加的安全。
- 权限的识别
- ls -l file
- ls -ld dir
- 文件权限的查看与理解
- - rw-r--r-- 1 root root 216 May 12 2017 /mnt/rht
- [1] [2] [3] [4] [5] [6] [7] [8]
- 前7位各自占有一个字节表示,名称那里一个字母表示一个字节
- [1]文件类型
- - 普通文件
- d 目录
- l 软连接:快捷方式
- s socket
- c 字符设备:显示字符的设备
- [2]表示文件权限
- rw- | r-- | r--
- u g o
- u:用户
- g:组成员
- o:其他人
- [3]文件硬连接次数,文件内容被系统记录的次数
- [4]所属用户
- [5]所属用户组
- [6]文件大小
- [7]文件最后一次被修改的时间
- [8]文件名称
- 目录的查看与理解
- d rwxr-xr-x. 2 root root 4096 Jul 30 09:05 /mnt/
- [1] [2] [3] [4] [5] [6] [7] [8]
- [1]类型
- [2]权限
- [3]目录中的子目录个数
- [4]所属用户
- [5]所属用户组
- [6]子文件或子目录元数据大小(元数据:描述数据的数据)
- [7]最后一次被修改的时间
- [8]目录名称
修改文件用户及用户组
此命令必须用root用户执行
- 改变所属用户:
- chown username file/dir
- chown -R username dir
- chown username:group file/dir
举例:改变file文件的所属用户
举例:改变dir目录的所属用户
- 改变所属用户组:
- chgrp group file/dir
- chgrp -R group dir
举例:改变file文件的所属用户组
举例:改变dir目录的所属用户组
文件的权限
- r :读
- 对文件 是否可以查看文件中的字符
- 对目录 是否可以查看目录中有什么文件
- w :写
- 对文件 是否可以改变文件中记录的字符
- 对目录 是否可以在目录中管理文件,是否可以更改目录中文件的元数据
- x :执行
- 对文件 是否可以通过文件名称调用文件内记录的程序
- 对目录 是否可以进入此目录
权限的管理
- 字符形式:
- chmod <u/g/o><+/-/=><x/r/w> file/dir
- 举例:给file文件的用户组添加w和x权限
- 举例:给file文件的用户组减去r权限
- 举例:给file文件的用户组设置权限
- 数字方式:
- r,w,x 按位数表示为:2,1,0 ;
- x = 2^0*0=0;x = 2^0*1=1
- w = 2^1*0=0;w = 2^1*1=2
- r = 2^2*0=0;r = 2^2*2=4
- rwx=7
- rw -=6
- r - x=5
- r - - =4
- - wx=3
- - w -=2
- - - x=1
- - - - =0
- 举例:给目目录dir的用户组以及其他组都设置rw权限
权限列表
特定用户对特定文件拥有指定的权限
- drwxrw-rw-+ 2 westos linux11 6 8月 15 21:02 dir
- 上边的权限后边的符号,如果变成 " + " 那么说明权限列表开启;
- 里边的内容分别表示:
- 文件名称
- 文件所有人
- 文件所属组
- 用户权限
- 组权限
- 其他人权限
- 有时还会有 mask:rwx ====> 权限的最大值
- setfacl -m u:student:rwx file 设定列表用户权限
- setfacl -x u:student file 删除列表中的指定用户
- setfacl -b file 关闭权限列表
- 举例:给用户student设定列表用户权限
- 举例:将用户student从列表中删除
- 举例:关闭权限列表
进程及服务的控制
ps -o 的用法:
ps -o comm 进程名称
ps -o %cpu 进程cpu使用率
ps -o %mem 进程内存使用率
ps -o pid 进程id
ps -o user 进程所有人
ps -o group 进程所有组
ps -o stat 该程序目前的状态
ps -o nice 进程优先级举例:
ps -o 的一些用法:
- 什么是进程:系统中正在运行的程序
- 图形化的进程查看方式:gnome-system-monitor
- 举例:打开进程(里面的数据是从/proc中记录的)
- 查看进程的命令:对当前的进程做一个简要的报告
- whatis ps 进程查看命令
- ps 和当前环境相关进程
- ps a 当前环境相关的进程,包含当前环境信息
- ps -a 在你终端中运行的进程,但不包含当前环境进程信息
- ps -A/-e 查看所有的进程
- ps x 产看含有tty输出终端的进程
- ps -f 查看进程的从属关系
- ps u 与当前有效使用者有关的进程
- ps -o pid 指定显示PID
- 举例:
- ps常用组合
- ps aux 显示系统中所有进程并显示进程用户
- ps ef 显示进程详细信息并显示进程父子关系
- ps ax 显示当前系统中的所有进程
- 举例:
- ps -o comm 进程名称
- ps -o %cpu 进程cpu使用率
- ps -o %mem 进程内存使用率
- ps -o pid 进程id
- ps -o user 进程所有人
- ps -o group 进程所有组
- ps -o stat 该程序目前的状态
- ps -o nice 进程优先级
举例:
两者对比刚好相反
认识两个编辑文本的命令:
报告生成器 awk:文本格式化输出,遍历文件。
流编辑器 sed:sed是stream editor的简称,也就是流编辑器。它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。
- ps ax --sort=%cpu 正序输出
- ps ax --sort=-%cpu 倒序输出
- 举例:正序开头
- 举例:正序结尾
- 举例:倒序开头
- 举例:倒序结尾
进程的优先级
- 进程状态:
- S 进程状态
- s 此进程为顶级进程
- T 进程是暂停的
- < 表示进程优先级高
- N 进程优先级低
- l 进程在内存中有锁定空间
- R+ 正在运行的进程
- 举例:
- 更改进程的优先级
- ps ax -l 查看进程的优先级(PRI :代表这个进程可被执行的优先级,其值越小越早被执行)
- renice -n -5 pid 修改进程的优先级(Linux系统中进程的优先级取值范围是 -20~19 )
- 举例:更改gedit进程的优先级
- nice -n -5 命令 & 指定优先级开启进程
- 举例:开启一个指定了优先级的gedit进程
进程前后太的调用
前台:你的终端被占用了
后台:你的终端被释放,程序不占用当前终端
- ctrl + z 将占用终端的进程打入后台停止
- jobs 查看被打入后台的进程
- [1]+ Stopped firefox
- +:的优先级高
- bg jobsnum 将指定进程在后台运行
- fg jobsnum 将指定进程调回前台
- ctrl + c 将占用当前终端的进程结束
- 举例:在终端打开gedit,发现终端无法输入那么将程序打入后台ctrl+z
- 举例:查看被打入后台的进程
- 举例:将gedit这个进程调回前台
- 举例:结束gedit这个进程
信号
- kill -1 PID 进程不停止情况下重新加载配置
- 比如:更改了配置,但是需要重新启动服务器才能生效,而这个命令在不需要重启的情况下重新加载配置
- kill -2 PID 清除进程在内存中的数据
- kill -3 PID 清除鼠标在内存中的数据
- kill -9 PID 强行结束进程
- 举例:创建一个degit,并且杀死它
- kill -15 PID 正常关闭进程
- kill -18 PID 运行停止的进程
- 举例:开启一个gedit进程,并将它放入后台i,之后运行上述命令,那么这个进程就可以运行,并且不会影响终端
- kill -19 PID 暂停进程,不能被阻塞(该进程还未结束, 只是暂停执行. 本信号不能被阻塞, 处理或忽略.)
- 举例:暂停上面创建的gedit
- 注意:这个文本框是不能输入了,但当你执行kill -18 PID时,你在暂停输入到文本框的内容,会显示出来
- kill -20 PID 暂停进程,可以被阻塞(该信号可以被处理和忽略)
- 举例:打开两个终端,一个终端暂停了一个终端,但是被拒绝了,另一个终端还可以输入
- kill 信号 PID 根据PID操作进程,一次只能操作一个
- 举例:杀死一个gedit进程
- killall 信号 进程名称 根据进程名称进行操作,一次可以不操作一个进程
- 举例:杀死所有gedit进程
其他的一些操作:
- ifconfig eth0 查看本机IP
- ssh [email protected] 连接别的计算机
- exit 连接退出
- last 谁登陆过我
- w -i 查看谁正在使用我
- lastb 谁登陆过我,但没有成功
- ps aux | grep pts/1 查看别人正在登陆你的进程PID
- kill -9 PID 踢掉
服务的管控
systemctl stsrt sshd 开启服务
systemctl stop sshd 停止服务
systemctl status sshd 显示状态
systemctl restart sshd 重启
systemctl enable sshd 开机重启
systemctl disable sshd 开机关闭
systemctl list-units 列出系统中运行的服务
systemctl list-unit-files 列出系统中服务开机状态
systemctl list-dependencies sshd 列出系统依赖关系
systemctl mask sshd 冻结服务
systemctl unmask sshd 解冻服务
systemctl set-default multi-user.target 开机不开图形界面
init 5 打开图形界面,但是重新启动还是没有图形界面
systemctl set-default graphical.target 开机启动图形界面