Linux用户与用户组;文件权限;ACL权限;特殊权限;基本正则表达式

一、用户与用户组

1.1 用户和组

系统上每一个进程都是由一个特定的用户发起
系统上的文件都是由特定的用户拥有
用户对系统上的文件访问时 受到权限控制
与运行中的进程相关联的用户确定该进程可访问的文件和目录

1.2 用户

由于Linux是一个多用户、多任务的系统,因此系统中往往会有很多不同的用户

用户分为:管理员、普通用户

1.3 组

用户组、用户容器
在这里插入图片描述

1.4用户和组的标识符:UID与GID

虽然我们登录Linux主机的的时候,输入的是我们的账号,但是其实Linux主机并不会直接认识你的“账号名称”的,它仅认识ID。由于计算机仅认识0与1,所以主机对数字比较有概念的;至于账号只是为了让人们容易记忆而已。而你的ID与账号的对应关系就在/etc/passwd当中。

每一个文件都具有“所有者与所属用户组”的属性,每个登录的用户至少都会取得两个ID,一个是用户ID(UserID,简称UID),一个是用户组ID(GroupID,简称GID)。文件就是利用UID与GID判别它的所有者与用户组。

UID: 0-65535(/etc/passwd)

管理员用户:UID为0
普通用户:1-65535 ——
系统用户:CentOS6:1-499;CentOS7:1-999
登录用户:CentOS6:500-65535;CentOS7:1000-65535

GID : 0-65535(/etc/group)

  • 组类别:
    用户的基本组
    用户的附加组

1.5 密码

认证信息:密码 (/etc/shadow /etc/gshadow)
密码策略:
1、使用随机密码
2、最短长度不低于8位
3、应该使用小写字母,大写字母,数字,标点符号四类中的至少三类
4、定期更换

加密算法:有对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)

1.6 用户组管理

安全上下文:进程是以其发起者的身份运行,进程对文件的访问权限,取决于发起此进程的用户的权限

  • groupadd:添加组
    groupadd [options] group
    -g GID :指定组ID,默认情况下上一个组ID+1
    -r :创建一个系统组

  • groupmod: 修改组属性
    groupmod [options] group
    -g: 修改组ID
    -n:修改组名

  • groupdel:删除组
    groupdel [options] group

1.7 用户管理

  • useradd :创建用户
    useradd [options] login
    -u:指定UID
    -g:指定基本组ID,ID需要事先存在
    -G:指定用户的附加组,附加组要事先存在
    -c:添加注释信息
    -d:指定用户的家目录,通过复制/etc/skel目录,并改名
    -s:指定用户的默认shell
    -r:创建系统用户
    useradd -D 显示创建用户的配置
    useradd -D [options] 修改默认配置

  • userdel :用户删除
    userdel 登录名
    -r:删除用户时一并删除家目录

  • usermod:修改用户属性
    -u:修改用户ID
    -g:修改用户的基本组
    -G:修改用户的附加组
    -c:修改注释信息
    -d:修改家目录
    -m:与-d选项一起使用,用于将原来家目录的文件移动到新的家目录
    -a:与-G一起使用,追加用户的附加组
    -l:修改用户名
    -s:修改默认shell
    -L:锁定用户密码
    -U:解锁用户密码

/etc/passwd
root❌0:0:root:/root:/bin/bash
用户名:密码(X占位符):用户标识符:组标识符:注释信息:主目录:登录shell

  • 修改密码 :passwd 用户密码

1、passwd :直接修改自己的密码
2、passwd username:修改指定用户的密码,仅root用户有此权限

-l:锁定用户
-d:清除密码串
-e DATE:过期日期
-i DAYS:非活动期限
-n DAYS:密码最短使用期限
-x DAYS:密码的最长使用期限
-w DAYS:告警期限

–stdin:非交互式创建密码
echo “PASSWORD” | passwd --stdin username

gpasswd:
-a username:向组内添加用户
-d username:从组内删除用户
newgrp:临时切换指定的组为基本组

chage:更改密码过期信息
-d:指定密码最后修改日期
-E:密码到期日期,
-w:密码过期前的警告天数
-m:密码可以更改的最小天数
-M:密码保持有效的最大天数
id:
-u 显示UID
-g 显示GID
-G 显示用户的所有组ID
-n 显示名字

  • /etc/shadow
    root: 6 6 6rsIAoufpdIhAk2df$upp.41jbKeHSvKJq9lv.ZR41Jy9vdxJDAt4Z2UO.7aybF42Ku/kUjg1QmvCSeGFxpstCVRkL5WUelVdC2usDL.:17859:0:99999:7:::
    登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

    最后一次修改时间:表示从某一个时间点开始,到用户组后一次修改口令的时间天数,一般情况下是从1970.1.1开始累加。
    最小时间间隔:表示这个账号的密码在最近一次被更改后需要经过几天才可以再被更改。
    最大时间间隔:为了强制用户更改密码,这个字段可以指定在最后一次更改密码后在多少天数内需要再次的更改密码才行。

二、Linux文件系统权限

2.1 权限对象

文件拥有者 u
群组 g
其他人 o

2.2 权限类型

d rwxr-xr-x. 2 root root 4096 Jul 28 06:43 bin
r:4
w:2
x:1
r–r--r-- 444
rw-rwx-r 674
常见有:755、644

  • rwx权限说明:

*1、对于文件而言
r:可以获取文件的数据
w:可以修改文件数据
x:可以将此文件运行为进程

*2、对于目录而言
r:可以使用ls命令获取文件列表
w:可以修改文件列表,即创建和删除
x:表示我们可以cd此目录,并且可以使用ls -l获取文件的详细属性

1.3 权限判断逻辑

  • 文件:前提条件,用户能够进入到文件所在目录
    删除文件:看用户是否具备对用户的W权限
    *判断用户身份,owner-group-other
    创建文件,和删除文件逻辑相同

  • 目录:前提条件:判断用户是否能够成功进入目录所在目录,
    删除目录:判断用户身份,看用户是否具备对用户的W权限
    创建目录:同上

1.4 权限管理命令

chmod
chmod [OPTION]… MODE[,MODE]… FILE…
chmod [OPTION]… OCTAL-MODE FILE…
chmod [OPTION]… --reference=RFILE FILE…

三类用户:user,group,other
u
g
o
a:所有

chmod [OPTION]… MODE[,MODE]… FILE…
MODE表示法:

  • 赋权表示法,rwx
    u= u=r
    g=
    o=
    a=
    chmod u= ,g= ,o=
    chmod a=
  • 授权表示法
    u+,u-
    g+,g-
    o+,o-
    a+,a-

注意:只有用户自己修改自己的文件
如:chmod 777 filename

从属关系
chown,chgrp
-R:递归修改

chown username:groupname name
chown username: name
chown :groupname name
chgrp groupname name

注意:只有管理员可以修改

1.5 进程安全上下文

进程对文件访问权限模型:
进程的属主与文件的属主是否相同,如果相同,则应用的是属主权限。
否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组的权限
否则,使用other权限

三、基本权限ACL

在普通权限中,用户对文件只有三种身份,就是属主、属组和其他;每种用户身份拥有读、写和执行三种权限。但在实际工作中,这三种身份是不够用的,ACL权限就是为了解决这个问题的。是单独指定用户并单独分配权限,这样就解决了用户身份不足的问题。
1、针对单个用户设置
2、针对用户组设置
3、子文件/目录继承父目录的权限

3.1 查看系统是否支持ACL

[root@nebulalinux03 ~]# tune2fs -l /dev/sda2 | grep “Default mount options:”

3.2 设置ACL

getfacl 文件名 :查看ACL权限
[root@localhost tmp]# getfacl aclfile
# file: aclfile
# owner: root
# group: root
user::rw-
user:test:rw-
group::r–
mask::rw-
other::r–

setfacl 选项 文件名:设置ACL权限
-m:配置acl权限,不能和-x同时使用
-x:删除ACL配置
-b:移除所有的acl配置
-R:递归配置acl
-d:配置默认的acl参数,只对目录有效

[root@localhost tmp]# setfacl -m u:nebula:rw /tmp/aclfile
[root@localhost tmp]# setfacl -m d:u:nebula:rwx mydir/

  • 权限掩码
    umask:默认情况下umask值是022,为了控制默认权限,不要使默认的文件和目录具有全权
    文件权限:(默认是666)
    666-022
    644
    目录:(默认是777)
    777-022
    755

也可以自行修改umask的值,例如:umask 024,则以后建立的文件和目录的默认权限就是642、753了。
若要长期修改umask的值,可以写进/etc/profile中。

四、特殊权限

4.1 SUID:s

作用是让普通用户可以以root(或其他)的用户角色运行只有root(或其他)账号才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等。

当在文件所有者的x权限上出现s时,表示当前这个文件具有SUID权限
1、SUID权限仅仅对二进制程序有效
2、执行者对于改程序有x权限
3、本权限仅仅在执行程序的过程中有效
4、程序的执行者拥有该程序的拥有者的权限
如果当前这个文件属主位没有x权限,显示大写S

设置方法:chmod 4755 file或者chmod u+s file

4.2 SGID:s

作用在二进制程序上时:
执行sgid权限的程序时,此用户将继承此程序的所属组权限
作用于目录上时:
此文件夹下所有用户新建文件都自动继承此目录的用户组.
1、SGID也是对二进制文件有效
2、执行者对该程序具有可执行权限 x权限
3、主要用于目录之上

设置方法:chmod 2755 file或者chmod g+s file

4.3 SBIT:t

1、主要针对于other位
2、作用于目录
3、在该目录下创新建的文件或目录,只有自己和root可以删除
4、对文件无效

设置方法:chmod 1755 file或者chmod o+t file

SUID,SGID,SBIT
字符表示法
s s t (u+s)
数字表示法
4 2 1
chmod 0755
1755

五、文件隐藏属性

5.1 chattr
设置文件的隐藏属性

参数:
+:增加某一个特殊参数,其他原本存在参数不动
-: 删除某一个特殊参数,其他原本存在参数不动
=:仅有后面接的参数

a:append 只能够向文件添加数据,不能删除数据
i:文件不能被删除,改名,链接同时不能写入内容
A:atime 访问时间不可修改

5.2 lsattr
查看文件隐藏属性
[root@localhost tmp]# lsattr aclfile
-------------e- aclfile

六、补充

6.1 创建多级目录

[root@localhost tmp]# mkdir -p /tmp/mylinux/{bin,etc/sysconfig/network-scripts/ifcfg-eth0,dev/sda,usr/local/{lib,lib64}}
[root@localhost tmp]# tree mylinux
mylinux
├── bin
├── dev
│ └── sda
├── etc
│ └── sysconfig
│ └── network-scripts
│ └── ifcfg-eth0
└── usr
└── local
├── lib
└── lib64

11 directories, 0 files

6.2 基本正则表达式元字符

正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,通过一些特殊符号的辅助,可以让用户轻易达到查找、删除、替换某些特定字符串的处理程序。

  • 字符匹配
    :匹配任意单个字符
    []:匹配指定范围内的任意单个字符
    [^]:匹配指定范围外的任意单个字符
    [:digit:]:数字
    [[:digit:]],[[:lower:]],[[:upper:]],

  • 匹配次数
    :匹配前面字符任意次数
    .
    :匹配任意长度的任意字符
    ?:匹配前面的字符0次或者1次
    *:匹配一次或者多次
    {m,n}:
    {0,n}:
    {m,}:

  • 位置锚定
    ^:行首锚定
    KaTeX parse error: Expected group after '^' at position 10: :行尾锚定 ^̲:空行
    1$:
    < \b:词首锚定

  • 分组和引用
    ():
    (xy)(zd)ab\2
    \1


  1. [:space:] ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值