linux用户身份与用户权限

您所在的位置:网站首页 linux的用户可以分为 linux用户身份与用户权限

linux用户身份与用户权限

2024-07-14 06:12| 来源: 网络整理| 查看: 265

(时隔一个月再更新,其中痛苦,唯有自知。不管怎么样,学习还得继续) linux是一个多用户、多任务的操作系统,具有很好的稳定性与安全性在幕后保障linux系统安全的是一系列复杂的配置工作。

1 用户身份与能力

在RHEL7系统中,每个用户都自己的UID,像人的身份证号一样是不重复的,用户的身份有下面这些:

管理员UID为0:系统的管理员用户系统用户的UID为1-999: linux为了避免因某个服务程序出现漏洞而被黑客提权至整个系统,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏的范围。普通用户的UID是从1000开始的:是由管理员创建的用户日常工作的用户。

为了方便管理管理属于同一组的用户,linux引入用户组的概念。通过使用组号码(GID, group ID). 每个用户创建时会自动创建一个与其同名的用户组,如果该用户以后被归纳入其他组,则这个其他用户组称之为拓展用户组。一个用户只有一个用户组,但是可以有多个拓展用户组。 用户组相关命令之前已经记过linux常用用户组与用户命令,这里不重复了。

2 文件权限与归属 2.1文件类型与权限类型

linux中一切都是文件,但是文件的类型不尽相同,因此linux中使用不同的字符来加以区分,常见的字符如下:

- :普通文件d:目录文件l:链接文件b:块设备文件c: 字符设备文件p:管道文件 每个文件都有所有者和所有组,并且规定了文件的所有者,所有组以及其他人对文件的读写执行的泉下。文件的读写执行可以简写为rwx, 可以分别用数字4、2、1表示。 文件的数字化就是这三个数字相加而来比如rwx就是4+2+1=7。如果是6只能是4+2=rw。 2.3文件的特殊权限

在复杂多变的生产环境中,单纯设置文件的读写执行无法满足我们都安全和灵活性的需求,因此便有了SUID\SGID\SBIT的特殊权限。 特殊权限与一般权限同时使用,弥补一般权限不能实现的功能。 SUID SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者(只对可执行的二进制程序有效) SGID SGID主要实现两种功能:

让执行者临时用户属组的权限。在某个目录中创建的文件自动继承该目录的用户组。

SBIT SBIT(Sticky Bit)特殊权限位可确保用户只能删除自己的文件。被成为”粘滞位“或保护位。当目录被设置成保护位之后,文件的其他人权限,原本可执行x会变成t,原本没有x权限会变成T.

chmod -R o+t file

2.4文件的隐藏属性

linux中的文件除了具备一般或特殊权限外还有一种隐藏权限。隐藏权限常用到两个命令 chattrchattr用于设置文件的隐藏权限,lsattr用于显示文件的隐藏权限,隐藏权限必须用这个命令来看,ls看不出端倪。

2.5文件的访问控制列表

前文说的三种权限都是针对某一类用户设置的, 如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表ACL(access control list)了。基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限。另外,如果针对目录设置ACL, 那么目录中的文件将会继承其ACL.主要使用两个命令:

设置ACL权限 setfacl [opt] filename 显示CAL权限 getfacl filename

3 su 与 sudo命令

实验环境中其实不存在安全问题, 系统崩了再装一个也问题不大,但在生产环境中还是要多一份敬畏之心,不要用root管理员身份去做事, 一旦写了错误的命令,就很危险。 linux为了系统安全性考虑,很多命令和服务只能使用root, 这也让受到了更多的权限束缚。普通用户为了完成特定的工作任务,就需要 切换身份——su命令。

[redhat@linuxlearner ~]$ su - root Password: Last login: Tue Aug 24 22:25:03 EDT 2021 on pts/0 [root@linuxlearner ~]# su - redhat Last login: Tue Aug 24 22:26:28 EDT 2021 on pts/0

su 和用户名之间有一个-符号,意味着完全切换到另一个用户, 如果没有-, 环境变量是不改变的,如下:

[redhat@linuxlearner ~]$ echo $USER redhat [redhat@linuxlearner ~]$ su root Password: [root@linuxlearner redhat]# echo $USER redhat

加一个 - 号就不一样了:

[redhat@linuxlearner ~]$ echo $USER redhat [redhat@linuxlearner ~]$ su - root Password: Last login: Tue Aug 24 22:31:53 EDT 2021 on pts/0 [root@linuxlearner ~]# echo $USER root

尽管像上面这样使用su命令后,普通用户可以切换到root,但是这有暴露管理员密码的风险而且使用root本身也有风险。sudo命令可以把特定命令的执行权限赋予给指定用户。 sudo可以

限制用户执行的命令记录用户执行的每一条命令配置文件提供集中的用户管理、权限与主机等参数验证密码后的五分钟无须用户再次验证密码 [root@linuxlearner ~]# visudo 96 ## 97 ## Allow root to run any commands anywhere 98 root ALL=(ALL) ALL 99 redhat ALL=(ALL) ALL

保存之后,普通用户就可以使用sudo拥有root的权限了。

[redhat@linuxlearner root]$ sudo ls anaconda-ks.cfg initial-setup-ks.cfg


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3