用户组group,就是具有相同特征的用户的集合体。
【官方文档】
Users and groups:
. Every process (running program) on the system runs as a particular user.
. Every file is owned by a particular user.
. Access to files and directories are restricted by user.
. The user associated with a running process determines the files and directories
accessible to that process.
用户和组:
. 系统上的每个进程(运行程序)都作为特定用户运行。
. 每个文件都由特定用户拥有。
. 用户对文件和目录的访问受到限制。
. 与运行中的进程相关联的用户确定该进程可访问的文件和目录。
使用者标识符:UID和GID
UID 用户标识符
GID 组标识符
组类别1
管理员组 0
普通用户组 1-65535
系统用户组 1-499(CentOS6), 1-999(CentOS7)
登录用户组 500-60000(CentOS6), 1000-60000(CentOS7)
信息保存位置 /etc/group
根据名称解析库/etc/group名称解析:Groupname<-------->GID
组类别2
用户的基本组
用户的附加组
组类别3
私有组 组名为用户名,且只包含一个用户
公共组 组内包含了一个用户
groupadd 添加组
-g GID 指定GID 默认是上一个组的GID+1
-r 创建系统组
groupmod 修改组属性
-n 修改组名
-g GID 修改GID
groupdel 删除组
不能删除有用户的用户组
useradd 创建用户
-u 指定UID
-g GID/GROUP 指定基本组ID 组需已存在
-r 创建系统用户
-G 指明用户所属的附加组 多个组之间用逗号分隔
-d 指定家目录 家目录之前的目录需已存在
当useradd创建一个新用户时,系统会将这/etc/skel个目录下的所有隐藏文件复制到新用户的home下;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件。
-s 指定用户的默认shell shell列表存储在/etc/shells
-c 指明注释信息
-M --no-create-home,不要自动建立用户的家目录
创建用户时的诸多默认设定配置文件为/etc/login.defs
添加一个用户,变化的文件有
/etc/passwd:用户信息
/etc/shadow:用户密码信息
/etc/group:组用户信息
/etc/gshadow:组用户的密码信息
/home/username
usermod 修改用户属性(只针对已存在的用户)
-u UID 修改UID
-g GID 修改用户所属的基本组
-G --groups GROUP1[,GROUP2,…[,GROUPN]]],修改用户所属的附加组 原来的附加组会被覆盖
-a --append,为用户追加新的附加组 与-G一同使用
-s --shellSHELL,修改用户的默认shell
-l --loginNEW_LOGIN,修改用户名
-c --commentCOMMENT,修改注释信息
-d 修改用户的家目录 用户原有的文件不会被转移至新位置
-m --move-home,将原来的家目录移动为新的家目录 只能与-d选项一同使用
-L --lock,锁定用户密码 即在用户原来的密码字符串之前添加一个"!"
-U --unlock,解锁用户的密码
userdel 删除用户
-r 删除用户并删除其家目录
passwd 修改用户密码
请点击查看passwd命令详解
gpasswd 管理/etc/group和/etc/gshadow
-a USERNAME 向组中添加用户
-d USERNAME 从组中移除用户
将apps从wheel组移除:
newgrp 临时切换指定的组为基本组
- 会模拟用户重新登录以实现重新初始化其工作环境
chage 更改用户密码过期信息
-d 指定密码最后修改日期
-E 密码到期的日期 过了这天,此账号不可用,0表示马上过期,-1表示永不过期
-W 密码过期前,提前收到警告信息的天数
-m 密码可以更改的最小天数 为零代表任何时候都可以更改密码
-M 密码保持有效的最大天数
id 显示用户的有效ID
-u 仅显示有效的UID
-g 仅显示用户的基本组ID
-G 仅显示用户所属的所有组的ID
-n 显示名字而非ID
/etc/passwd
用户名(login) 代表用户账号 由大小写字母和/或数字组成,长度不超过8个字符
口令(passwd) 加密后的用户口令字 加密后的用户口令字存放到/etc/shadow文件中
用户标识号(UID) 系统内部用来标识用户
组标识号(GID) 用户所属的用户组对应/etc/group文件中的一条记录
注释性描述 字段记录着用户的一些个人情况
家目录 用户的起始工作目录
登录Shell 用户与Linux系统之间的接口,负责将用户的操作传给内核 系统使用bash为默认的登录Shell
/etc/shadow
登录名 必须与/etc/passwd中的登录名相一致
加密口令 经过编码的密码(摘要)
最后一次修改时间 最近修改密码的日期 以1970.01.01开始累加的天数
查看最后一次修改密码是哪一天
最小时间间隔 密码不可被修改的天数(与第三字段相比)
最大时间间隔 密码需要重新修改的天数(与第三字段相比) 若数值为9999(计算为273年),表示密码的修改不强制;未重新设置密码,这个密码将会变为过期特性
警告时间 密码需要修改期限前的警告天数(与第五字段相比) 密码到期的n天之内,系统会警告该用户
不活动时间 密码过期后的账号宽限时间(密码失效日)(与第五字段相比) 用户没有登录活动但账号仍能保持有效的最大天数
失效时间 账号失效日期 若指定,期满后,该账号就不再是一个合法的账号,不能再用来登录
保留
1.密码有效日期为【更新日期(第三字段)】+【重新修改日期(第五字段)】
2.密码过期特性:过了密码有效日期,该账号还是可以用来执行其他的任务,包括登录系统获取bash,但登录系统时,系统会强制要求重新设置密码,这就是密码过期特性。
小结: 如果创建一个用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的Primary Group基本组
练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001)
练习2:创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh
练习3:修改gentoo用户的家目录为/var/tmp/gentoo,要求其原有文件仍能被用户访问
练习4:为gentoo新增附加组netadmin
方法一 通过su命令切换为更高权限的用户
带-表示将使用目标用户的shell登录环境
密码验证
root→其他用户,不验证密码
普通用户→其他用户,验证目标用户的密码
su的优缺点
优点:su 命令为管理带来方便
缺点:通过su切换到root后,有不安全因素
默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root)的登录密码,这样带来了安全风险。
PAM安全认证
PAM(Pluggable Authentication Modules),是 Linux 系统可插拔认证模块,是一种高效而且灵活便利的用户级别的认证方式,它也是当前 Linux 服务器普遍使用的认证方式 。
PAM提供了对所有服务进行认证的中央机制,适用于login,远程登录ftp、telnet、rlogin、fsh,su等应用程序中。系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略。
加强su命令的使用控制
借助于 pam_wheel认证模块,只允许个别用户使用 su 命令进行切换
实现过程
步骤一 开启wheel用户安全模块
步骤二 将用户username加入到wheel组
方法二 使用sudo以root身份运行命令
概念
Sudoers allows particular users to run various commands as the root user, without needing the root password.
sudo是linux下常用的允许普通用户使用超级用户权限的工具,让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。
优点
减少了root用户的登陆和管理时间,提高了安全性 不需要知道root密码
特性
1.sudo能够限制用户只在某台主机上运行某些命令
2.sudo提供了丰富的日志,详细地记录了每个用户干了什么,它能够将日志传到中心主机或者日志服务器
3.sudo使用时间戳文件–日志来执行类似的“检票”系统:当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)
4.sudo的配置文件是/etc/sudoers,属性必须为0440,它允许系统管理员集中的管理用户的使用权限和使用的主机
sudo配置文件/etc/sudoers详解
别名规则
定义格式
授权规则
或
如果不需要密码直接运行命令,加NOPASSWD:参数
授权规则举例
语法参数
command
command:要以系统管理者身份(或以 -u 更改为其他人)执行的指令
-l 列出当前用户可以执行的命令 只有在sudoers里的用户才能使用该选项
-u username/#uid 以指定用户的身份执行命令 不加此参数,以 root 的身份执行指令
-k 清除存活期时间,下次再使用sudo时要再输入密码
-b 在后台执行知道的命令
配置sudo授权
编辑配置文件命令: 或
visudo调用vi去编辑,但是保存时会进行语法检查,有错会有提示
记录格式
实例
实例一 以root身份授权普通用户
实例二 使用户use1能够有权限挂载/dev/sr0到/media目录下
实例三 使user1和user2用户能够有权限修改IP,使用别名实现,且不需要输入密码
实例四 使user2用户能够有权限使用/user/sbin/下的所有命令,除了/use/sbin/userdel
实例五 使用户user2能够有权限查看var/log/message后的所有文件
这样有一个问题:后面跟一个其他文件也能查看
解决方法
在使用*号时,要特别注意安全问题
用户管理命令练习
增加两个用户并设置好密码(写2行):John、Lucy
查看各用户的基本信息(相关文件在/etc中)
查看各用户的密码信息(相关文件在/etc中)
查找用户summer并显示其相关信息
将当前用户切换到John(进入其主目录)
显示当前登录用户名
将John的登录密码改为:mima1234
将John的帐号有效期设为2019年12月31号 或
将John加入到summer组中
将用户名John改为Jack
删除用户Lucy
组管理命令练习
增加以一个student组
查看所有组的基本信息(相关文件在etc中)
查看summer组中包含哪些用户名
将student组名改为teacher
删除teacher组
1.权限对象
2.权限类型
3.r、w、x权限说明
权限对文件的意义
权限对目录的意义
4.权限管理命令
chmod 权限管理
基本权限 UGO模式
赋权表示法 直接操作一类用户的所有权限位 rwx
授权表示法 直接操作一类用户的一个权限位 r/w/x
数字操作法
chown 修改文件的属主 仅管理员可用
-R 递归修改
chgrp 修改文件的属组 仅管理员可用
5.进程安全上下文
进程对文件的访问权限应用模型
准备测试文件
情况一 判断进程的属主与文件的属主是否相同,如果相同,则应用属主权限
情况二 检查进程的属主是否属于文件的属组,如果是,则应用属组权限
Linux的进程安全上下文法则
启动进程的权限问题:(先不讨论特殊权限SBIT)
能否启动一个可执行程序文件作为一个进程PID,取决于此用户是否对这个文件有可执行权限x
例:能否将/bin/cat执行为一个进程,取决于用户是否对此文件有x权限
/bin/cat的owner,group,other都具备x权限,所以都可以将此文件启动为一个进程
6.基本权限 ACL (CentOS 6.8)
ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制,是对UNIX文件权限管理的补充。
UGO办不到,但ACL可以做到的有:
- 针对用户来设置权限
- 针对用户组来设置权限
- 子文件/目录继承父目录的权限
检查是否支持ACL
ACL需要Linux内核和文件系统的配合才能工作
设置ACL
-m 配置后面的ACL参数给文件/目录使用 不可与-x合用
-x 删除后续的ACL参数 不可与-m合用
-b 移除所有的ACL配置参数
-k 移除默认的ACL参数
-R 递归配置ACL
-d 配置默认ACL参数 只对目录有效,在该目录新建的数据会引用此默认值
查看当前ACL权限
范例一 针对用户设置ACL
范例二 针对用户组设置ACL
default 权限信息只能在目录上设置,会被目录中创建的文件和目录继承
范例三 更改ACL权限
-m 选项用来更改文件和目录的ACL权限
当一个用户或组的ACL权限不存在时,-m选项执行的是添加
当一个用户或组的ACL权限已经存在时,-m选项执行的是更新操作
范例四 删除ACL权限
范例五 备份和恢复ACL权限
7.权限掩码 umask
新创建的目录和文件本身有默认权限,由权限掩码umask所确定,即umask用来指定“目前用户在新建文件或者目录时候的权限默认值”。
umask与chmod相反,它代表默认不要的权限
查看当前umask
方式一 ,以数值类型的方式显示权限
方式二 ,以符号类型的方式显示权限
umask与权限
文件
文件权限 = 666-umask
文件默认不能拥有执行权限
如果减得的结果中有执行权限,则需要将其加1
umask=023
666-023=644
777-023=754
目录
目录权限 = 777-umask
设置umask
此类设定仅对当前shell进程有效
8.文件特殊权限 SUID,SGID,SBIT
SUID(Set UID)
让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源
SUID的作用
1.SUID权限仅对二进制程序(binary program)有效
2.执行者对于该程序需要具有x的可执行权限
3.本权限仅在执行该程序的过程中有效(run-time)
4.执行者将具有该程序拥有者(owner)的权限
s标志出现在文件所有者的x权限上
如果属主原本有执行权限,显示为小写s;否则,显示为大写S
普通用户对/etc/shadow没有写入权限,还能修改自己的密码,因为这个SUID功能
passwd命令执行过程
这个SUID只能运行在二进制的程序上(系统中的一些命令),不能用在脚本上(script),因为脚本还是把很多的程序集合到一起来执行,而不是脚本自身在执行。同样,这个SUID也不能放到目录上,放上也是无效的。
SGID(Set GID)
获得该程序所属用户组的权限
注意事项:
1.SGID对二进制程序有用
2.程序执行者对于该程序来说,需具备x的权限
3.SGID主要用在目录上
s标志出现在文件所属用户组的x权限上
如果属主原本有执行权限,显示为小写s;否则,显示为大写S
如果用户在此目录下具有w权限的话,若使用者在此目录下建立新文件,则新文件的群组与此目录的群组相同
SBIT(Sticky Bit)
针对others设置,目前只对目录有效(SBIT对文件不起作用)
对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除(用于保护文件)
t标志出现在文件其他用户的x权限上
如果其它用户原本有执行权限,显示为小写t; 否则,显示为大写T
任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目
录建立者与 root能够删除自己的目录或文件
SUID/SGID/SBIT权限设置
一种是以字符,一种是以数字
SUID的作用及设置
nebula修改不了自己的密码,因为没有权限把密码写入到/etc/shadow,想让普通用户能修改/etc/shadow需要用到SUID
SGID的作用及设置
把这个目录加上SGID权限后,再创建文件与目录
file2和dir2的属组变成了root,即它们上层目录testdir的所属用户组 这个可以应用在一个项目的共同开发上
SBIT的作用及设置
虽然tom对nebula_file只有只读权限,但nebula _file所在的目录对其他人是全部的权限,所以,tom可以删除不属于他的文件
权限不够,只能由这个文件的创建者或root用户才能删除
9.隐藏属性 chattr,lsattr
文件的隐藏属性只对ext2/ext3/ext4文件系统完整有效 CentOS 7.6 xfs
sync:将buffer和cache的内容同步到磁盘
chattr 修改文件隐藏属性
mode格式
准备测试文件
a append,设定该参数后,只能向文件中添加数据,而不能删除 多用于服务器日志文件安全,只有root才能设定这个属性
i 文件不能被删除、改名、设定硬链接关系,同时不能写入或新增内容(即使是root用户) 只有root才能设定这个属性
lsattr 列出文件的隐藏属性
-R 递归显示目录下所有子目录和文件的属性
-V 显示lsattr程序的版本信息
-a 显示所有文件的属性信息,包括以.开头的文件
-d 显示目录的属性,而不是目录下的文件的属性
-v 显示文件的档案号码
/etc/shadow 文件没有任何权限,只有root可操作该文件
用普通用户zhao启动passwd进程,进程所有者zhao,passwd进程执行不了/etc/shadow
结论:passwd命令不管以什么用户运行,其进程的所有者应该都是root
练习一 新建系统组mariadb,新建系统用户mariadb, 属于mariadb组,要求其没有家目录,且shell为/sbin/nologin,尝试root切换至用户,查看其命令提示符
无法将目录更改为/home/mariadb:没有此类文件或目录;此帐户当前不可用
练习二 新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名
练习三 新建用户fedora,其家目录为/users/fedora,密码同用户名
练习四 新建用户www, 其家目录为/users/www,删除www用户,但保留其家目录
练习五 为用户gentoo和fedora新增附加组mageedu
以上就是本篇文章【Linux基础篇学习——Linux用户管理、用户组管理】的全部内容了,欢迎阅览 ! 文章地址:http://www.tpjde.com/news/60.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 推平第移动站 http://mip.tpjde.com/ , 查看更多