第1章 课前小拓展 虚拟机打不开原因

问题:

该虚拟机似乎正在使用中。

如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。

配置文件: E:\vmware\模板机01\老男孩教育40期-模板机01.vmx。

无法打开虚拟机: E:\vmware\模板机01\老男孩教育40期-模板机01.vmx

获取该虚拟机的所有权失败。

主机上的某个应用程序正在使用该虚拟机。

情况1 打开了多个虚拟机软件.

配置文件: E:\vmware\模板机01\老男孩教育40期-模板机01.vmx。

情况2 你的虚拟机没有正常的关闭

解决方法:

通过everything 搜索 .lck目录  删除. 然后重新打开 vmware .

第2章 回答以下问题为什么会出现这样的情况和

2.1 第一种情况:

1.登陆的是oldboy用户

[oldboy@oldboyedu-40-nb ~]$ cat /etc/shadow

cat: /etc/shadow: Permission denied

2.查看文件的内容 要看 文件本身的权限

[oldboy@oldboyedu-40-nb ~]$ ls -l /etc/shadow

---------- 1 root root 941 Sep  4 15:42 /etc/shadow

3.oldboy用户是 这个文件的陌生人

4.oldboy用户 对这个文件没有权限 r

[oldboy@oldboyedu-40-nb ~]$ id

uid=500(oldboy) gid=503(incahome) groups=503(incahome)

2.2 第二种情况:

[oldboy@oldboyedu-40-nb ~]$ ls /root/

ls: cannot open directory /root/: Permission denied

[oldboy@oldboyedu-40-nb ~]$ ls /root/

ls: cannot open directory /root/: Permission denied

[oldboy@oldboyedu-40-nb ~]$ ls -ld /root/

dr-xr-x---. 7 root root 4096 Sep  4 17:21 /root/

1.登录的是oldboy用户不是root用户

2.oldboy用户与/root 用户关系陌生人

3.oldboy用户对/root 用户没有 rx权限

小结:

1.查看修改文件 目录

2.文件 ----文件本身权限

3.查看目录 目录权限

2.3 第三种情况

[oldboy@oldboyedu-40-nb ~]$ touch /root/oldboy.txt

touch: cannot touch `/root/oldboy.txt': Permission denied

[root@oldboyedu-40-nb ~]# ls -l /root/oldboy.txt

ls: cannot access /root/oldboy.txt: No such file or directory

[oldboy@oldboyedu-40-nb ~]$ touch /root/oldboy.txt

touch: cannot touch `/root/oldboy.txt': Permission denied

1.登录的是oldboy用户

2.oldboy用户 与 /root 用户关系

3.没有root目录的rwx读写执行权限 oldboy.txt文件的权限

加上权限之后:

[oldboy@oldboyedu-40-nb ~]$ ls -ld /root/

dr-xr-x---. 7 root root 4096 Sep  4 17:21 /root/

oldboy 对于 /root 目录是陌生人

oldboy对 /root 目录 没有 wx

w权限对于 目录来说是 在目录中 创建 删除 修改文件名

w与x配合

[oldboy@oldboyedu-40-nb ~]$ ls -ld /root/

dr-xr-x-wx. 7 root root 4096 Sep  4 17:21 /root/

[oldboy@oldboyedu-40-nb ~]$ touch /root/oldboy.txt

[oldboy@oldboyedu-40-nb ~]$ ls -l /root/

ls: cannot open directory /root/: Permission denied

2.4 第四种情况

[oldboy@oldboyedu-40-nb ~]$ \rm -f /etc/passwd

rm: cannot remove `/etc/passwd': Permission denied

1.文件名字存放在所在目录的block里面 ******

2. 文件名与inode对应关系都放在目录block中.

第3章 网站权限-通过控制权限让网站安全

3.1 linux系统默认权限

3.1.1 文件-rw-rw-rw-  oldboy.txt

rw-r--r--

644

3.1.2 目录-rwxrwxrwx

rwxr-xr-x  root  root oldboydir

755

3.1.3  Linux文件目录默认权限

file-644  root root

dir -755  root root

3.2 如何规划 网站的权限 让网站更佳安全

博客 blog 网站程序代码

3.2.1 网站下面的文件 目录

file  644 root root

dir  755 root root

3.2.2 网站下面用户上传upload目录

file    644 wwwwww

dir    755 www www

3.2.3 谁控制默认的权限---umask

umask  控制着linux里面的默认的权限

umask命令用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。 语法 umask(选项)(参数) 选项 -p:输出的权限掩码可直接作为指令来执行; -S:以符号方式输出权限掩码。

3.2.4 系统中默认文件和目录权限

file---666  rw-rw-rw-

dir----777  rwxrwxrwx

umask  默认的最大权限减去 umask

在计算文件的时候如果剪完以后是奇数就加1

例子:

umask 022

file  666  -022  =644

dir  777  -022  =755

umask为032

文件 666 -032 =634 +010 =644

目录 777 -032  =745

假设umask是 035 那么系统文件和目录的默认权限是?

file 666 -035  631 +011 =642

dir 777 -035 =742

umask作用,给你一个umask的值 你可以计算出 系统默认的权限 ****

3.2.5 如何永久修改umask

在/etc/profile                               系统的环境变量,别名修改

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then

umask 002

else

umask 022

fi

解释:

如果 [ 用户UID>=199 ] 并且  [ 用户的名字 == 用户组名字 ];然后

umask 002

那么

umask 022

果如

第4章 文件系统的权限

4.1 了解特殊权限

特殊权限

代表什么

s   属主权限位

suid (set uid)

运行二进制文件(命令)的时候相当于命令的所有者;

对目录无效

S   属主权限位

没有w权限

t    o权限位

sticky 粘滞位 设置了粘滞位目录下创建文件只能自己管理

修改、删除;只对目录有效(目录权限:777+t)

s   属组权限位

sgid (set gid)

目录:如果SGID是设置在A目录上,则在该A目录内所建立的文件或目录的用户组,将会是此A目录的用户组。

文件:如果SGID设置在二进制文件(命令)上,则不论用户是谁,在执行该程序的时候,它的有效用户组将会变成该程序的用户组所有者(group id)

-         s权限

[root@oldboyedu-40 ~]# #环境准备

[root@oldboyedu-40 ~]# #root创建一个文件

[root@oldboyedu-40 ~]# touch tanjiaoshou.txt

[root@oldboyedu-40 ~]# ll tanjiaoshou.txt

-rw-r---w- 1 root root 0 Sep  5 08:38 tanjiaoshou.txt

[root@oldboyedu-40 ~]# #切换用户为oldboy

[root@oldboyedu-40 ~]# su - oldboy

[oldboy@oldboyedu-40 ~]$ \rm -rf /root/tanjiaoshou.txt

rm: cannot remove `/root/tanjiaoshou.txt': Permission denied

[oldboy@oldboyedu-40 ~]$ #切换为root用户,为rm加上s权限

[root@oldboyedu-40 ~]# chmod u+s /bin/rm

[root@oldboyedu-40 ~]# ll /bin/rm

-rwsr-xr-x. 1 root root 57440 Mar 23 02:52 /bin/rm

[oldboy@oldboyedu-40 ~]$ #用oldboy用户删除root目录下的tanjiaoshou.txt

[oldboy@oldboyedu-40 ~]$ \rm -rf /root/tanjiaoshou.txt

#验证是否删除

[root@oldboyedu-40 ~]# ls /root

a.log            dir-035  file-025     install.log.syslog  oldboy.txt

anaconda-ks.cfg  EOF      file-035     oldboy              oldgirl-025

b.txt            etc      install.log  oldboy-hard         test.txt

-         t权限 o+t (只对目录有效)

加上t的目录内的文件或子目录,只有【文件或目录】拥有者,或root可以进行删除,改名和移动。

[root@oldboyedu-40 ~]# #环境准备

[root@oldboyedu-40 ~]# #创建目录/zhangyun,并将该目录权限修改为777,并加上t粘滞位权限

[root@oldboyedu-40 ~]# ll -d /zhangyun

drwxrwxrwt 2 root root 4096 Sep  5 10:22 /zhangyun

使用zhangyun用户创建文件test2.txt

[zhangyun@oldboyedu-40 ~]$ touch /zhangyun/test2.txt

[zhangyun@oldboyedu-40 ~]$ ll /zhangyun

total 0

-rw-rw-r-- 1 zhangyun zhangyun 0 Sep  5 10:34 test2.txt

[root@oldboyedu-40 ~]# su - oldboy

[oldboy@oldboyedu-40 ~]$ echo "hello" >>/zhangyun/test2.txt

-bash: /zhangyun/test2.txt: Permission denied

[oldboy@oldboyedu-40 ~]$ mv /zhangyun/test2.txt /zhangyun/test1.txt

mv: cannot move `/zhangyun/test2.txt' to `/zhangyun/test1.txt': Operation not permitted

[oldboy@oldboyedu-40 ~]$ \rm -rf /zhangyun/test2.txt

rm: cannot remove `/zhangyun/test2.txt': Operation not permitted

系统特殊权限:

lsattr == list attr显示文件系统的权限

chattr == change attr设置文件系统的权限

一些特殊权限:

chattr +a oldboy.txt

a===append    a表示只能追加

i===immutable  i表示无敌 无能进行任何操作

chattr +a oldboy.txt

lsattr

chattr -a oldboy.txt

chattr +i  oldboy.txt

lsattr

chattr -i  oldboy.txt

a  文件 配置文件  /etc/passwd /etc/shadow  /etc/group /etc/gshaow

i   /etc/initttab 命令

lsatt lsattr命令用于查看文件的第二扩展文件系统属性。

语法 lsattr(选项)(参数) 选项 -E:可显示设备属性的当前值,但这个当前值是从用户设备数据库中获得的,而不是从设备直接获得的。 -D:显示属性的名称,属性的默认值,描述和用户是否可以修改属性值的标志。 -R:递归的操作方式; -V:显示指令的版本信息; -a:列出目录中的所有文件,包括隐藏文件。 lsattr经常使用的几个选项-D,-E,-R这三个选项不可以一起使用,它们是互斥的,经常使用的还有-l,-H,使用lsattr时,必须指出具体的设备名,用-l选项指出要显示设备的逻辑名称,否则要用-c,-s,-t等选项唯一的确定某个已存在的设备。 参数 文件:指定显示文件系统属性的文件名。 实例 lsattr -E -l rmt0 -H lsattr -EO -l rmt0

chattr chattr命令用来改变文件属性。

这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式: a:让文件或目录仅供附加用途; b:不更新文件或目录的最后存取时间; c:将文件或目录压缩后存放; d:将文件或目录排除在倾倒操作之外; i:不得任意更动文件或目录; s:保密性删除文件或目录; S:即时更新文件或目录; u:预防意外删除。 语法 chattr(选项) 选项 -R:递归处理,将指令目录下的所有文件及子目录一并处理; -v<版本编号>:设置文件或目录版本; -V:显示指令执行过程; +<属性>:开启文件或目录的该项属性; -<属性>:关闭文件或目录的该项属性; =<属性>:指定文件或目录的该项属性。

4.2 扩展特殊权限

9位基础权限

rwxr-xr-x root root oldboy.txt

12个权限分别有   9个基础权限+3个特殊

[root@oldboyedu-40-nb ~]# ls -ld /tmp/ /usr/bin/passwd  /usr/bin/locate /bin/ls

-rwxr-xr-x.  1 root root    117048 Mar 23 02:52 /bin/ls

-rwsr-xr-x.  1 root root     30768 Nov 24  2015 /usr/bin/passwd

drwxrwxrwt. 13 root root      4096 Sep  4 20:30 /tmp/

-rwx--s--x.  1 root slocate  38464 Mar 12  2015 /usr/bin/locate

4.2.1 suid  setuid   在文件所有者加上s    放在主人的位置上    运行这个命令的时候相当于是这个命令的所有者(root)

/usr/bin/passwd    修改用户密码

/etc/shadow

4xxx

4.2.2 tmp  t sticky 粘滞位 设置了 粘滞位在目录下面创建的文件 只能自己管理(修改 删除)

chmod o+t /tmp     #1777  1xxx

####sgid  setgid

第5章 如果中病毒了怎么办

1.top 找出占用cpu或内存大的进程   pid进程号码

2.根据进程pid 杀掉进程     kill+进程号码

3.ps -ef

PID  CMD

pid process id 进程的号码 系统中是唯一的.

CMD 进程名字(命令)

dd if=/dev/zero of=/tmp/100  bs=1k count=1000000

PID USER   PR  NI  VIRT  RES  SHR  S %CPU %MEM    TIME+  COMMAND

12956 root   20   0  102m  664  564 D 36.9  0.0   0:04.20 asdfasdfasdf

408 root   20   0     0    0    0 D  5.3  0.0   0:18.02 jbd2/sda3-8

3356 root   20   0     0    0    0 D  5.3  0.0   0:39.52 flush-8:0

34 root   20   0     0    0    0 S  2.6  0.0   0:11.97 kswapd0

1 root   20   0 19356 1532 1200 S  0.0  0.1   0:01.21 init

2 root   20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

top top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。

通过top命令所提供的互动式界面,用热键可以管理。 语法 top(选项) 选项 -b:以批处理模式操作; -c:显示完整的治命令; -d:屏幕刷新间隔时间; -I:忽略失效过程; -s:保密模式; -S:累积模式; -i<时间>:设置间隔时间; -u<用户名>:指定用户名; -p<进程号>:指定进程; -n<次数>:循环显示的次数。 top交互命令 在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。 h:显示帮助画面,给出一些简短的命令总结说明; k:终止一个进程; i:忽略闲置和僵死进程,这是一个开关式命令; q:退出程序; r:重新安排一个进程的优先级别; S:切换到累计模式; s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s; f或者F:从当前显示中添加或者删除项目; o或者O:改变显示项目的顺序; l:切换显示平均负载和启动时间信息; m:切换显示内存信息; t:切换显示进程和CPU状态信息; c:切换显示命令名称和完整命令行; M:根据驻留内存大小进行排序; P:根据CPU使用百分比大小进行排序; T:根据时间/累计时间进行排序; w:将当前设置写入~/.toprc文件中。

kill kill命令用来删除执行中的程序或工作。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。 语法 kill(选项)(参数) 选项 -a:当处理当前进程时,不限制命令名和进程号的对应关系; -l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称; -p:指定kill 命令只打印相关进程的进程号,而不发送任何信号; -s <信息名称或编号>:指定要送出的信息; -u:指定用户。

ps ps命令用于报告当前系统的进程状态。

可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。 语法 ps(选项) 选项 -a:显示所有终端机下执行的程序,除了阶段作业领导者之外。 a:显示现行终端机下的所有程序,包括其他用户的程序。 -A:显示所有程序。 -c:显示CLS和PRI栏位。 c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。 -C<指令名称>:指定执行指令的名称,并列出该指令的程序的状况。 -d:显示所有程序,但不包括阶段作业领导者的程序。 -e:此选项的效果和指定"A"选项相同。 e:列出程序时,显示每个程序所使用的环境变量。 -f:显示UID,PPIP,C与STIME栏位。 f:用ASCII字符显示树状结构,表达程序间的相互关系。 -g<群组名称>:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。 g:显示现行终端机下的所有程序,包括群组领导者的程序。 -G<群组识别码>:列出属于该群组的程序的状况,也可使用群组名称来指定。 h:不显示标题列。 -H:显示树状结构,表示程序间的相互关系。 -j或j:采用工作控制的格式显示程序状况。 -l或l:采用详细的格式来显示程序状况。 L:列出栏位的相关信息。 -m或m:显示所有的执行绪。 n:以数字来表示USER和WCHAN栏位。 -N:显示所有的程序,除了执行ps指令终端机下的程序之外。 -p<程序识别码>:指定程序识别码,并列出该程序的状况。 p<程序识别码>:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。 r:只列出现行终端机正在执行中的程序。 -s<阶段作业>:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。 s:采用程序信号的格式显示程序状况。 S:列出程序时,包括已中断的子程序资料。 -t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。 t<终端机编号>:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。 -T:显示现行终端机下的所有程序。 -u<用户识别码>:此选项的效果和指定"-U"选项相同。 u:以用户为主的格式来显示程序状况。 -U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。 U<用户名称>:列出属于该用户的程序的状况。 v:采用虚拟内存的格式显示程序状况。 -V或V:显示版本信息。 -w或w:采用宽阔的格式来显示程序状况。  x:显示所有程序,不以终端机来区分。 X:采用旧式的Linux i386登陆格式显示程序状况。 -y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。 -<程序识别码>:此选项的效果和指定"p"选项相同。 --cols<每列字符数>:设置每列的最大字符数。 --columns<每列字符数>:此选项的效果和指定"--cols"选项相同。 --cumulative:此选项的效果和指定"S"选项相同。 --deselect:此选项的效果和指定"-N"选项相同。 --forest:此选项的效果和指定"f"选项相同。 --headers:重复显示标题列。 --help:在线帮助。 --info:显示排错信息。 --lines<显示列数>:设置显示画面的列数。 --no-headers:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。 --group<群组名称>:此选项的效果和指定"-G"选项相同。 --Group<群组识别码>:此选项的效果和指定"-G"选项相同。 --pid<程序识别码>:此选项的效果和指定"-p"选项相同。 --rows<显示列数>:此选项的效果和指定"--lines"选项相同。 --sid<阶段作业>:此选项的效果和指定"-s"选项相同。 --tty<终端机编号>:此选项的效果和指定"-t"选项相同。 --user<用户名称>:此选项的效果和指定"-U"选项相同。 --User<用户识别码>:此选项的效果和指定"-U"选项相同。 --version:此选项的效果和指定"-V"选项相同。 --widty<每列字符数>:此选项的效果和指定"-cols"选项相同。

pid pidof命令用于查找指定名称的进程的进程号id号。

语法 pidof(选项)(参数) 选项 -s:仅返回一个进程号; -c:仅显示具有相同“root”目录的进程; -x:显示由脚本开启的进程; -o:指定不显示的进程ID。

第6章 扩展:

6.1 显示进程 按照占用内存大小顺序 降序

1:在命令行提示符执行top命令

2:输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。(注:大写P可以在capslock状态输入p,或者按Shift+p)

另外:

认识top的显示结果

top命令的显示结果如下所示:

top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 191272k total, 173656k used, 17616k free, 22052k buffers Swap: 192772k total, 0k used, 192772k free, 123988k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd 14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top 1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0统计信息区

前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

01:06:48

当前时间

up 1:22

系统运行时间,格式为时:分

1 user

当前登录用户数

load average: 0.06, 0.60, 0.48

系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

Tasks: 29 total

进程总数

1 running

正在运行的进程数

28 sleeping

睡眠的进程数

0 stopped

停止的进程数

0 zombie

僵尸进程数

Cpu(s): 0.3% us

用户空间占用CPU百分比

1.0% sy

内核空间占用CPU百分比

0.0% ni

用户进程空间内改变过优先级的进程占用CPU百分比

98.7% id

空闲CPU百分比

0.0% wa

等待输入输出的CPU时间百分比

0.0% hi

 

0.0% si

 

最后两行为内存信息。内容如下:

Mem: 191272k total

物理内存总量

173656k used

使用的物理内存总量

17616k free

空闲内存总量

22052k buffers

用作内核缓存的内存量

Swap: 192772k total

交换区总量

0k used

使用的交换区总量

192772k free

空闲交换区总量

123988k cached

缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。

进程信息区

统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

序号

列名

含义

a

PID

进程id

b

PPID

父进程id

c

RUSER

Real user name

d

UID

进程所有者的用户id

e

USER

进程所有者的用户名

f

GROUP

进程所有者的组名

g

TTY

启动进程的终端名。不是从终端启动的进程则显示为 ?

h

PR

优先级

i

NI

nice值。负值表示高优先级,正值表示低优先级

j

P

最后使用的CPU,仅在多CPU环境下有意义

k

%CPU

上次更新到现在的CPU时间占用百分比

l

TIME

进程使用的CPU时间总计,单位秒

m

TIME+

进程使用的CPU时间总计,单位1/100秒

n

%MEM

进程使用的物理内存百分比

o

VIRT

进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

p

SWAP

进程使用的虚拟内存中,被换出的大小,单位kb。

q

RES

进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

r

CODE

可执行代码占用的物理内存大小,单位kb

s

DATA

可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

t

SHR

共享内存大小,单位kb

u

nFLT

页面错误次数

v

nDRT

最后一次写入到现在,被修改过的页面数。

w

S

进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程

x

COMMAND

命令名/命令行

y

WCHAN

若该进程在睡眠,则显示睡眠中的系统函数名

z

Flags

任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

更改显示内容

通过 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

第7章 特殊权限的总结如果上面看不懂

7.1.1 SUID

当s这个标志出现在文件所有者的x权限上时,例如文件权限状态“-rwsr-xr-x”,此时就称为 Set UID,简称为SUID的特殊权限。SUID有这样的限制和功能:

(1)SUID权限仅对二进制程序有效;

(2)执行者对于该程序需要具有x的可执行权限

(3)本权限仅在执行该程序的过程中有效;

(4)执行者将具有该程序所有者的权限。

举个例子,在Linux中,所有账号的密码记录在/etc/shadow这个文件中,并且只有root可以读和强制写入这个文件。那么,如果另一个账号vbird需要修改自己的密码,就需要访问/etc/shadow这个文件,但是上面明明说了只有root能访问/etc/shadow这个文件,是不是矛盾?但事实上,vbird是可以修改/etc/shadow这个文件内的密码的,这就是SUID的功能。

通过上述的功能说明,我们知道,

(1)vbird对于/usr/bin/passwd这个程序具有x权限,表明vbird可以执行passwd;

(2)passwd的所有者为root;

(3)vbird执行passwd的过程中会暂时获得root的权限;

(4)/etc/shadow因此可以被vbird所执行的passwd所修改。

但是vbird如果使用cat去读取/etc/shadow这个文件时,是不能读取的。

(SUID只能用在文件上,不能用在目录)

7.1.2 SGID

当s标志出现在文件所有者的x权限时称为SUID,那么s出现在用户组的x权限时称为SGID。(U表示user,G表示group)。SGID有如下功能:

(1)SGID对二进制程序有用;

(2)程序执行者对该程序需具备x权限;

(3)执行者在执行过程中会获得该程序用户组的支持。

举个例子,/usr/bin/locate这个程序可以去查询/var/lib/mlocate/mlocate.db这个文件的内容,mlocate.db的权限如下:

-rwx--s--x root  slocate /usr/bin/locate

-rw-r-----   root slocate /var/lib/mlocate/mlocate.db

若使用vbird这个账号执行locate时,vbird就会获得用户组slocate支持,又由于用户组slocate对mlocate.db具有r权限,所以vbird就可以读取mlocate.db了。

除二进制程序外,SGID也可以用目录上。当一个目录设置了SGID权限后,它具有如下功能:

(1)用户若对此目录具有r和x权限,该用户能够进入该目录;

(2)用户在此目录下的有效用户组将变成该目录的用户组;

(3)若用户在此目录下拥有w权限,则用户所创建的新文件的用户组与该目录的用户组相同。

7.1.3 SBIT

SBIT目前只对目录有效。

SBIT对目录的作用是:

(1)当用户对此目录具有w和x权限时,即具有写入权限时;

(2)当用户在该目录下创建新文件或目录时,仅有自己和root才有权力删除。

7.1.4 SUID\SGID\SBIT权限设置

先将其转换成数字:

SUID->4

SGID->2

SBIT->1

假设要将一个文件权限修改为“-rwsr-xr-x”,由于s在用户权限中,所以是SUID,因此,原先的755前面还要加上4,也就是4755,所以,

用命令chmod 4755 filename 设置就可以了。此外,还可能出现S和T的情况。

我们知道,s和t是替代x这个权限的,但是,如果它本身没有x这个权限,修改为s或t时就会变成大S或大T,例如:

执行chmod 7666 filename。 因为666表示“-rw-rw-rw”,均没有x权限,所以最后变成“-rwSrwSrwT”。

第2章 总结

1.rwx 及对应的数字

2.rwx对于文件或目录来说含义

3.删除/创建文件的时候

4.permission denied排查

5.如何设置网站的权限

整体

file 644 root root

dir  755 root root

find +chmod

find +chown

upload

file 644 www www

dir  755 www www

find +chmod

find +chown

6.umask作用?如何计算?

7.文件系统权限 a i

8.top kill ps

9.特殊权限 suid 粘滞位

第3章 预习:

定时任务

Linux权限总结的更多相关文章

  1. linux权限系统

    Linux权限分为 r(4):可读 , w(2)可写 , x(1)可执行 , -无权限 , 可以通过ls -l 文件名查看权限 , 如 ls -l 文件名 输出: -rwxrw---x. root r ...

  2. Shell基础:Linux权限管理

    Linux权限基本概念 查看系统(文件夹/文件)权限: ls -l =>d/-   xxx xxx xxx.  num  owner  group  size   date  filename ...

  3. 关于LINUX权限-bash: ./startup.sh: Permission denied

    关于LINUX权限-bash: ./startup.sh: Permission denied <script type="text/javascript"></ ...

  4. Linux权限操作 [转]

    Linux权限操作 本文内容来自<鸟哥linux私房菜>读后个人做的笔记,该书实为学习linux的很好入门教材 一.文件属性 ls ls -al列出所有的档案属性 ls是List的意思 档 ...

  5. linux权限解读

    1 只读权限,用r表示(read):可以读取文件或者列出目录的内容 2 可写权限,用w表示(write):可以删除文件或目录 3 可执行权限,用x表示(execute):可以执行可执行文件:可以进入目 ...

  6. linux权限---【600,644,700,755,711,666,777】 - - 博客频道 - CSDN.NET

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  7. Linux系列教程(十六)——Linux权限管理之ACL权限

    通过前面的两篇博客我们介绍了Linux系统的用户管理,Linux用户和用户组管理之相关配置文件 讲解了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow ...

  8. Linux权限分析

    我看过网上的一些有关Linux的权限分析,有些说的不够清楚,另外一些说的又太复杂.这里我尽量简单.清楚的把Linux权限问题阐述明白,Linux权限没有那么复杂. Linux权限问题要区分文件权限和目 ...

  9. 【Linux】 Linux权限管理与特殊权限

    Linux权限管理 权限管理这方面,非常清楚地记得刚开始实习那会儿是仔细研究过的,不知道为什么没有笔记留痕..除了一些基本的知识点早就忘光了,无奈只好从头开始学习一遍.. ■ 基本权限知识 这部分实在 ...

  10. Linux权限管理(week1_day5)--技术流ken

    权限概述 Linux系统一般将文件可存/取访问的身份分为3个类别:owner(拥有者).group(和所有者同组的用户).others(其他人,除了所有者,除了同组的用户以及除了超级管理员),且3种身 ...

随机推荐

  1. laravel 常见问题

    1. Specified key was too long; max key length is 767 bytes 处理: 修改config/database.php , mysql配置.删除数据库 ...

  2. es6 class中责任链模式与AOP结合

    责任链模式大家应该都清楚,比如JS中的冒泡,Java中的拦截器.过滤器,都运用到了责任链模式. 可以看我之前的文章介绍责任链的:https://www.cnblogs.com/wuguanglin/p ...

  3. 线程池如何复用一个线程-- ThreadPoolExecutor的实现(未完)

    任务是一组逻辑工作单元,而线程则是使任务异步执行的机制.在Java中,Runnable对象代表一个任务,Thread对象负责创建一个线程执行这个任务. 前提:1. 程序需要处理大量任务 2. 任务的执 ...

  4. asp.net 多个txt压缩导出下载

    //方法代码 MemoryStream ms = new MemoryStream(); byte[] buffer = null; using (ZipFile file = ZipFile.Cre ...

  5. P4389 付公主的背包

    注意 初始化的时候要这样写 for(int i=1,x;i<=n;i++){ scanf("%d",&x); v[x]++; } for(int i=1;i<= ...

  6. (转)AutoML for Data Augmentation

    AutoML for Data Augmentation 2019-04-01 09:26:19 This blog is copied from: https://blog.insightdatas ...

  7. CSRF、XSS、clickjacking、SQL 的攻击与防御

    CSRF攻击 原理: 跨站请求伪造.是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法. 网站通过cookie来实现登录功能.而cookie只要存在浏览器中,那么浏览器在访问含有这 ...

  8. Uva12174 Shuffle(滑动窗口)

    $play[i]$表示以$i$这个点结束的连续$s$个播放记录是否是无重复的,这样最后只需要枚举可能的播放时间,然后检查对应的播放区间是否是单独的就可以了.特殊情况是,出现的所有播放记录无重复,且长度 ...

  9. 计算Java对象内存大小

    摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍,涉及内存模型.锁原理 ...

  10. log4.net使用指南

    1.简介 1.1 Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断 ...