Linux基础知识-用户管理与权限~19-07.27

3.6、用户、组的基本概念

  • 用户和组
  • 系统上的每一个进程都是由一个特定的用户发起
  • 系统上的文件都是由特定的用户拥有
  • 用户对系统上的文件访问时,受到权限控制
  • 与运行中的进程相关的用户确定该进程可访问的文件和目录
  • 用户
  • 用户标识符、密码
  • 用户的分类
  • 管理员
  • 普通用户
  • 组:
    用户组、用户容器
  • 用户和组的标识符:
    UID 0-65535
  • 管理员用户:
    root:0
  • 普通用户:1-65535
    系统用户
    CentOS6:1-499
    CentOS7:1-999
    登录用户
    CentOS6:500-
    CentOS7:1000-
  • 名称解析:
    用户名------UID
    etc/passwd
    GID 0-65535
  • 组类别:
    用户的基本组
    用户的附件组
    /etc/group

认证信息:密码 /etc/shadow /etc/gshadow

  • 密码策略:
  • 使用随机密码
  • 最短长度不低于8位
  • 应该使用小写字母、大写字母、数字、标点符号四类中至少三类
  • 定期更换
  • 加密算法:
  • 对称加密
  • 非对称加密

3.7、用户组管理

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

  • groupadd
    groupadd [option] group
    -g GID 指定组ID,默认情况下,上一个组ID+1
    -r 创建一个系统组
  • groupmod: 修改组属性
    groupmod [option] GROUP
    -g 修改组ID
    -n 修改组名
  • groupdel:删除组
    groupdel [option] GROUP
    groupdel nebula
  • useradd 创建用户
  • useradd [option] LOGIN
    -u 指定UID
    -g 指定基本组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 : x:​0:0:root:/root:bin/bash
    用户名:密码(x占位符) 用户标识符:组标识符:注释信息:主目录:登录shell (七段)
  • passwd 用户密码
    passwd [-k] [-l] [-u[-f]] [-d] [-e] [-n mindays] [-x maxdays]
    [-w warndays] [-i inactivedays] [-S] [–stdin] [username]
  • passwd 直接修改自己密码
  • passwd username 修改指定用户的密码,仅root用户有此权限
    -l:锁定用户
    ​-d:清除密码串
    ​-e DATE:过期日期
    -i DAYS:非活动期限
    -n DAYS 密码最短使用期限
    -x DAYS 密码的最长使用期限
    -w DAYS
    –stdin 非交互式创建密码
    echo “PATHWORD” | passwd --stdin username
  • gpasswd:
    -a username 向组内添加用户
    -d username 从组内删除用户
  • newgrp:临时切换指定的组为基本组
  • change 更改密码过期信息
    -d 指定密码最后修改日期
    -E 密码到期日期
    -w 密码过期前的警告天数
    -m 密码可以更改的最小天数
    -M:密码保持有效的最大天数
  • id:
    -u 显示UID
    -g 显示GID
    -G 显示用户的所有组ID
    -n 显示名字
    /etc/shadow(保存密码信息)
    root: 6 6 6rsIAoufpdIhAk2d

$upp.41jbKeHSvKJq9lv.ZR41Jy9vdxJDAt4Z2UO.7aybF42Ku/kUjg1QmvCSeGFxpstCVRkL5WUelVdC2usDL.:17859:0:99999:7:::

​ 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志位

​ 最后一次修改时间:表示从某一时间点开始,到用户组后一次修改口令的时间天数,一般情况下是从1970.1.1

​ 最小时间间隔:

​ 最大时间间隔:

4、Linux文件系统权限

4.1、权限对象(属主、属组、other)

  • 文件拥有者
  • 群组
  • 其他人

4.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 600 700
  • rw权限说明
  • 对于文件而言
    r 可以获取文件的数据
    w 可以修改文件数据
    x 可以将此文件运行为进程
  • 对于目录而言
    r 可以使用ls命令获取文件列表
    w 可以修改文件列表,即创建和删除
    x 表示我们可以cd此目录,并且可以使用ls -l获取文件的详细属性
  • 权限逻辑判断
  • 文件:前提条件,用户能够进入到文件所在目录
  • 删除文件:看用户是否具备对目录的w权限
    判断用户身份,owner-group-other
  • 创建文件,和删除文件逻辑相同
  • 目录:前提条件:判断用户是否能够成功进入目录所在的目录,是否有x权限。
    1、删除目录:对上级目录是否有w权限
    2、创建目录:根据逻辑判断

4.3、权限管理命令

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

  • 三类用户:
    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

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

五、进程安全上下文

5.1、进程对文件访问权限模型:

  • 进程的属主与文件的属主是否相同,如果相同,则应用的是属主权限
  • 否则,则检查进程的属主是否属于文件的属组,如果是,则应属组的权限
  • 否则,使用other权限

5.2、基本权限ACL

  • 针对单个用户设置
  • 针对用户组设置
  • 子目录/目录继承父目录的权限

5.3、查看系统是否支持ACL

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

5.4、设置ACL

  • setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file …
    -m 配置acl权限,不能和-x同时使用
    -x:删除ACL配置
    -b:移除所有的acl配置
    -R:递归配置acl
    -d:配置默认的acl参数,只对目录有效
  • setfacl -m u:nebula:rw /tmp/aclfile
    getfacl /tmp/aclfile

5.5、权限掩码

  • umask
  • 文件权限:
    666-022
    644
  • 目录:
    777-022
    755

​5.6、特殊权限

  • SUID:(s)当前文件所有者的x权限出现s时,表示当前这个文件具有SUID权限
  • SUID权限仅仅对二进制程序有效
  • 执行者对于该程序有x权
  • 本权限仅仅在程序执行过程中有效
  • 程序的执行者拥有该程序的拥有者的权限
  • 如果当前这个文件属主位没有x权限,显示大写S
  • SGID(s)
  • SGID也是对二进制文件有效
  • 执行者对该程序具有可执行权限 x权限
  • 主要作用于目录之上
  • SBIT(t)
  • 主要针对于other位
  • 作用于目录
  • 在该目录下创建的文件或目录,只有自己和root可以删除
  • 对文件无效
  • SUID、SGID、SBIT
  • 字符表示法
    s s t
  • 数字表示法
    4 2 1
  • chmod 0075
    ----------1755
  • chattr:显示隐藏属性
  • a:append 只能够向文件添加数据,不能删除数据即只能追加
  • i 文件不能被删除,改名,链接同时不能被写入内容
  • lsattr:显示文件的隐藏属性

3、课后练习题

1、新建系统组mariadb, 新建系统用户mariadb, 属于mariadb组,要求其没有家目录,且shell为/sbin/nologin;尝试root切换至用户,查看其命令提示符;
[root@localhost ~]# groupadd -r mariadb
useradd -r -g mariadb -M -s /sbin/nologin mariadb
[root@localhost ~]# su mariadb
This account is currently not available.

2、新建GID为5000的组nebulaedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;
[root@localhost /]# groupadd -g 5000 nebulaedu
[root@localhost /]# tail /etc/group
nebulaedu: x :5000:
[root@localhost /]# useradd gentoo
[root@localhost /]# usermod -d /users/fedora gentoo
[root@localhost /]# passwd gentoo
Changing password for user gentoo
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.

3、新建用户fedora,其家目录为/users/fedora,密码同用户名;
[root@localhost /]# useradd fedora
[root@localhost /]# usermod -d /users/fedora fedora
[root@localhost /]# passwd fedora
Changing password for user fedora
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.

4、新建用户www, 其家目录为/users/www;删除www用户,但保留其家目录;
[root@localhost /]# useradd www
[root@localhost /]# usermod -d /users/www www
[root@localhost /]# userdel www

5、为用户gentoo和fedora新增附加组nebulaedu;
[root@localhost /]# usermod -G nebulaedu gentoo
[root@localhost /]# usermod -G nebulaedu fedora

6、复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为nebulaedu,并让属组对目录本身拥有写权限,研发部开发人员David和Peter属于组A,行政部人员Jack和Mike属于组B;
[root@localhost tmp]# cp -r /var/log ./log
[root@localhost tmp]# chgrp nebulaedu /tmp/log
[root@localhost tmp]# chmod g=w /tmp/log
[root@localhost tmp]# groupadd A
[root@localhost tmp]# groupadd B
[root@localhost tmp]# useradd David
[root@localhost tmp]# useradd Peter
[root@localhost tmp]# useradd Jack
[root@localhost tmp]# useradd Mike
[root@localhost tmp]# usermod -a -G A David
[root@localhost tmp]# usermod -a -G A Peter
[root@localhost tmp]# usermod -a -G B Jack
[root@localhost tmp]# usermod -a -G B Mike

1.建立目录“/project_a”,该目录里面的文件只能由研发部开发人员读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何的访问操作;并要求在此目录下创建的文件研发组内成员可以互相访问
[root@localhost ~]# mkdir /project_a
[root@localhost ~]#chgrp A /project_a
[root@localhost ~]# chmod 070 /project_a

2.建立目录“/project_b”,该目录里面的文件只能由行政部人员读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何的访问操作;要求在此目录下创建的文件行政部人员只能删除自己的文件,不得删除其他人员文件
[root@localhost tmp]# mkdir /project_b
[root@localhost tmp]#chgrp B /project_b
[root@localhost tmp]# chmod 070 /project_b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值