深入了解Linux系统权限控制指南 (linux权限说明)

Linux系统是世界上使用最广泛的开源系统之一,其灵活性、安全性和可靠性受到很多企业和个人的青睐。然而,随着Linux系统的普及,系统安全也成为了用户关注的焦点之一。在Linux系统中,权限控制是保证系统安全的重要手段之一。本文将介绍Linux系统的权限管理机制及其基本原理,以帮助用户更好地保护自己的系统安全。

一、Linux系统权限管理机制

1. 用户和用户组

Linux系统的权限管理机制是基于用户和用户组的。每个用户可以属于一个或多个用户组,用户组可以包含一个或多个用户。每个文件或目录都是由一个所有者和一个或多个组来定义的。

在Linux系统中,用户和用户组的信息存储在一个文件中,通常是/etc/passwd和/etc/group。这些文件可以被管理员和用户直接编辑,以添加、删除和修改用户和用户组信息。管理员还可以通过这些文件来授予和撤销用户的特权和权限。

2. 权限和访问控制列表

Linux系统中的每个文件或目录都有一组权限,用于控制对该文件或目录的访问。这些权限分为三类:

• 对所有者的权限:可以读、写或执行文件或目录。

• 对同一组用户的权限:可以读、写或执行文件或目录。

• 对其他用户的权限:可以读、写或执行文件或目录。

管理员可以通过chmod命令来修改文件或目录的权限。该命令还可以使用符号表示法或数字表示法来指定权限。

除了权限控制外,Linux还支持访问控制列表(ACL)。ACL提供了更细粒度的权限控制机制,可以指定特定用户或用户组对文件或目录的访问权限。要创建和修改ACL,可以使用setfacl和getfacl命令。

二、基本原则

Linux系统的权限管理机制遵循以下四个基本原则:

1. 最小权限原则

最小权限原则指的是在授权时尽量给予最少的权限,以降低潜在的风险。例如,如果一个用户只需要读取文件的内容,那么他只需要被赋予读取的权限,而不需要写入或执行的权限。

2. 分层授权原则

分层授权原则指的是将权限进行分层授权,以便更好地控制系统访问。可以在不同的层次上授予不同的用户和用户组不同的权限,从而有效地限制系统中的各个层面的风险。

3. 审计原则

审计原则是指对系统资源和访问进行定期审查和记录,以便追踪和监控系统中的活动。管理员可以使用Linux系统日志或第三方工具来检查和分析系统日志,以判断是否存在安全问题。

4. 持续改进原则

持续改进原则是指管理员和用户应不断地改进系统的安全性,采取适当的措施来保证系统安全。例如,及时升级系统、修补漏洞、更新安全策略等都是持续改进的一部分。

三、安全更佳实践

在Linux系统中,有一些安全更佳实践可以帮助管理员和用户更好地保护系统安全。下面是一些常见的更佳实践:

1. 使用强密码

使用强密码可以防止恶意用户猜测密码或使用暴力破解程序来攻击系统。强密码应该是随机的、包含数字、字母和符号的组合,并且具有足够的长度。

2. 定期更新系统和软件

Linux系统中的软件和内核更新可以修补和改进系统的安全性,同时也可以增强系统的性能和稳定性。

3. 禁止root用户登录

root用户在Linux系统中具有绝对控制权,如果遭到黑客或病毒攻击,系统将很容易被完全控制。因此,管理员应该禁止root用户通过网络登录。

4. 禁止使用不安全的服务

许多不安全的网络服务可能面临安全漏洞,如无密码的FTP、远程登录服务等,管理员应该禁用这些服务或替换为更安全的服务。

5. 使用SELinux

SELinux是Linux中的一种强制类型访问控制(MAC)机制,可以限制应用程序访问的资源和行为。使用SELinux可以增强系统的安全性和稳定性。

结论

在Linux系统中,权限控制是保证系统安全的重要手段之一。管理员和用户需要了解Linux系统中的权限机制和原则,采取适当的安全措施来保护系统安全。通过使用安全更佳实践,针对常见的安全漏洞和攻击进行预防和应对,可以使Linux系统更加安全和可靠。

相关问题拓展阅读:

Linux下的umask、特殊权限与ACL权限

在了解到Linux系统上的文件目录权限,有时候你会发现为什么刚创建的文件是

-rw-r–r–

这个权限,目录是

drwxr-xr-x

权限,有些是

-rwsr-xr-x

,又有些是

drwsrws–T

?这些则与umask、特殊权限有关。

什么是umask?umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限。它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、

或用户家目录下的.bash_profile或.profile中设置umask值。

默认的umask是0022,0022四个数字代表是赋值初始弊扮化准备丢弃的权限。(相对应文件来说,x权限就算没说明出来丢弃一样必须默认丢弃)

  之一个0代表suid 丢弃的权限;

  第二个0代表本文件/目录拥有者什么权限都没丢弃;

  第三个2代表本文件/目录的用户组丢弃了w权限;

  第四个2代表本文件/目录的文件/目录的用户组丢弃了w权限。

  一般我们会这样表示:

umask +default permission(默认权限) =777(目录)/666(文件)

但存在特殊情况如果把umask设为135呢?

要了解特殊权限需对安全上下文有一个概念:

前提:进程有属主和属组;文件有属主和属组

(1) 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限

(2) 启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组

(3) 进程访问文件时的权限,取决于进程的发起者

(a) 进程的发起者,同文件的属主:则应用文件属限

(b) 进程的发起者,属于文件属组;则应用文件属组权限

(c) 应用文件“其它”权限

1.SUID 权限仅对二进制程序(binary program)有效;

2.执行者对于该程序需要具有x 的可执行权限;

3.本权限仅在执行该程序的过程中有效(run-time);

4.执行者将具有该程序拥有者(owner) 的权限。

5.SUID设置在目录上无意义

权限设定:

chmod u+s FILE…

chmod u-s FILE…

s 标志在文件拥有者的x 项目为SUID,那s 在群组的x 时则称为Set GID

# ls -l /usr/bin/locate

-rwx–s–x. 1 root slocateJun/usr/bin/locate

与SUID 不同的是,SGID 可以针对文件或目录来设定!如果是对文件来说, SGID 有如下的功能:

-1.SGID 对二进制程序有用;

-2.程序执行者对于该程序来说,需具备x 的权限;

-3.执行者在执行的过程中将指颤会获得该程序群组的支持!

# ll /usr/bin/locate /var/lib/mlocate/mlocate.db

-rwx–s–x. 1 root slocateJun/usr/bin/locate

-rw-r—–. 1 root slocateJun 15 03:44 /var/lib/mlocate/mlocate.db

与SUID 非常的类似,租逗灶使用xiaoming 这个账号去执行locate 时,那xiaoming将会取得slocate 群组的支持, 因此就能够去读取 mlocate.db 。

SGID 也能够用在目录上,这也是非常常见的一种用途

目录设定了SGID 的权限后,他将具有如下的功能:

-1. 用户若对于此目录具有r 与x 的权限时,该用户能够进入此目录;

-2.用户在此目录下的有效群组(effective group)将会变成该目录的群组;

-3.用途:若用户在此目录下具有w 的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同。

这个 Sticky Bit, SBIT 目前只针对目录有效,sticky 设置在文件上无意义。SBIT 对于目录的作用是:

-1.当用户对于此目录具有w, x 权限,亦即具有写入的权限时;

-2.当用户在该目录下建立文件或目录时,仅有自己与root 才有权力删除该文件

SUID/SGID/SBIT 权限设定

-rwSrwSrwT 1 root root 0 Jun 16 02:53 test

设定权限成为 -rws–x–x 的模样:

# chmod u=rwxs,go=x test; ls -l test

-rws–x–x 1 root root 0 Jun 16 02:53 test

承上,加上 SGID 与 SBIT 在上述的文件权限中!

# chmod g+s,o+t test; ls -l test

-rws–s–t 1 root root 0 Jun 16 02:53 test

1】ACL 是Access Control List 的缩写,主要的目的是在提供传统的owner,group,others 的read,write,execute 权限之外的细部权限设定。ACL 可以针对单一使用者,单一文件或目录来进行

ACL 主要可以针以下来控制权限呢:

1.使用者 (user):可以针对使用者来设定权限;

2.群组 (group):针对群组为对象来设定其权限;

3.默认属性(mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的默认权限;

及1.ACL:Access Control List,实现灵活的权限管理;2.CentOS7默认创建的xfs和ext4文件系统具有ACL功能;3.CentOS7之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加tune2fs –o acl/dev/sdb1

mount –o acl/dev/sdb1 /mnt/test

4.ACL生效顺序:所有者,自定义用户,自定义组,其他人

为多用户或者组的文件和目录赋予访问权限rwx

2】ACL 的设定技巧: getfacl, setfacl

-x :删除后续的 acl 参数,不可与 -m 合用;

-b :移除『所有的』 ACL 设定参数;

-k :移除『预设的』 ACL 参数,

-R :递归设定 acl ,亦即包括次目录都会被设定起来;

-d :设定『预设 acl 参数』的意思!只对目录有效,在该目录新建的数据会引用此默认值

例:# touch acl_test1

# ll acl_test1

-rw-r–r–. 1 root root 0 Jul 21 17:33 acl_test1

# setfacl -m u:xiaoming:rx acl_test1

# ll acl_test1

-rw-r-xr–+ 1 root root 0 Jul 21 17:33 acl_test1

# setfacl -m u::rwx acl_test1

# ll acl_test1

-rwxr-xr–+ 1 root root 0 Jul 21 17:33 acl_test1

设定值中的 u 后面无使用者列表,代表设定该文件拥有者

2.getfacl 指令用法余setfacl一样

例:# getfacl acl_test1

file: acl_test1 acl.txt

setfacl -R -b /tmp/dir1

清除dir目录的ACL权限

setfacl -R –set-file=acl.txt /tmp/dir1

setfacl –restore acl.txt

关于linux权限说明的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 深入了解Linux系统权限控制指南 (linux权限说明)