linux文档的控制访问总结

发布时间:2024年01月18日

1、文件系统目录访问控制
Linux中的文件系统使用了三种不同类型的权限来控制对目录的访问。这些权限包括所有者(Owner)、群组(Group)以及其他人(Others)。

所有者权限:表示该目录或文件的创建者可以进行操作。通过ls -l命令查看目录时会显示所有者的权限信息。如果需要修改所有者权限,可以使用chown命令更改所有者。
示例:
$ ls -ld /path/to/directory
drwxr-x--- 2 owner group 4096 Jan 1 00:00 directory_name
群组权限:表示属于相同群组成员的用户可以进行操作。通过ls -l命令查看目录时会显示群组的权限信息。如果需要修改群组权限,可以使用chgrp命令更改群组。
示例:
$ ls -ld /path/to/directory
drwxr-x--- 2 owner group 4096 Jan 1 00:00 directory_name
其他人权限:表示除了所有者和群组之外的任何用户都能进行操作。通过ls -l命令查看目录时会显示其他人的权限信息。如果需要修改其他人权限,可以使用chmod命令更改权限。
示例:
$ ls -ld /path/to/directory
drwxr-x--- 2 owner group 4096 Jan 1 00:00 directory_name

修改目录权限的命令:
chown:更改文件或目录的所有者
chmod:修改文件或目录的访问权限
chgrp:更改文件或目录的所属组
chkconfig:管理系统服务在不同运行级别上的自动启动状态
chroot:创建一个新的根目录并切换到该目录,使得进程在这个新的环境中运行。
chage:chage用于密码的实效管理,用来修改帐号和密码的有效期
?? ?Linux用户密码的有效期,是否可以修改密码可以通过login.defs文件控制.对login.defs文件修只影响后续建立的用户,如果要改变以前建立的用户的有效期等可以使用chage命令.
?? ?Linux用户密码的复杂度可以通过pam pam_cracklib module或pam_passwdqc module控制,两者不能同时使用. 个人感觉pam_passwdqc更好用。

2、linux用户和用户组

用户是系统资源的使用者,每个用户都有自己的用户名和密码。而用户组则是一组用户的集合,同一组内的用户拥有相同的访问权限。
?? ?用户管理:
?? ??? ?新增用户:useradd username
?? ??? ?设置密码:passwd username
?? ??? ?删除用户:userdel username
?? ??? ?切换用户:su username / su - username
?? ?用户组管理:
?? ??? ?新增用户组:groupadd groupname
?? ??? ?删除用户组:groupdel groupname

3、chmod命令的使用? ?

?在linux系统中,+表示添加权限,-表示删除权限,=表示设置权限。
?? ?例如:chmod u+rw test.txt/chmod u-rx test/chmod u=rwx,g=,o= test.txt
?? ?除此之外,chmod的+/-/=也可用在特殊权限的设置上:
?? ?例如:chmod u+s test.sh,表示给test.sh添加权限
?? ??? ? ?chmod g+s testdir,表示给testdir添加sgid权限
?? ??? ? ?chmod o+t testdir/chmod +t testdir,表示给testdir添加sbit权限

4、linux特殊权限
以上是基础的文件访问权限
在某些情况下,我们需要给某个程序或脚本赋予特殊权限,以便其能够在系统中执行特定操作。
SUID、SGID和SBIT是常见的特殊权限设置方式。SUID可以让普通用户以文件所有者的身份运行程序;SGID可以使组成员在运行程序时继承组的身份;Sticky Bit则用于保护目录下文件的删除权限。
suid:
set user id的缩写,它是一种特殊的权限执行,当一个可执行文件有suid权限时,执行该文件是将以文件所有者的权限运行,而不是主席那个者的权限。suid被设置的程序在执行时,总是以自己的所有者而运行,而不是当前用户的身份。因此,当普通用户执行一个有suid权限的文件时,该文件实际上是以文件所有者的身份来执行,从而拥有了更高的权限。
suid的典型应用是sudo程序,sudo允许非root用户执行特权操作。sudo程序具有suid权限,当普通用户使用sudo命令时,sudo程序将首先判断用户是否在授权列表中,如果是,就会为该用户提供root用户的权限,从而允许该用户执行特权操作。
sgid:
set group id的缩写,它是另一种特殊的权限指令。当一个目录有sgid权限时,任何用户创建的文件都会继承该目录的所有组的权限。在其他情况下,新建的文件继承的是创建者的用户和组id。这种机制常用于各种服务程序,比如邮件服务程序等,他们将继承服务器本身的组id,并使用该组来管理访问该服务的用户。除此之外,一个二进制文件被赋予sgid权限时,运行者在程序运行过程中会获得该程序群组的权限。
sbit:
sticky bit的缩写,该权限指令只能用于目录。当一个目录有sbit权限时,只有文件所有者和root用户才能删除其中的文件。这种机制可以防止非所有者误删目录下的文件。
sbit权限还可以用于限制i用户可以管理其他用户创建的文件。例如,某个目录上设置了sbit权限,只有该目录下的文件所有者和root用户才被允许删除和重命名他们的文件,而其他用户则只能修改自己创建的文件。这种机制再多用户系统中非常使用,可以保证用户之间的隔离,避免混乱的文件命名,还能保护用户的文件不被其他人删除。
suid、sgid、sbit是linux文件权限中的三个特殊权限指令。当年一个可执行文件有suid权限时,运行该文件将以文件所有者身份运行,当一个目录有sgid权限时,新创建的文件将继承该目录的所有组的权限,当一个目录有sbit权限时,只有文件所有者和root用户才能够删除其中的文件。这些指令的使用可以为系统的安全性、用户的隐私和文件管理等提供很多帮助。

suid、sgid、sbit的权限授予:
chmod的三个数字前面再加上一个数字:4是suid、2是sgid、1是sbit。例如chmod 6755 test 最前边的6就是给teset加入了suid和sgid的权限了。

5、ACL
Access Control List(ACL)是Linux中一种扩展权限机制,允许对文件和目录进行更精细的权限控制。通过setfacl和getfacl命令,我们可以为特定用户或组设置额外的权限,如读、写、执行等。
getfacl命令可查看文件或目录的acl列表
setfacl命令可设置文件或目录的acl列表
例如:可通过setfacl -m user:testuser:rw test.txt 给test.txt文件添加testuser用户的读写权限。

6、umark
在lunix中,umask是一种特殊的权限设置方式。umark值可以用来控制在创建文件或目录是设置的默认权限。
?? ?查看umark值:
?? ??? ?在linux中,我们可以使用umark命令查看当前umark值
?? ?设置umark值:
?? ??? ?在linux中,我们可以使用umark mode(如:umark 002)来设置umark值。

7、sudo

sudo是Linux系统中常用的权限管理工具,它允许管理员将特定命令授权给普通用户执行,从而实现临时提升权限的需求。通过编辑sudoers文件,管理员可以灵活地定义用户和命令之间的对应关系。

8、selinux

selinux为secure enhanced linux的缩写,意为安全增强的linux,是美国国家安全局NSA针对计算机基础结构安全开发的一个权限的linux安全策略机制。selinux可以允许系统管理员更加灵活的来定义安全策略。通常情况下我们在不怎么了解selinux时,将模式设置为disabled,这样在访问一些网络应用是就不会出现问题了。(在/etc/sysconfig/selinux中设置)

文章来源:https://blog.csdn.net/zdd56789/article/details/135583943
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。