k更改的权限值只对当前环境生效
系统配置文件,配置文件始之生效,重读一遍 source/
shell‘ 的配置文件
1. umask
当我们登陆系统之后创建一个文件总是有一个默认权限,umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、 [ H O M E ] / . p r o f i l e 或 [HOME]/.profile或 [HOME]/.profile或[HOME]/.bashrc中设置umask值。
umask ##系统建立文件时默认保留的权力
umask 077 ##临时设定系统语流权限为077
目录的默认权限值:700
文件的默认权限值:600
永久修改权限 umask
vim /etc/profile ##系统配置文件
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002 ##普通用户的umask
else
umask 077 ##超级用户的umask
fi
vim /etc/bashrc ##shell配置文件
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002 ##普通用户的umask
else
umask 077 ##超级用户的umask
fi
source /etc/profile ##让更改立即生效
source /etc/bashrc
一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile或.bashrc文件中。
umask 命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最 大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来 说,umask中各个数字最大可以到7。
例如在当前目录中创建一个file:
-rw-rw-r-- 1 shift shift 0 12月 28 16:58 test_file
进入test 目录,运行umask:
~/test$ umask
0002
得到一个4位字符串0002
其中第一个0与特殊权限有关,可以暂时不用理会,后三位002则与普通权限(rwx)有关,其中002中第一个0与用户(user)权限有关,表示从用户权限减0,也就是权限不变,所以文件的创建者的权限是默认权限(rw),第二个0与组权限(group)有关,表示从组的权限减0,所以群组的权限也保持默认权限(rw),最后一位2则与系统中其他用户(others)的权限有关,由于w=2,所以需要从其他用户默认权限(rw)减去2,也就是去掉写(w)权限,则其他人的权限为rw - w = r。
运行umask -p:
~/test$ umask -p
umask 0002
同样的0002,不过在前面多了命令名。
运行umask -S:
~/test$ umask -S
u=rwx,g=rwx,o=rx
显然O 用户缺省w 权限,即默认创建文件或文件夹时,缺省O中的w 权限。只不过创建文件时,默认都不会给x的权限,而创建文件夹时是默认给x权限。
如果这个时候修改umask 值:
~/test$ umask 022
然后在创建文件和文件夹的时候:
drwxr-xr-x 2 shift shift 4096 12月 28 17:08 test2
-rw-r--r-- 1 shift shift 0 12月 28 17:07 test_file2
g 中缺省2,也就是缺省w权限。
与chmod 一样都是设定权限,只不过,chmod是直接设置权限是r、w或x,而umask是缺省权限,即不让设r、w 或x
2. 特殊权限
2.1 sticky ##粘滞位
粘滞位,也称黏着位。最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。
作用:
只针对目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件的所有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir
2.2 sgid ##强制位 (在公司所创造的属于公司)
作用
对文件: 之针对二进制可执行文件
当文件上有sgid时,任何人执行此文件产生的进程都属于文件的组
对目录: 当文件上有sgid时,任何人在此目录中建立文件和目录都属于目录的所有组
设定方式:
chmod g+s flie|dir
chmod 2xxx file|dir
2.3 suid ##冒险位
只针对二进制可执行文件
当文件上有suid时任何人执行这个文件中的程序产生的进程都属于文件的所有人
设定方式:
chmod u+s file
chmod 4xxx file
3. acl权限
acl——Access Control Lists,访问控制列表
Linux 下用户对文件的操作权限有 r-读, w-写, x-可执行三种,而对linux 下的文件而言,用户身份分为:所有者, 所属组, 其它人, 且文件的所有者,所属组都只能是一个,所以在对文件分配用户的使用权限时,只能对这三种身份进行分配rwx 权限.Linux 主要作为服务器系统使用,用户众多.所以在实际使用场景中,这三种身份并不能很好地实现资源权限分配问题,所以就有了ACL权限. ACL 权限就是为了解决linux 下三种身份不能满足资源权限分配需求的问题的.
3.1 作用
让特定的用户对于i特定的文件拥有特定的权限
3.2 acl列表查看
-rw-rwxr--+ 1 root root 0 Oct 1 11:11 file
^
acl开启
getfacl file ##查看act开启的文件的权限
#file: file ##文件名称
# owner: root ##文件所有者
# group: root ##文件所有组
user::rw- ##文件所有人的权限
user:tom:rwx ##指定用户的权限
group::r-- ##文件所有组的权限
mask::rwx ##能赋予用户的最大权力阈值
other::r-- ##其他人的权限
3.3 acl列表的管理
设置用户acl权限:指定特定用户对此文件/目录拥有的r/w/x权限
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权限之针对设定完成之后新建的文件或者目录生效,而已经存在的文件时不会继续默认权限的”
习题:
继续上篇文章习题:
新建用户组和用户要求同上篇。
新建目录要求如下::
1) /pub目录为公共存储目录,对所有用户可以读,写,执行
2)/sc目录为生产部存储目录,只能对生产部人员可以写入,并且生产部人亚un所建立的文件都自动归属到shengchan组中
3)/cw目录为财务部村数目录,只能对财务部人员可以写入,并且财务额u人员所建立的文件都自动归属到caiwu组中
4)admin用户对/sc和/cw目录可以读写执行
[root@localhost ~]# ll -d /cw/
drwxrwxr-x. 2 root caiwu 6 Oct 1 09:13 /cw/
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# chmod g+s /cw/
[root@localhost ~]# ll -d /cw/
drwxrwsr-x. 2 root caiwu 6 Oct 1 09:13 /cw/
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# setfacl -m u:admin:rwx /sc/
[root@localhost ~]# setfacl -m u:admin:rwx /cw
5. 系统进程及服务的控制
5.1 什么是进程
狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。
5.2 查看进程
1)图形方式查看
gnome-system-monitor
2)进程查看命令
ps -A ##查看所有进程
-a ##当前环境中运行的进程,不包含环境信息
-u ##显示进程用户信息
ps a ##当前环境运行的进程
x ##列出列出系统中所有运行包含tty输出设备
f ##显示进程父子关系
e ##显示进程详细信息(系统的资源调用)
3)常用组合
ps aux ##所有信息,包括详细信息
ps ef ##显示详细信息和系统的资源调用
ps ax ##显示当前系统中的所有进程
4)显示进程指定信息,掌握这些很重要
ps -o xxx ##显示进程的指定信息
com ##进程名称
user ##进程所有人
group ##进程所有组
%cpu ##进程cpu使用率
%men ##进程内存使用率
pid ##进程id
nice ##进程优先级
5)对进程进行排序
ps ax --sort= +%cpu|-%cpu
+%men|-%men
ps ax --sort=-%cpu -o %cpu |head -n 6 |grep %CPU -v ## 进程按cpu占有率从大到小排序取前五(去掉%CPU)
ll /dev/pts/ 输出设备,字符设备
6. 进程优先级
图像方式,priority,nice
命令方式,ps ax -o pid,nice,commod
优先级由 -20到19
S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
+ ##前台运行
s ##顶级进程
6.1优先级范围
-20~19
6.2优先级查看
ps ax -o pid,nice,comm
##更改优先级
renice
##开启设置优先级
nice -n -5 gedit
6.3改变进程优先级
renice -n 优先级数字 进程id
renice -n -5 6574 ##改变6574进程的优先级为-5
6.4指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n -5 vim& ##开启vim并且指定程序优先级为-5
6.5环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
bg 1 ##运行第一个后台运行
ctrl+z ##把占用终端的进程打入后台
fg jobnum ##把后台进程调回前台
bg jobnum ##把后台展厅的进程运行
comm & ##让命令直接在后台运行
sp /etc/passward ##同时编辑两个文件
7. 常用进程信号
1.常用进程信号等级 kill -1 7487
1 #进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不可被阻塞)
15 ##正常关闭进程(可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程(不能被阻塞)
20 ##把进程打入后台(可以被阻塞)
##安装浏览器,打开端口。默认访问80端口。具体步骤如下:
man 7 signal ##查看信号详细信息
kill -信号 进程id
killall -信号 进程名 ##一次(-9)关闭多个进程,根据进程名来关
pkill -u student -信号 ##一次(-9)退出多个用户
SIGPWR Power failure
有两个信号可以停止进程:SIGTERM和SIGKILL。
SIGTERM比较友好,进程能捕捉这个信号
根据你的需要来关闭程序
在关闭程序之前您可以结束打开的记录文件和完成正在做的任务
在某些情况下,假如进程正在进行作业而且不能中断,那么进程可以忽略这个SIGTERM信号
对于SIGKILL信号,进程是不能忽略的。
这是一个“”我不管您在做什么,立刻停止“的信号
假如您发送SIGKILL信号给进程,linux就将进程停止在那里
8.进程动态监控
8.1部分基本设置
man top ##查看top帮助文件
n#刷新时间
l ##查看帮助
z#显示颜色
u##查看指定用户进程
8.2查看ip两种指令(在物理机上操作)
ifconfig
ip addr show ##推荐
8.3修改ip(虚拟机操作)
mn-connection-editor
8.4 top
1 ##显示cpu每个核的负载
s ##调整刷新频率
c ##cpu负载排序
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户进程
k ##对指定进程发起信号
q ##退出
ssh #安全的连接
能连接的原因是100这个虚拟机上提供了ssh服务
sshd #d ,服务
systemctl status ss ##查看服务的状态
9. 控制服务
9.1 什么是服务
服务是指为他人做事,并使他人从中受益的一种有偿或无偿的活动。不以实物形式而以提供劳动的形式满足他人某种特殊需要。
9.2 用什么控制服务
系统初始化进程可以对u服务进行相应的控制
9.3 当前系统初始化进程是什么
systemd ##系统初始化进程
pstree ##显示系统中的进程树
9.4 进程控制命令
ssh ##客户端
sshd ##提供服务端
ssh----->sshd
client server
systemctl ##服务控制命令
systemctl status sshd ##查看服务状态,inactive(不可用)active(keyong)
systemctl start sshd ##开启服务
systemctl stop sshd ##关闭服务
systemctl restart sshd ##重其服务
systemctl reload sshd ##重新加载服务配置
systemctl enable sshd ##设定服务开机自动启动
systemctl disnable sshd ##设定服务开机不启动
systemctl list-unit ##列出已经开启服务的当前状态
systemctl list-unit-files ##列出所有服务开机启动状态
systemctl list-dependencies ##列出服务依赖
systemctl set-default multi-user.target ##设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target ##设定系统启动级别为图形模式
pstree ##查看系统进程树
netstat -antulpe |grep sshd ##``查看服务信息````
netstat -antulpe |grep :22 ##```用进程号查看
enabled ##开机自动启动
disnabled ##
##开机启动状态
init 5 或者 startx ##启动图形
配置好虚拟机之后,最好在物理机远程连接
10. sshd服务
10.1 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为绝对路径)
ctrl +a ##鼠标到行尾
+d ##鼠标到行首
+ w ##删除一行
+ u ##全部删除
10.2 ssh的key认证
[root@server .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:
14:9f:ee:48:44:28:05:46:a4:f5:46:8a:44:62:f3:95 root@server.example.com
The key's randomart image is:
+--[ RSA 2048]----+
|.+oo*++.o |
|.oo=oE.. o . |
| o...o o o |
| . o . |
| S . |
| . o |
| . . |
| |
| |
+-----------------+
1)加密服务
[root@server .ssh]# ssh-copy-id -i id_rsa.pub root@172.25.254.100
##加密root用户
The authenticity of host '172.25.254.100 (172.25.254.100)' 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.100's password:
\Permission denied, please try again.
root@172.25.254.100's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@172.25.254.100'"
and check to make sure that only the key(s) you wanted were added.
[root@server .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
^
这个文件出现,表示加密成功
2)分发钥匙
scp /root/.ssh/id_rsa root@172.25.254.201:/root/.ssh/
3)测试
在客户主机中(172.25.254.201)
ssh root@172.25.254.100 ##连接时发现直接登录不需要输入root密码
10.4 sshd的安全设定
sswordAuthentication yes ##是否允许用户通过密码做sshd认证
PermitRootLogin yes ##是否于悉尼root用户通过sshd服务的认证
allowuser student westos ##设定用户白名单,白名单出现,默认不再白名单中的用户不能使用sshd
Denyuser westos ##设定用户黑名单,黑名单出现,默认不在黑名单中的用户可以使用sshd
11. 文件在系统中的传输
11.1 scp
scp file username@ip:dir
scp username@ip:file dir
远程复制:
scp file root@ip:dir ##上传(dir为绝对路径)
scp root@ip:file dir ##下载(file为绝对路径)
11.2 rsync ##远程同步,速度快,默认会忽略文件属性,链接文件,设备文件
-r ##同步目录
-p ##同步权限
-o ##同步文件所有人
-g ##同步文件所有组
-t ##同步文件时间戳
-l ##同步链接文件
-D ##同步设备文件