Linux权限
目录
Linux中的用户
权限的概念
权限的管理
角色
属性
文件
要点
目录
权限缺省值
Linux中的用户
在Linux中用户分为两种:
- 普通用户:做有限的事情。
- 超级用户(root):可以做任何事情,不受约束。
普通用户的命令提示符是'$',超级用户的命令提示符是'#'。
普通用户变超级用户可以用su或su-命令,用exit退出超级用户,超级变普通也是用su或su-实现的(su或su-的区别是su会保持当前路径,su-不会)。
用su就会保持当前路径
用su-就不会保持当前路径
可以使用sudo进行短暂提权,当然了并不是所用人都可以用该命令,只有在白名单的用户才可以使用。
权限的概念
权限就是对系统资源(如文件、目录等)的访问控制机制,它决定了哪些用户或用户组能够对特定资源进行何种操作。
权限首先限制的是角色,并不是人;权限要求目标必须具备对应属性,不能说你在CSDN上看电影。
权限的管理
从上面的内容可以看出:权限 = 角色 + 属性。
角色
角色即:拥有者、所属组、other
- 拥有者:文件或目录的创建者。
- 所属组:系统中的用户可以被划分到不同的组,文件或目录可以属于某个特定的组。
- 其他用户:除了拥有者和所属组之外的其他用户。
在上面的图片中左边的root是拥有者,右边的是所属组,他们两个之外的就是其他用户。
可以用chown修改拥有者,用chgrp修改所属组,也可以chown xxx:xxx来一起修改拥有者和所属组。文件角色一般是不允许修改的,想修改必须是超级用户!
如果我是普通用户就会报错
属性
属性即:读、写、执行。属性在文件和目录表现不一样,这里先说文件。
斜杠左边的是文件类型, 1是拥有者,2是所属组,3是其他人
文件
用chomd来进行修改,具体如下:
chomd u/g/o/a +/-/= r/w/x
- u:拥有者
- g:所属组
- o:other
- a:所有角色
- +:添加权限
- -:取消权限
- =:直接设置权限
- r:可读
- w:可写
- x:可执行
如果一次对多个角色操作用 ',' 隔开。目录文件也可以这样修改,它们只是rwx代表的意义不一样而已。
因为属性权限只有两种状态,很像1 / 0,那rw- rw- r--就可以看成110110100变成十进制就是664所以我们可以这样写。
要点
- 用户只能修改自己创建的文件
- 如果文件没有该属性,系统会禁止我们访问
- 在使用某权限时,系统会先确认我们的角色,顺序一般是u→g→o(在Centos和Ubuntu中只会确认一次,)。
- root不受任何条件约束(除了部分正在执行的文件不受root控制)
- 可执行权限 ≠ 文件可以被执行
目录
- r:查看文件内容权限
- w:在目录中新建内容权限
- x:进入目录权限
无x:
无w:
无r:
文件能否被删除只和它所处的目录有关。新建的目录rwx这三个权限一般都要具备。
权限缺省值
文件的默认值是666默认不带x,目录的默认值是777默认带x。
但是在实际中会根据不用的需要来修改属性权限,一个一个改效率低下,这时候就要用到umask(权限掩码)。
最终权限=起始权限 & (~umask)。可以看出只要是在umask中出现的权限在最终权限里一定不会出现。
我的umask是0002(第一个0不用管),通过上面的公式就可以得到
上面的权限。想修改的话可以直接在umask后写你想修改的指令。