用户身份与文件权限基础详解

1、Linux中的UID

管理员UID为0:系统的管理员用户

系统用户UID为1~999:Linux系统为了避免因某个程序服务出现漏洞而被黑客提权至整个服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。

普通用户UID从1000开始:而且管理员创建的普通用户的UID默认是从1000开始的(即使前面有闲置的号码)。

2、useradd命令用于创建新的用户,格式为“useradd [选项] 用户名”。

useradd命令中的用户参数以及作用
-d指定用户的家目录(默认为/home/username)
-e

账户的到期时间,格式为YYYY-MM-DD.

-u指定该用户的默认UID
-g指定一个初始的用户基本组
-G指定一个或多个用户扩展组
-N不创建与用户同名的基本用户组
-s指定该用户的默认Shell解释器

3、groupadd命令用于创建用户组,格式为“groupadd [选项] 群组名

4、usermod命令用于修改用户的属性,格式为"usermod [选项] 用户名

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

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

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

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

7、可读(字符表示“r”,数字表示“4”):表示能够读取文件的实际内容; 可写(字符表示“w”,数字表示“2”):表示能够编辑、新增、修改、删除文件的实际内容;  可执行(字符表示“x”,数字表示“1”):表示能够运行一个脚本程序。某个文件权限为7则代表可读、可写、可执行(4+2+1)例:rwxrw-r--数字表示法 764

权限分配文件所有者文件所属组其他用户
权限项执行执行执行
字符表示rwxrwxrwx
数字表示421421421

Linux常见区分文件的字符

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

8、文件的特殊权限

SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。rwx变为rws rw-变为rwS(大写)                                   SGID:让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)、在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

chomd命令是用来设置文件或目录的权限,格式为“chomd [参数] 权限 文件货目录名。               chown命令是用于设置文件或目录的所有者和所属组,格式为“chown [参数] 所有者:所有组 文件或目录名称”。chomd和chown在针对目录进行操作时需要加上大写参数-R来表示和递归操作,即对目录中的所有文件进行整体操作。                                                                                                      SBIT特殊权限位(保护位):可确保用户只能删除自己的文件,而不能删除其他用户的文件。当设置SBIT权限后,文件的其他人权限的部分原本有x权限的会变成t,原本没有x执行权限的会被写成T。要想对其他目录来设置SBIT特殊权限位,用chmod命令对应的参数o+t代表设置SBIT保护位权限。

9、chattr,命令用于设置文件的隐藏权限,格式为"chattr [参数] 文件"。命令后追加“+参数”表示把某个隐藏功能添加到文件上,“-参数”表示将某个隐藏功能移出文件。                                                 

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

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

10、文件访问控制列表(ACL)可以对某个指定的用户进行单独的权限控制,通俗的说就是基于基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限。如果针对某个目录设置了ACL,则目录中的文件会继承其ACL,若针对文件设置了ACL,则文件不再继承其所在目录的ACL。

11、stefacl命令用于管理文件的ACL规则,格式为“setfacl [参数] 文件名称”。文件的ACL提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。针对目录文件需使用-R递归参数;普通文件使用-m参数;若想删除某个文件的ACL使用-b参数。当文件成功设置了ACL权限时,文件权限的最后一个(.)会变成(+)。

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

13、su命令与sudo服务                                                                                                                       su命令用来解决切换用户身份的需求,当前用户不需退出。su命令与用户名中间加一个减号(-)时,意味着完全切换到新用户,即把环境变量信息也变更为新用户的相应信息。                               sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”。                                                                                                                              

sudo服务中的可用参数以及作用
-h列出帮助信息
-l列出当前用户可执行的命令
-u用户名或UID值以指定的用户身份执行命令
-k清空密码的有效时间,下次执行sudo时需要再次进行密码验证。
-b在后台执行指定的命令
-p更改询问密码的提示语

总的来说,sudo命令有如下功能:限制用户执行指令的命令;记录用户执行的每一条命令;配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;验证密码的后五分钟内(默认值)无需再让用户再次验证密码。利用sudo提供的visudo命令可以自行配置用户权限,但禁止多个用户同时修改,该命令有语法检查和参数报错(只有root管理员才能使用)。

whereis命令找出命令所对应的保存路径,若需让某个用户使用root管理员的身份执行指定的命令时,需要给出该命令的绝对路径,否则系统将无法识别。添加NOPASSWD参数,使得用户执行sudo命令时无需再验证密码。                                                            

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值