Linux学习之旅-《Linux就该这么学》—— 第六天

it2022-05-05  122

用户身份和文件权限

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

useradd命令 useradd命令用于创建新的用户,格式为“useradd [选项] 用户名”。 useradd jack -u 2000 useradd tony -s /sbin/nologin useradd tom -G admin -d 指定用户的家目录(默认为/home/username) -e 账户的到期时间,格式为YYYY-MM-DD. -u 指定该用户的默认UID -g 指定一个初始的用户基本组(必须已存在) -G 指定一个或多个扩展用户组 -N 不创建与用户同名的基本用户组 -s 指定该用户的默认Shell解释器

groupadd命令 groupadd命令用于创建用户组,格式为“groupadd [选项] 群组名”。 为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同一个组里面,这样便可以针对一类用户统一安排权限。 groupadd admin

usermod命令 usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。 -c 填写用户账户的备注信息 -d -m 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 -e 账户的到期时间,格式为YYYY-MM-DD -g 变更所属用户组 -G 变更扩展用户组 -L 锁定用户禁止其登录系统 -U 解锁用户,允许其登录系统 -s 变更默认终端 -u 修改用户的UID

passwd命令

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

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

userdel命令 userdel命令用于删除用户,格式为“userdel [选项] 用户名”。 参数 作用 -f 强制删除用户 -r 同时删除用户及用户家目录

文件权限与归属 尽管在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分,常见的字符如下所示。 -:普通文件。 d:目录文件。 l:链接文件。 b:块设备文件。 c:字符设备文件。 p:管道文件。 文件的特殊权限 SUID SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。例如,所有用户都可以执行passwd命令来修改自己的用户密码,而用户密码保存在/etc/shadow文件中。仔细查看这个文件就会发现它的默认权限是000,也就是说除了root管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到shadow文件中。这很像我们在古装剧中见到的手持尚方宝剑的钦差大臣,他手持的尚方宝剑代表的是皇上的权威,因此可以惩戒贪官,但这并不意味着他永久成为了皇上。因此这只是一种有条件的、临时的特殊权限授权方法

SGID SGID主要实现如下两种功能: 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置); 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。 chmod命令是一个非常实用的命令,能够用来设置文件或目录的权限,格式为“chmod [参数] 权限 文件或目录名称”。如果要把一个文件的权限设置成其所有者可读可写可执行、所属组可读可写、其他人没有任何权限,则相应的字符法表示为rwxrw----,其对应的数字法表示为760。 chmod 760 test

设置文件或目录的所有者和所属组,这里使用的命令为chown,其格式为“chown [参数] 所有者:所属组 文件或目录名称”。 chown root:bin test

SBIT 现在,大学里的很多老师都要求学生将作业上传到服务器的特定共享目录中,但总是有几个“破坏分子”喜欢删除其他同学的作业,这时就要设置SBIT(Sticky Bit)特殊权限位了(也可以称之为特殊权限位之粘滞位)。SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。 文件所属者才能删除自己的文件

SUID:u+s SGID:g+s SBIT:o+t

文件的隐藏属性 Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉。有用户曾经在生产环境和RHCE考试题目中碰到过明明权限充足但却无法删除某个文件的情况,或者仅能在日志文件中追加内容而不能修改或删除内容,这在一定程度上阻止了黑客篡改系统日志的图谋,因此这种“奇怪”的文件也保障了Linux系统的安全性。

chattr命令 chattr命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”。

参数 作用 i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) S 文件内容在变更后立即同步到硬盘(sync) s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) A 不再修改这个文件或目录的最后访问时间(atime) b 不再修改文件或目录的存取时间 D 检查压缩文件中的错误 d 使用dump命令备份时忽略本文件/目录 c 默认将文件或目录进行压缩 u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 t 让文件系统支持尾部合并(tail-merging) x 可以直接访问压缩文件中的内容

[root@linuxprobe ~]# chattr +a linuxprobe [root@linuxprobe ~]# rm linuxprobe rm: remove regular file ‘linuxprobe’? y rm: cannot remove ‘linuxprobe’: Operation not permitted [root@linuxprobe ~]# lsattr linuxprobe -----a---------- linuxprobe [root@linuxprobe ~]# chattr -a linuxprobe [root@linuxprobe ~]# lsattr linuxprobe ---------------- linuxprobe [root@linuxprobe ~]# rm linuxprobe rm: remove regular file ‘linuxprobe’? y

chatter +a 文件 设置属性 lsattr 文件 查看属性 chatter-a 文件 删除属性


最新回复(0)