一、权限
权限是操作系统用来限制资源访问的机制,权限一般分为读、写、执行。
系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。
每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户的权限越大,该进程所拥有的权限也就越大。
权限分为用户、用户、其他组,linux中文件与目录是由r读、w写、x执行来构建整个系统。
读 r 4 cat more
写 w 2 > >> vi
执 x 1 用于shell脚本
无权限 -
企业上常见有3组情况
第一组: rw- 6 代表root用户对这个文件或文件夹的权限
第二组: r-- 4 代表root用户组的所有成员对这个文件或文件夹的权限
第三组: r-- 4 代表其他组的所有成员对这个文件或文件夹的权限
切换用户,访问root用户目录下的某一文件夹:Permission denied.
发现其他组用户是无权访问root用户,这是需要修改root用户对第三组用户的权限限制,赋予可读的权限:
在tmp目录下示范一下(tmp是Linux系统中一个临时文件夹,允许所有用户能够访问而不修改权限)
在tmp目录创建一个root用户用户组所属的新的文件,而其他用户组只有可读权限(tmp目录下所有用户均能查看此文件),先把可读权限去掉,然后用另外一个用户访问,发现此用户将不能访问此文件夹。
二、文件与目录的权限(补充)
- 对于文件的权限说明
1.当仅r权限作用在文件上的时候,表示用户可以读取该文件的内容。
2.当仅w权限作用在文件上的时候,表示用户可以修改该文件的内容。
3.当仅x权限作用在文件上的时候,没有意义。
4.当rw同时作用在文件上的时候,表示用户可以读写文件。
5.当rx同时作用在文件上的时候,表示用户可以读且可以执行该文件。
6.当wx同时作用在文件上的时候,权限与仅w相同。
7.当rwx同时作用在文件上的时候,用户可以读写执行。 普通用户不能更改文件所属人,更改文件的组需要用户在相应的组才能更改组,二进制文件读写无意义。
- 对于目录的文件说明
1.当仅r权限作用在目录上的时候,表示用户可以短列出查看目录下的文件名。
2.当仅w权限作用在目录上的时候,没有意义。
3.当仅x权限作用在目录上的时候,表示用户可以进入且可以访问目录下的文件,但不能列出文件名。
4.当仅rw权限同时作用在目录上的时候,权限等同于仅r权限作用在目录。
5.当仅rx权限同时作用在目录上的时候,表示用户可以进入,可以访问子文件,同时可以长列出文件。
6.当仅wx权限同时作用在目录上的时候,表示用户可以进入,可以访问子文件,可以创建及删除,但不能列出。
7.当rwx权限同时作用在目录上的时候,表示用户有完整权限。
普通用户对于目录没有执行权限是不能进入,也不能查看文件的详细属性和内容,即使有读权限,有写权限就可删除目录内文件内容。
文件能不能删不由文件决定,由目录决定 。 X对于批量增加x权限时,可以跳过文件而只对目录加x。
三、写一个shell脚本
打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好
- 创建shell脚本vi test.sh
首行输入:#!/bin/bash(必须) #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
中间输入命令内容,可用echo命令 - 赋予执行权限
(1)sh test.sh (sh命令表示不需要赋予权限即可执行的命令)
(2)./test.sh(必须赋予执行权限)
注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
修改脚本x执行权限:[dudu@hadoop001 ~]$ chmod 765 test.sh
四、权限修改
- chown 修改文件和文件夹的用户和用户组属性
- chmod 修改文件和文件夹读写执行属性
参考链接
1、chmod xxx 文件名 (xxx是权限数字)
2、chmod xxx -R 文件夹名 (xxx是权限数字)
3、chown 用户:用户组 文件名
4、chown -R 用户:用户组 文件夹名
5、chmod -x 文件名称
6、chmod +x 文件名称
7、chmod u+x 文件名称 (只允许某一用户执行)
8、chmod u+x xxx.sh
9、chmod g+x xxx.sh
10、chmod o+x xxx.sh
chmod [OPTION]… OCTAL-MODE FILE…
修改方法:
chmod who(对谁操作) opt(做什么操作) per(给什么权限) file who : owner group other u g
o opt : + - = a(all或不写ugo 也是全部)增加 减少 赋予 per : r w x X s ,t chmod
u+x,g-w,o= | file =等号后是空 权限就是空的
###文件夹/文件所属的用户和用户组只能由所属的用户和用户组访问,其他用户组不能访问。
欢迎批评指正!
-加油???
2018-9-23 21:35
Sylvia