Linux学习-用户身份和文件权限

本文详述了Linux中的用户身份管理,包括useradd、groupadd、usermod、passwd和userdel命令的使用。此外,介绍了文件权限的读、写、执行设定,以及SUID、SGID和SBIT特殊权限的概念。还讨论了文件的隐藏属性、ACL访问控制列表,并讲解了su和sudo服务在权限切换中的作用。

学习资料《Linux就该这么学》

Linux 是一个多用户、多任务的操作系统,具有很好的稳定性与安全性,在幕后保障 Linux系统安全的则是一系列复杂的配置工作。本章将详细讲解文件的所有者、所属组以及其他人对文件进行的读(r)、写(w)、执行(x)等操作,以及如何在 Linux 系统中添加、删除、修改用户账户信息。我们还可以使用 SUID、 SGID 与 SBIT 特殊权限更加灵活地设置系统权限功能,来弥补对文件设置一般操作权限时所带来的不足。隐藏权限能够给系统增加一层隐形的防护层,让黑客最多只能查看关键日志信息,而不能进行修改或删除。而文件的访问控制列表(Access Control List, ACL)可以进一步让单一用户、用户组对单一文件或目录进行特殊的权限设置,让文件具有能满足工作需求的最小权限。本章最后还将讲解如何使用 su 命令与 sudo 服务让普通用户具备管理员的权限,不仅可以满足日常的工作需求,还可以确保系统的安全性。
 

1、用户的身份和能力

1.1  useradd命令:useradd [选项] 用户名

使用useradd命令创建用户账户,默认的用户账户家目录会被保存在/home中, 默认的Shell解释器会被放在/bin/bash中,而且会创建一个与该用户名同名的基本用户组。

-d          指定用户的家目录(默认为/home/username)
-e          账户的到期时间,格式为 YYYY-MM-DD.
-u          指定该用户的默认 UID
-g          指定一个初始的用户基本组(必须已存在)
-G         指定一个或多个扩展用户组
-N         不创建与用户同名的基本用户组
-s          指定该用户的默认 Shell 解释器

 

1.2  groupadd命令:用于创建用户组,格式为  groupadd [选项] 群组名。

为了能够更加高效的指派系统中各个用户的权限,在工作中常常会把几个用户加入到同一个组里面,这样便可以针对一类用户统一安排权限。

 

1.3 usermod命令:用于修改用户的属性,格式为“usermod [选项] 用户名”。

 

1.4  passwd:用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]”。

-l             锁定用户,禁止其登录
-u            解除锁定,允许用户登录
--stdin    允许通过标准输入修改用户密码,如 echo "NewPassWord" | passwd --stdinUsername
-d           使该用户可用空密码登录系统
-e           强制用户在下次登录时修改密码
-S           显示用户的密码是否被锁定,以及密码所采用的加密算法名称

 

1.5  userdel:用于删除用户,格式为“userdel [选项] 用户名”。

-f 强制删除用户
-r 同时删除用户及用户家目录

 

2、文件权限和归属

使用不同多个字符来对文件的类型进行区分。

➢ -:普通文件。
➢ d:目录文件。
➢ l:链接文件。
➢ b:块设备文件。
➢ c:字符设备文件。
➢ p:管道文件。

在 Linux 系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。文件的读、写、执行权限可以简写为 rwx,亦可分别用数字 4、 2、 1 来表示,文件所有者,所属组及其他用户权限之间无关联。

 

3、文件的特殊权限

在复杂多变的生产环境中,单纯设置文件的 rwx 权限无法满足我们对安全和灵活性的需求,因此便有了 SUID、 SGID 与 SBIT 的特殊权限位。 这是一种对文件权限进行设置的特殊功能,可以与一般权限同时使用,以弥补一般权限不能实现的功能。

3.1 SUID:是对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(即对于拥有执行权限的二进制程序有效)。

3.2 SGID :(1)让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)。

                     (2)在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

     chmod命令:能够用来设置文件或目录的权限,格式为“chmod [参数] 权限 文件或目录名称”。
                        实例:将test设置为760   chmod 760 test

     chown命令:用来设置文件或者目录的所有者和所属者。“chown [参数] 所有者:所属组 文件或目录名称”。

                       chown root:bin test

3.3  SBIT:SBIT(Sticky Bit)特殊权限位了也可以称之为特殊权限位之粘滞位。 SBIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了 SBIT 粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作。

 

4、文件的隐藏属性

Linux 系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉。
4.1  chattr命令

chattr 命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”。
i             无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a            仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S           文件内容在变更后立即同步到硬盘(sync)
s            彻底从硬盘中删除,不可恢复(用 0 填充原文件所在硬盘区域)
A           不再修改这个文件或目录的最后访问时间(atime)

b            不再修改文件或目录的存取时间
D            检查压缩文件中的错误
d            使用 dump 命令备份时忽略本文件/目录
c             默认将文件或目录进行压缩
u            当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t              让文件系统支持尾部合并(tail-merging)
X            可以直接访问压缩文件中的内容

4.2 lasttr命令

lsattr 命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”。
 

5、 文件访问控制列表(ACL):希望对某个指定的用户进行单独的权限控制。

5.1 setfacl命令

setfacl 命令用于管理文件的 ACL 规则,格式为“setfacl [参数] 文件名称”。文件的 ACL提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用 setfacl 命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。其中,针对目录文件需要使用-R 递归参数;针对普通文件则使用-m 参数;如果想要删除某个文件的 ACL,则可以使用-b 参数。


5.2  getfcal命令

getfacl 命令用于显示文件上设置的 ACL 信息,格式为“getfacl 文件名称”。
 

6、 su和sudo服务

root和linux 用户之间的切换:

[linux@linuxprobe ~]$ su - root
Password: 
Last login: Mon Aug 26 17:30:01 CST 2019 on pts/0
[root@linuxprobe ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@linuxprobe ~]# su - linux
Last login: Mon Aug 26 17:30:19 CST 2019 on pts/0
[linux@linuxprobe ~]$ id
uid=1000(linux) gid=1000(linux) groups=1000(linux),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

sudo 命令用于给普通用户提供额外的权限来完成原本 root 管理员才能完成的任务,格式为“sudo [参数] 命令名称”。
-h              列出帮助信息
-l               列出当前用户可执行的命令
-u              用户名或 UID 值 以指定的用户身份执行命令
-k              清空密码的有效时间,下次执行 sudo 时需要再次进行密码验证
-b             在后台执行指定的命令
-p              更改询密码的提示语

sodu功能介绍:

➢ 限制用户执行指定的命令:
➢ 记录用户执行的每一条命令;
➢ 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
➢ 验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值