做用:du表示directory used,显示出目录所占的磁盘空间大小的状况。php
语法:#du -sh 目录路径html
选项说明:linux
-s:表示summary,汇总统计面试
-h:表示以较高可读性的形式显示shell
案例:使用du -sh指令统计出“/etc”的大小状况apache
做用:disk free,查看磁盘的剩余空间的状况。编程
语法:#df -hvim
选项说明:windows
-h:表示以较高可读性单位进行查看。数组
做用:查看内存的使用状况
语法:#free -m
选项含义:
-m:表示以mb为单位进行查看
注意:
第一行表示memory,是内存各项的数字。
其中,若是查看可用的剩余内存,应该是3527的位置。
若是看的是剩余的内存,则应该是3725的位置。
做用:表示根据条件去查询文档的所在位置。
语法:#find 范围路径 选项 选项的值
常见的选项:
-name:根据名字进行查询
-type:根据文档的类型进行查询。[d表示文件夹,f表示普通文件,s表示套接字文件,l表示链接文件,c表示字符设备文件,b表示块状设备文件]
-user:根据全部者进行查询
-group:根据所属的用户组进行查询
-size:根据大小进行查询
案例:咱们记不清一个文件httpd.conf所在位置,如今要求使用find指令进行查询
#find / -name httpd.conf -type f
补充:-name选项支持通配符(“*”),模糊查询。
例如:假设我须要查询磁盘中所有的.conf文件,则能够写成:#find / -name *.conf -type f
做用:表示process show,查看进程
语法:#ps -ef
选项含义:
-e:等价于-A,all,表示所有
-f:表示full,显示所有的列
操做效果:
UID:该进程的启动用户名;
PID:process id,进程的id号
PPID:parent process id,父级进程id号
C:表示的cpu的使用状况
STIME:start time,启动时间
TTY:终端的设备编号,“?”表示该进程不是由终端发起的
TIME:持续运行的时间
CMD:command,显示进程的名称或者位置
补充:结束进程的指令
#kill PID
做用:操做服务的(启动/中止/重启)
语法:#service 服务名 start/stop/restart
案例:使用service指令启动apache(httpd)
#service httpd start
注意:对于服务名是存在要求的,要求服务名必须存在于“/etc/init.d”目录下。
除了能够用service指令操做服务,还能够经过以下语法:
#/etc/init.d/服务名 start/stop/restart
因此刚才apache的启动指令还能够写成:#/etc/init.d/httpd start
做用:搜索、过滤,主要用于对文件/内容进行筛选,选出须要的内容
语法:#grep [选项] 关键词 文件路径/内容
常见的选项:
-v:排除
案例:使用grep筛选出php2018.txt中的admin行
案例:使用grep -v实现排除admin所在行
扩展用法:
#grep -E “关键词1|关键词2|…” 文件路径或内容
选项:-E表示extension,该语法表示多条件筛选,“|”表示or
上述扩展用法等价于:
#egrep “关键词1|关键词2|….” 文件的内容或路径
做用:word count,其做用是用于统计文件的各项数值(行、单词数、字节数)
语法:#wc -lwc 文档的路径
选项含义:
-l:line,行数
-w:word,单词数
-c:byte,字节数
案例:使用wc指令分别统计文件/etc/passwd的行、单词数、字节数
#wc -lwc /etc/passwd
注意:lwc选项的顺序,不影响其指令输出的结果的顺序,结果顺序必定是行 、 单词 、字节。
管道严格意义上说其不是指令,其只是一个符号“|”。该符号主要起到辅助的做用,可以将多个指令合在一行上进行操做。主要用在搜索过滤等上面。
语法:# 必须在终端中有输出内容的指令 | 有输入的指令[要求有读取文件内容的需求]
管道的核心理解概念:管道前面的指令的输出其实就是管道后面指令的输入。
案例:经过ps指令查看进程,只查看httpd的进程。
#ps -ef | grep “httpd”
课堂做业:
“/etc/passwd”文件是存储用户信息的文件,该文件中一行即为一个用户,要求使用所学的指令统计出当前计算机中一共有多少个用户。
#cat /etc/passwd | wc -l
Vi编辑器是全部Unix及Linux系统下标准的编辑器,相似于windows系统下的notepad(记事本)编辑器,因为在Unix及Linux系统的任何版本,Vi编辑器是彻底相同的,所以能够在其余任何介绍vi的地方都能进一步了解它,Vi也是Linux中最基本的文本编辑器,学会它后,咱们将在Linux的世界里畅行无阻,尤为是在终端中。
关于vim:
vi和vim都是Linux中的编辑器,不一样的是,vim比较高级,能够视为vi的升级版本。vi使用于文本编辑,可是vim更适用于coding(写代码的)。
Vim重点是光标的移动,模式切换,删除,查找,替换,复制,粘贴,撤销命令的使用。
在后期使用的Linux系统中,有些可能没有初始自带vim,而自带了vi,那么vim指令是不能直接使用的,须要先安装。
Vim中存在三种模式(大众的认知):命令模式、编辑模式(输入模式)、末行模式(尾行模式)。
命令模式:在该模式下是不能对文件直接编辑,能够输入快捷键(命令)进行一些操做(删除行,复制行,移动光标,粘贴等等)【打开文件以后默认进入的模式】;
编辑模式:在该模式下能够对文件的内容进行编辑;
末行模式:能够在末行输入命令来对文件进行操做(搜索、替换、保存、退出、撤销、高亮等等);
Vim的打开文件的方式:
#vim 文件路径 做用:打开指定的文件(能够是不存在的)
#vim +数字 文件的路径 做用:打开指定的文件,而且将光标移动到指定行
#vim +/关键词 文件的路径 做用:打开指定的文件,而且高亮显示关键词(搜索)
重点:先复制出一个/etc/passwd文件,复制当前目录下(千万不要在etc下直接修改!!!)
注意:该模式是打开文件的第一个看到的模式(打开文件便可进入)
①光标移动到行首
按键:shift + 6 或 ^(T字母上面的6,不要按小键盘的6)
②光标移动到行尾
按键:shift + 4 或 $(R字母的左上角的4,不是小键盘的4)
③光标移动到首行行首
按键:gg
④光标移动到末行行首
按键:G [Capslk 再加 G键] / [Shift + G键]
⑤翻屏
向上翻屏:按键ctrl + b (before) 或 PgUp
向下翻屏:按键ctrl + f (after) 或 PgDn
⑥快速定位到指定行
数字G
①复制光标所在行
按键:yy
粘贴:在想要粘贴的地方按下p键【将粘贴在光标所在行的下一行】,若是想粘贴在光标所在行以前,则使用P键
②以光标所在行为准(包含当前行),向下复制指定的行数
按键:数字yy
①剪切/删除光标所在行
按键:dd (删除以后下一行上移)
注意:dd严格意义上说是剪切命令,可是若是剪切了不粘贴就是删除的效果。
②剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行
按键:数字dd (删除以后下一行上移)
③剪切/删除光标所在的当前行(光标所在位置)以后的内容,可是删除以后下一行不上移
按键:D (删除以后当前行会变成空白行)
撤销:输入“:u”(不属于命令模式) 或者 u (undo)
恢复:ctrl + r 恢复(取消)以前的撤销操做【重作,redo】
末行模式进入以后的特征:光标在最后一行上
编辑模式进入以后的特征:在最后一行有相似于“------插入(insert)-----”的提
注意:末行模式和编辑模式之间是没有办法直接切换的,必须先走命令模式。
进入方式:由命令模式进入,按下“:”或者“/(表示查找)”便可进入
退出方式:
a. 按下esc
b. 连按2次esc键
c. 删除末行所有输入字符
①保存操做(write)
输入:“:w” 保存文件
输入:“:w 路径” 另存为 (了解)
②退出(quit)
输入:“:q” 退出文件
默认状况下,退出的时候须要对已经进行修改的文件进行保存(:w),而后才能退出。
③保存并退出
输入:“:wq” 保存而且退出
④强制 (!)
输入:“:q!” 表示强制退出,刚才作的修改操做不作保存
⑤搜索/查找
输入:“/关键词”,再按下回车 【按下/也是进入末行模式的方式之一】
例如:想在passwd文件中搜索“sbin”关键词
在搜索结果中切换上/下一个结果:N/n (next)
若是须要取消高亮,则须要在末行模式中输入:“:nohl”【no highlight】
⑥替换
:s/搜索的关键词/新的内容 替换光标所在行的第一处符合条件的内容
:s/搜索的关键词/新的内容/g 替换光标所在行的所有符合条件的内容
:%s/搜索的关键词/新的内容 替换整个文档中每行第一个符合条件的内容
:%s/搜索的关键词/新的内容/g 替换整个文档的符合条件的内容
%表示整个文件
g表示全局(global)
案例:将测试文件中的bin关键词所有替换成xxxx
:%s/bin/xxxx/g
⑦显示行号(临时)
输入:“:set nu”[number]
若是想取消显示,则输入:“:set nonu”
补充:要想永久显示行号,须要进行对vim的配置。
建议建立文件:“~/.vimrc”(该配置是针对用户的,每一个用户本身家下有一个独立.vimrc)
⑧扩展:部分命令模式操做使用末行模式实现
了解:
末行模式下的复制(yy)、剪切(dd)、删除(dd)操做
复制语法:“:开始行号,结束行号y”,例如输入“:1,10y”
剪切删除语法:“:开始行号,结束行号d”,例如输入“:1,10d”
一步到位的复制语法——“:开始行号,结束行号 co 粘贴到的行号”
剪切粘贴一步到位语法——“:开始行号,结束行号 m 粘贴到的行号”
重点看前2个进入方式:i(insert)、a(after)。
退出方式:按下esc键
什么是异常退出:在编辑文件以后并无正常的去wq(保存退出),而是遇到忽然关闭终端或者断电的状况,则会显示下面的效果,这个状况称之为异常退出:
解决办法:删除“.文件名.swp”文件便可解决上述问题。
Linux系统是一个多用户多任务的操做系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个帐号,而后以这个帐号的身份进入系统。
用户的帐号一方面能够帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另外一方面也能够帮助用户组织文件,并为用户提供安全性保护。
每一个用户帐号都拥有一个惟一的用户名和各自的密码。
用户在登陆时键入正确的用户名和密码后,就可以进入系统和本身的主目录。
要想实现用户帐号的管理,要完成的工做主要有以下几个方面:
用户帐号的添加、删除、修改以及用户密码的管理。
用户组的管理。
注意三个文件:
/etc/passwd 存储用户的关键信息
/etc/group 存储用户组的关键信息
/etc/shadow 存储用户的密码信息
①添加用户
语法:#useradd 选项 用户名
经常使用选项:
-g:表示指定用户的用户主(主要)组,选项的值能够是用户组的id,也能够是组名
-G:表示指定用户的用户附加(额外)组,选项的值能够是用户组的id,也能够是组名
-u:uid,用户的id(用户的标识符),系统默认会从500以后按顺序分配uid,若是不想使用系统分配的,能够经过该选项自定义【相似于腾讯QQ的自选靓号状况】
-c:comment,添加注释(选择是否添加)
-s:指定用户登入后所使用的shell 解释器 【专门的接待员】
-d:指定用户登入时的启始目录(家目录位置)
-n:取消创建以用户名称为名的群组(了解)
案例:建立用户zhangsan,不带任何选项
#useradd zhangsan
验证是否成功:
a. 验证/etc/passwd的最后一行,查看是否有zhangsan的信息;
#tail -1 /etc/passwd
b. 验证是否存在家目录(在Centos下建立好用户以后随之产生一个同名家目录);
扩展:认识passwd文件
用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell
用户名:建立新用户名称,后期登陆的时候须要输入;
密码:此密码位置通常状况都是“x”,表示密码的占位;
用户ID:用户的识别符;【-u】
用户组ID:该用户所属的主组ID;【-g】
注释:解释该用户是作什么用的;【-c】
家目录:用户登陆进入系统以后默认的位置;【-d】
解释器shell:等待用户进入系统以后,用户输入指令以后,该解释器会收集用户输入的指令,传递给内核处理;【若是解释器是/bin/bash表示用户能够登陆到系统,/sbin/nologin表示该用户不能登陆到系统】【-s】
注意:在不添加选项的时候,执行useradd以后会执行一系列的操做
a. 建立同名的家目录;
b. 建立同名的用户组;
案例:添加选项,建立用户lisi,让lisi属于501主组,附加组500,自选靓号666,而且要求不能登陆到系统,能够写注释为“user lisi”。
#useradd -g 501 -G 500 -u 666 -s /sbin/nologin -c “user lisi” lisi
验证是否建立成功:
注意:查看用户的主组能够查看passwd文件,查看附加组能够查看group文件。
linux123行的含义:在linux123的组里(组id是500)有一个组内用户lisi(lisi的附加组就是500,附加组的名字是linux123)。
若是须要为一个用户指定多个附加组,只须要将多个附件组的id经过英文逗号“,”分割便可。
【主组只能有1个(相似于亲生父母只有一对),附加组能够多个,也能够没有附加组(相似于认干爹干妈,能够有也能够没有,也能够有多个)】
【主组必须有】
【文档的属组指的是主组】
②修改用户
语法:#usermod 选项 用户名
Usermod:user modify,用户修改
经常使用选项:
-g:表示指定用户的用户主组,选项的值能够是用户组的id,也能够是组名
-G:表示指定用户的用户附加组,选项的值能够是用户组的id,也能够是组名
-u:uid,用户的id(用户的标识符),系统默认会从500以后按顺序分配uid,若是不想使用系统分配的,能够经过该选项自定义【相似于腾讯QQ的自选靓号状况】
-l:修改用户名
-c<备注>:修改用户账号的备注文字
-d<登入目录>:修改用户登入时的目录
-s<shell>:修改用户登入后所使用的shell
案例:修改zhangsan用户主组为500,附加组改成501
#usermod -g 500 -G 501 zhangsan
案例:修改zhangsan用户用户名,改成wangerma
#usermod -l wangerma zhangsan 这里的竖杠是 英文字母 l
③设置密码
Linux不容许没有密码的用户登陆到系统,所以前面建立的用户目前都处于锁定状态,须要设置密码以后才能登陆计算机。
语法:#passwd [用户名] 【若是不指定用户名则修改本身的密码】
案例:设置wangerma用户的密码
#passwd wangerma
在设置密码的时候也是没有任何输入提示的,放心输入,确保两次输入的密码一致,按下回车便可。
也可使用弱密码,可是不建议,不然会看到如下的提示:
设置密码以后shadow文件中的体现:可以看出lisi用户没有密码的。
在设置用户密码以后能够登陆账号,例如此处须要登陆wangerma
切换用户命令:#su [用户名] (switch user)
若是用户名不指定则表示切换到root用户。
切换用户须要注意的事项:
a. 从root往普通用户切换不须要密码,可是反之则须要root密码;
b. 切换用户以后先后的工做路径是不变的;
c. 普通用户没有办法访问root用户家目录,可是反之则能够;
④删除用户
语法:#userdel 选项 用户名
Userdel:user delete(用户删除)
经常使用选项:
-r:表示删除用户的同时,删除其家目录;
案例:删除wangerma用户
#userdel -r wangerma
注意:已经登陆的wangerma用户删除的时候提示删除失败,可是没有登陆的lisi用户能够正常删除。
解决办法:简单粗暴,kill对应用户的所有进程
提示:全部跟用户操做的命令(除passwd外,只能修改本身的密码,即不指定用户名)只有root超级管理员有权限执行。
备注:也能够在登陆须要删除的用户以后,按下快捷键“ctrl+d”进行对当前用户的注销,随后退回到上一个用户(root)此时就能够对须要删除的用户进行删除操做。
每一个用户都有一个用户组,系统能够对一个用户组中的全部用户进行集中管理。不一样Linux 系统对用户组的规定有所不一样,如Linux下的用户属于与它同名的用户组,这个用户组在建立用户时同时建立。
用户组的管理涉及用户组的添加、删除和修改。组的增长、删除和修改实际上就是对/etc/group文件的更新。
文件结构:
用户组名:密码:用户组ID:组内用户名
密码:X表示占位符,虽然用户组能够设置密码,可是绝大部分的状况下不设置密码;
组内用户名:表示附加组是该组的用户名称;
①用户组添加
语法:#groupadd 选项 用户组名
经常使用选项:
-g:相似用户添加里的“-u”,-g表示选择本身设置一个自定义的用户组ID数字,若是本身不指定,则默认从500以后递增;
案例:使用groupadd指令建立一个新的用户组,命名为admins
#groupadd admins
②用户组编辑
语法:#groupmod 选项 用户组名
经常使用选项:
-g:相似用户修改里的“-u”,-g表示选择本身设置一个自定义的用户组ID数字
-n:相似于用户修改“-l”,表示设置新的用户组的名称
案例:修改admins用户组,将组ID改为520,将名称改成admin123
#groupmod -g 520 -n admin123 admins
③用户组删除
语法:#groupdel 用户组名
案例:删除admin组
#groupdel admin
注意:当若是须要删除一个组,可是这个组是某个用户的主组时,则不容许删除(附加组是能够的);若是确实须要删除,则先从组内移出全部用户。
提示
针对用户和用户组的管理指令,除了passwd指令以外,其余指令通常状况下只有root用户能够执行。
在Linux中分别有读、写、执行权限:
读权限:
对于文件夹来讲,读权限影响用户是否可以列出目录结构
对于文件来讲,读权限影响用户是否能够查看文件内容
写权限:
对文件夹来讲,写权限影响用户是否能够在文件夹下“建立/删除/复制到/移动到”文档
对于文件来讲,写权限影响用户是否能够编辑文件内容
执行权限:
通常都是对于文件来讲,特别脚本文件。
对于文件来讲,执行权限影响文件是否能够运行。
对于文件夹来讲,执行权限影响对应的用户是否能够在文件夹内执行指令。
因为Linux是多用户、多任务的操做系统,所以可能经常有多人同时在某台主机上工做,但每一个人都可在主机上设置文件的权限,让其成为我的的“私密文件”,即我的全部者。由于设置了适当的文件权限,除本人(文件全部者)以外的用户没法查看文件内容。
例如某个MM给你发了一封Email情书,你将情书转为文件以后存档在本身的主文件夹中。为了避免让别人看到情书的内容,你就能利用全部者的身份去设置文件的适当权限,这样,即便你的情敌想偷看你的情书内容也是作不到的。
与文件全部者同组最有用的功能就体如今多个团队在同一台主机上开发资源的时候。例如主机上有A、B两个团体(用户组),A中有a1,a2,a3三个成员,B中有b1,b2两个成员,这两个团体要共同完成一份报告F。因为设置了适当的权限,A、B团体中的成员都能互相修改对方的数据,可是团体C的成员则不能修改F的内容,甚至连查看的权限都没有。同时,团体的成员也能设置本身的私密文件,让团队的其它成员也读取不了文件数据。在Linux中,每一个帐户支持多个用户组。如用户a1、b1便可属于A用户组,也能属于B用户组【主组和附加组】。
这个是个相对概念。打个比方,大明、二明、小明一家三兄弟住在一间房,房产证上的登记者是大明(owner全部者),那么,大明一家就是一个用户组,这个组有大明、二明、小明三个成员;另外有我的叫张三,和他们三没有关系,那么这个张三就是其余人(others)了。
同时,大明、二明、小明有各自的房间,三者虽然能自由进出各自的房间,可是小明不能让大明看到本身的情书、日记等,这就是文件全部者(用户)的意义。
在Linux中,还有一个神同样存在的用户,这就是root用户,由于在全部用户中它拥有最大的权限 ,因此管理着普通用户。所以之后在设置文档的权限的时候没必要考虑root用户。
要设置权限,就须要知道文件的一些基本属性和权限的分配规则。在Linux中,ls命令经常使用来查看文档的属性,用于显示文件的文件名和相关属性。
#ls -l 路径 【ls -l 等价于 ll】
标红的部分就是Linux的文档权限属性信息。
Linux中存在用户(owner)、用户组(group)和其余人(others)概念,各自有不一样的权限,对于一个文档来讲,其权限具体分配以下:
十位字符表示含义:
第1位:表示文档类型,取值常见的有“d表示文件夹”、“-表示文件”、“l表示软链接”、“s表示套接字”、“c表示字符设备”、“b表示块状设备”等等;
第2-4位:表示文档全部者的权限状况,第2位表示读权限的状况,取值有r、-;第3位表示写权限的状况,w表示可写,-表示不可写,第4位表示执行权限的状况,取值有x、-。
第5-7位:表示与全部者同在一个组的用户的权限状况,第5位表示读权限的状况,取值有r、-;第6位表示写权限的状况,w表示可写,-表示不可写,第7位表示执行权限的状况,取值有x、-。
第8-10位:表示除了上面的前2部分的用户以外的其余用户的权限状况,第8位表示读权限的状况,取值有r、-;第9位表示写权限的状况,w表示可写,-表示不可写,第10位表示执行权限的状况,取值有x、-。
注意:除了权限位上的rwx以及-以外,还有一些特殊的权限代码“s”、“t”,这些不在本次考虑范围内。
权限分配中,均是rwx的三个参数组合,且位置顺序不会变化。没有对应权限就用 – 代替。
语法:#chmod [选项] 权限模式 文档
注意事项:
经常使用选项:
-R:递归设置权限 (当文档类型为文件夹的时候)
权限模式:就是该文档须要设置的权限信息
文档:能够是文件,也能够是文件夹,能够是相对路径也能够是绝对路径。
注意点:若是想要给文档设置权限,操做者要么是root用户,要么就是文档的全部者。
给谁设置:
u:表示全部者身份owner(user)
g:表示给全部者同组用户设置(group)
o:表示others,给其余用户设置权限
a:表示all,给全部人(包含ugo部分)设置权限
若是在设置权限的时候不指定给谁设置,则默认给全部用户设置
权限字符:
r:读
w:写
x:表示执行
-:表示没有权限
权限分配方式:
+:表示给具体的用户新增权限(相对当前)
-:表示删除用户的权限(相对当前)
=:表示将权限设置成具体的值(注重结果)【赋值】
设置多个身份的权限时候,每一个身份之间须要经过英文逗号分开。
例如:须要给/root/anaconda-ks.cfg文件(-rw-------.)设置权限,要求全部者拥有所有的权限,同组用户拥有读和写权限,其余用户只读权限。
答案:
全部者(u):rwx
同组用户(g):rw
其余用户(o):r
方式1:
#chmod u=rwx,g=rw,o=r /root/anaconda-ks.cfg
方式2:
#chmod u+x,g+rw,o+r /root/anaconda-ks.cfg
提示:当文档拥有执行权限(任意部分),则其颜色在终端中是绿色。
#chmod ug=rwx 形式,若是有两部分权限同样则能够合在一块儿写的
等价于:
#chmod u=rwx,g=rwx
例如:若是anaconda-ks.cfg文件什么权限都没有,可使用root用户设置全部的人都有执行权限,则能够写成
什么权限都没有应该是:----------
目标的效果:---x--x--x
#chmod a=x anaconda-ks.cfg
#chmod a+x anaconda-ks.cfg
#chmod u+x,g+x,o+x anaconda-ks.cfg
#chmod ugo=x anaconda-ks.cfg
#chmod ugo+x anaconda-ks.cfg
#chmod +x anaconda-ks.cfg
案例:设置文件“~/yunwei/yunwei.txt”权限,要求全部者所有权限,同组用户拥有读权限、写权限,其余人拥有读权限
#chmod u=rwx,g=rw,o=r ~/yunwei/yunwei.txt
更改要求:全部者所有权限,同组用户拥有读权限、写权限,其余人拥有读权限、写权限
练习:
①设置文件夹/tmp/yunwei的权限(若是文件夹不存在,自行建立),要求权限为递归权限,而且全部者有所有权限,同组用户有读执行权限,其余用户只读权限;
②设置文件/tmp/yunwei/class04.sh权限,文件若是不存在则自行建立,要求权限为全部者所有权限,同组用户读和执行权限,其余用户没有权限;
③使用普通用户在/tmp/yunwei目录下建立test目录,设置目录权限为全部者拥有所有权限,同组用户只读,其余用户只读;
常常会在一些技术性的网页上看到相似于#chmod 777 a.txt 这样的一个权限,这种形式称之为数字形式权限(777)。
读:r 4
写:w 2
执行:x 1
没有任何权限(-):0
例如:须要给anaconda-ks.cfg设置权限,权限要求全部者拥有所有权限,同组用户拥有读执行权限,其余用户只读。
分析:
全部者:所有权限 = 读 + 写 + 执行 = 4 + 2 + 1 = 7
同组用户:读执行权限 = 读 + 执行 = 4 + 1 = 5
其余用户:只读权限 = 读 = 4
最终得出的结果是754
#chmod 754 anaconda-ks.cfg
面试题:用超级管理员设置文档的权限命令是#chmod -R 731 aaa,请问这个命令有没有什么不合理的地方?
全部者 = 7 = 4 + 2 + 1 = 读 + 写 + 执行
同组用户 = 3 = 2 + 1 = 写 + 执行
其余用户 = 1 = 执行
问题在权限731中3表示写+执行权限,可是写又没必要须须要能打开以后才能够写,所以必须须要具有读权限,所以权限不合理。之后建议各位在设置权限的时候不要设置这种“奇葩权限”。单独出现二、3的权限数字通常都是有问题的权限
注意:在写权限的时候千万不要设置相似于上面的这种“奇葩权限”。若是一个权限数字中但凡出现2与3的数字,则该权限有不合理的状况。
练习:
①使用root用户设置文件夹/root/20180811的权限为:全部者所有权限,同组用户拥有读和执行权限,其余用户没有权限,请使用数字权限的形式设置,写出指令;750
②请使用root用户写出设置文件/root/20180811.txt文件的权限,权限要求为:全部者拥有所有权限,同组用户要求能够读写,其余用户只读,要求使用数字形式;764
③张三疯(root)收到某个MM的情书,请使用数字形式设置张三疯的Email情书权限(文件为/root/email.doc),权限要求只有全部者能够读写,除此以外任何人没有权限;600
使用root用户建立一个文件夹(/oo),权限默认,权限以下:
须要在oo目录下建立文件(oo/xx.txt),须要给777权限:
扩展:
在Linux系统中,建立文档的权限有一个默认值,以当前的系统为例,其建立文件夹以后的默认权限是755,建立文件以后的权限是644。
之因此会这样是受到了系统中umask(掩码)的值的影响,其是用于指定文档建立好以后的权限,umask默认为022。
计算方式:
对于文件:文件的权限 = 666 – umask掩码
对于文件夹:文件夹的权限 = 777 - umask掩码
切换到linux123用户(不是文档全部者,也不是同组用户,属于other部分):
问题1:linux123用户是否能够打开oo/xx.txt文件?
问题2:linux123用户是否能够编辑oo/xx.txt文件?
问题3:linux123用户是否能够删除oo/xx.txt文件?
在Linux中,若是要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,若是有才能够删除。
属主:所属的用户(文件的主人),文档全部者
属组:所属的用户组(同组用户的组名称)
前面的那个root就是属主
后面的那个root就是属组
这两项信息在文档建立的时候会使用建立者的信息(用户名、用户所属的主组名称)。
之因此须要设置这个:若是有时候去删除某个用户,则该用户对应的文档的属主和属组信息就须要去修改(相似离职以前的工做交接)。
做用:更改文档的所属用户(change owner)
语法:#chown [-R] 新的username 文档路径
案例:将先前设置的/oo目录的全部者设置成成linux123
#chown -R linux123 /oo
做用:更改文档的所属用户组(change group)
语法:#chgrp [-R] groupname 文档的路径
案例:将刚才oo目录的全部用户组名改成linux123
#chgrp -R linux123 /oo
思考,如何经过一个命令实现既能够更改所属的用户,也能够修改所属的用户组呢?
答:能够实现的,经过chown命令
语法:#chown [-R] username:groupname 文档路径
案例:将刚才oo的文档的所属组所属用户修改成root
#chown -R root:root /oo
问题:zhangsan用户使用本身的账号建立文件index.html,而且当时默认的权限是644,后续管理员root将该文件的属主改为了lisi,属组改为lisi,则zhangsan对文件的操做权限有变化吗?若是有权限是多少?