linux的权限分配特点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的权限分配特点相关的知识,希望对你有一定的参考价值。

Linux中的用户与用户组

1、Linux多用户、多任务的特性

不同用户具有不同的权限,每个用户在权限允许的范围内完成不同的任务,

Linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

2、Linux用户的分类(3种)

在Linux下用户是根据角色定义的,具体分为三种角色

每个用户都有一个UID,并且是唯一的,通常UID号的取值范围是0~65535,

a. 管理员(超级用户):拥有对系统的最高管理权限 ,默认是root用户【0】

b. 系统用户(虚拟用户):

也叫“伪”用户,这类用户最大特点是不能登录系统, 它们的存在主要是为了方便系统管理,满足相应的系统进程对文件属主的要求。

例如,系统默认的bin、adm、nobody用户等,一般运行的web服务,默认使用的就是nobody用户,但是nobody用户是不能登录系统的【1-499】

(运行后台程序,daemon守护进程)

c. 普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限

例如,上面提到的crx用户,A,B用户等【500+】

3、用户和组的概念

我们知道,Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个帐户,然后通过这个帐户进入系统。这个帐户和用户是一个概念。

通过建立不同属性的用户,一方面,可以合理利用和控制系统资源;

另一方面,也可以帮助用户组织文件,提供对用户文件的安全性保护.

每个用户都用一个唯一的用户名和用户密码,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。

用户组是具有相同特征用户的逻辑集合。

通过定义用户组,在很大程度上简化了管理工作

4、用户和组的关系:

用户和用户组的对应关系有:一对一、一对多、多对一、多对多

一对一:一个用户可以存在一个组中,也可以是组中的唯一成员。

一对多:一个用户可以存在多个用户组中,此用户具有多个组的共同权限

多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限

多对多:多个用户可以存在多个组中,其实就是上面三个对应关系的扩展

为了方便用户管理,提出了“组”的概念,可以给组分配权限,把相同用户的权限放在同一个组中



5、三个重要配置文件

(1)/etc/passwd (冒号“:”为分隔符)

由于/etc/passwd文件是所有用户都可读的,因此就导致了用户的密码容易出现泄露,于是,Linux将用户的密码信息从/etc/passwd中分离出来,单独放到一个文件中, 这个文件就是/etc/shadow。该文件只有root用户拥有读权限,从而保证了用户密码的安全性。

现在许多linux版本都使用了shadow技术,把真正加密后的用户密码存放到/etc/shadow文件中,而在/etc/passwd文件的密码字段只存放一个特殊的字符,例如用“x"或者"*"来表示。



(3)/etc/group

5、每个用户和每个用户组都有一个属于自己惟一的一个ID(分别是UID和GID)

6、什么是shell ?

shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。相当于一个翻译官。Linux下常用的shell用sh、bash、csh等,

参考技术A 因为权限设置对于文件和目录的具体作用不同。

r(read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。
w(write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(execute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

Linux 访问控制列表(access control list)

简介

随着应用的发展,传统的linux文件系统权限控制无法适应复杂的控制需求,而ACL的出现,则是为了扩展linux的文件权限控制,以实现更为复杂的权限控制需求。其可以针对任意的用户和用户组进行权限分配(只有root用户和以定义ACL),以及默认权限分配。

类型

  • 针对文件所有者分配
  • 针对文件所属的组群分配
  • 针对额外用户分配
  • 针对额外组群分配
  • 其他用户分配
  • 最大访问权限

查看ACL

getfacl [-option]  [file|dic]
可选参数: -a -d -c -e -E -s -R -t -n
输出示例:
[[email protected] abc]$ getfacl count.sh
# file: count.sh
# owner: root
# group: root
user::rw-
user:tom:rwx
user:aaa:rwx
group::r--
group:temp:rw-
mask::rwx
other::r--

配置ACL

setfacl

选项 参数 含义
-m ACL设置 设置文件的ACL
-M 文件 从文件中读取ACL条目进行配置
-x ACL设置 删除ACL
-X 文件 从文件中读取ACL条目并删除
-b 删除所有扩展ACL
-k 删除所有默认ACL
-R 递归设置子目录及文件
-d 设置默认ACL
-P 跳过符号链接
-L 跟踪符号链接
-n 不重新计算有效权限
–set= ACL设置 覆盖ACL配置
–mask 重新计算有效权限
–resotre= 文件 从文件恢复备份的ACL
–test 测试模式,输出结果
–set-file= 文件 从文件读取ACL条目进行设置

ACL规则表示方式

[d[efault]]:[u[ser]]:用户:[权限] #指定用户ACL
[d]:g:组群:[权限] #指定用户组ACL
[d]:m:[权限] #有效权限掩码(其它权限默认不能超出该权限)
[d]:o:[权限] #其它用户ACL

配置示例:
    root#setfacl -m u:tom:rwx sum.sh #为用户tom指定权限

以上是关于linux的权限分配特点的主要内容,如果未能解决你的问题,请参考以下文章

linux文件共享分配只读+禁止复制文件怎么分配权限?

Linux 访问控制列表(access control list)

怎样为局域网用户分配共享权限并设置访问密码

linux虚拟机挂载了实体机的文件夹,无法分配other权限

linux基础-给普通用户组分配sudo权限

Linux用户及权限分配