linux关于用户身份与文件权限详细介绍

举报
阿柠 发表于 2022/09/30 09:56:57 2022/09/30
【摘要】 用户身份与文件权限 用户身份与能力UID管理员的UID为0:系统的管理员用户系统用户的UID为1~999:普通用户从1000开始。 useradd命令用于创建新的用户useradd 【选项】 用户名默认情况下:用户家目录会被存放在/home下,默认的shell解释器为/bin/bash.而且默认会创建一个与该用户同名的基本用户组。这些默认可由下面的参数修改。参数作用-d指定用户的家目录-...

用户身份与文件权限

用户身份与能力

UID

  1. 管理员的UID为0:系统的管理员用户
  2. 系统用户的UID为1~999:
  3. 普通用户从1000开始。

useradd命令

用于创建新的用户

useradd  【选项】 用户名

默认情况下:用户家目录会被存放在/home下,默认的shell解释器为/bin/bash.而且默认会创建一个与该用户同名的基本用户组。

这些默认可由下面的参数修改。

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

groupadd命令

用于创建用户组

usermod命令

用于修改用户的属性

用户的信息保存在/etc/passwd

usermod   【选项】   用户名
参数 作用
-c 填写用户账户的备注信息
-d -m 这两参数连用,可重新指定用户的家目录,并且把旧的数据转移过去
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更拓展用户组
-L 锁定用户,禁止其登录系统
-U -s 变更默认终端
-u 修改用户的uid

passwd命令

用于修改用户密码,过期时间,认证信息

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

userdel命令

用于删除用户

uderdel  【选项】  用户名
参数 作用
-f 强制删除用户
-r 同时删除用户以及家目录

文件权限与归属

尽管linux系统中一切皆文件,但是每个文件的类型不尽相同

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

文件的特殊权限

SUID

suid是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)

当文件由rwx变为rws时,就意味着普通用户临时的获得了修改passwd文件的权限

SGID

让执行者临时拥有属组的权限。

让某个目录中创建的文件自动继承该目录的用户组。

chown命令

设置文件所有者

chown  【-R】 user名  :group名  文件名   # -R是在文件夹的时候添加

chmod 命令

修改文件所属用户,所属组,其他用户的权限

chmod  777 文件名

chgrp命令

设置文件所属组

chgrp  【-R】 所属组  文件名  (目录名)

SBIT

SBIT特殊权限位,可确保用户只能删除自己的文件,而不能删除其他用户的文件

当设置SBIT后,文件的其他人权限的x就会变为t,如果没x就会变为T。

文件隐藏属性

chattr命令

用于设置文件的隐藏属性

chattr  【参数】 文件   # 加功能就是+参数,移除功能就是移除参数
参数 作用
i 文件:不允许删除改名,添加和修改数据
目录:只能修改目录下文件的数据,不允许新建和删除文件。
a 文件:只能增加,不能删除修改
目录:只能修改,新建,不允许删除。
S 文件内容在修改之后立即同步到硬盘
s 彻底从硬盘中删除,不可回复
A 不在修改这个目录或文件的最后访问时间(atime)
b 不在修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或者目录进行压缩
u 当删除文件后依然保持其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并
X 可以直接访问压缩文件中的内容。

lsattr命令

用于显示文件的隐藏权限

文件访问控制列表(ACL)

不知道大家是否注意到,前文讲的一般权限,特殊权限,隐藏权限其实有一个共性-----权限是针对某一类用户设置的。如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了。

基于普通文件或目录设置的ACL其实就是针对指定的用户或者用户组设置文件或目录的操作权限。

如果针对某个目录设置了ACL,则目录的文件会继承其ACL,若针对文件设置了ACL,则文件不在继承其所在目录的ACL。

setfacl命令

用于管理文件的ACL规则

setfacl  【参数】 文件名称

-R  #针对目录文件使用的递归参数
-m  #针对普通文件使用的参数
-b  #删除某个文件的ACL

例:给一个普通用户设置进去/root的rwx权限

xn_2022-08-18_08-58-52

xn_2022-08-18_09-00-57

但是的但是 我们怎么知道这个文件上是不是有ACL呢。

常用的ls命令是看不到ACL表的信息的,但是却可以看到文件的权限最后一个点(.)变成了加号(+)。这就意味着文件已经设置了ACL了。

xn_2022-08-18_09-36-41

getfacl命令

用于显示文件上设置的ACL信息

getfacl  文件名称

xn_2022-08-18_09-43-04

su命令与sudo服务

su命令

解决切换用户身份的需求使得当前用户在不退出登录的情况下,顺畅的切换到其他用户。

sudo

你从普通用户切换到root用户,是需要root密码的,这就存在着泄露root用户密码的风险。

sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务

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

总结来说,sudo有以下功能:

  1. 限制用户执行指定的命令
  2. 记录用户执行的每一条命令
  3. 配置文件(/etc/sudoers)提供集中的用户管理,权限与主机参数(visudo就是这里面的内容)
  4. 验证密码的后5分钟内无需让用户再次验证密码。

visudo的内容:

谁可以使用  允许使用的主机=(以谁的身份)  可执行命令的列表

dianxin3    ALL=(ALL) ALL

aqassoc   ALL=(ALL) NOPASSWD:ALL,!/bin/su,!/sbin/init,!/sbin/shutdown  # !后面的是除了的

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。