linux之chmod授权

在linux中,我们可以通过chmod命令对文件的权限进行配置。

背景


 首先有两点需要了解:

  1. 在Unix和Linux的中,每个文件(文件夹也被看作是文件)都有三种权限运行
  2. 被授予权限的用户身份三种:当前文件的拥有者,与拥有者属于同组者(同一个group),其他人

查看权限


输入 ls -l 命令,可以查看当前文件夹下各个文件的权限,例如

1. 方框中第1位字母,表示文件类型:普通文件(-)、目录文件(d)、字符设备文件(c)和块设备文件(b)、符号链接文件(s)等,此处不过多关注;

2. r、w、x代表三种权限:r(read,读),w(write,写),x(execut,运行),- 表示没有;

3. 在第2到第10位的这9个位置上,前三位表示文件所有者的权限,中间三位表示同组用户的权限,最后三位表示其他用户的权限,三个为一组;

解读举例:

上图中abrt文件夹的权限:文件夹所有者(此处是root)拥有读,写,运行的权限,与root同组的用户拥有读和运行的权限,其它用户拥有读和运行的权限。

设置权限


1.通过数字设置权限

例如:

(ps:-R 表示对当前目录下的所有文件(包含子目录进行相同的权限变更(即以递回的方式逐个变更),此处还有其它参数可选,不常用,此处不赘述)

你可能要问了,755,777,这是无规则的特殊指令吗?类似于华安的9527?

当然不是,对于文件的三种权限,除了上面的r,w,x的表示方式,还有一种用数字代表的方式:的权限等于4的权限等于2运行的权限等于1

通过4、2、1的组合,得到以下几种权限:

0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)


以755为例:
1-3位7等于4+2+1,rwx,所有者具有读取、写入、运行权限;
4-6位5等于4+1+0,r-x,同组用户具有读取、运行权限但没有写入权限;
7-9位5,同上,也是r-x,其他用户具有读取、运行权限但没有写入权限。

 

因此也就有了常用的linux文件权限:
444 r--r--r--
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx

2.通过字母修改权限

例如

这种修改方式的统一格式为 chmod [ugoa...][[+-=][rwxX]...][,...]

  • 第一个位置上,u 表示该文件的拥有者g 表示与该文件的拥有者属于同组者o 表示其他人a 表示这三者所有;
  • 第二个位置上,+ 表示增加权限- 表示取消权限= 表示唯一设定权限
  • 第三个位置上,r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当  该文件是个子目录  或者  该文件已经被设定过  为可执行。

这儿有一个突出的


chmod 4755 filename可使此程序具有root的权限
例如:

root用户创建了一个上网认证程序netlogin,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令,使其他用户也能运行netlogin。
但是netlogin执行时可能需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。
这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。

 

posted @ 2018-07-20 16:21  斑驳的树影  阅读(715)  评论(0编辑  收藏  举报