Linux中的用户/用户组/权限

1、用户

1.1概念

Linux 是一个多用户、多任务的服务器操作系统。Linux 用户是根据角色定义的,具体分

为三种角色:

超级用户:拥有对系统的最高管理权限,默认是 root 用户。

普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限。

虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是

方便系统管理,满足相应的系统进程对文件属主的要求。

主要组(主组):每个用户有且只有一个主要组,创建用户时默认创建。

附属组(补充组):用户可以是零个或多个附属组成员。一般用于帮助确保用户具有对 系统中文件及其他资源的访问权限。

1.2用户配置文件 /etc/passwd

cat /etc/passwd
结果 
user:x:1006:1008::/home/user:/bin/bash
用户名:口令占位符:UID:GID:注释性描述:用户主目录:命令解释器

在passwd配置文件中用冒号:来分隔字段,字段含义如下

  • 用户名:用户登录系统时使用的用户名。
  • 口令占位符:存放加密的口令,被/etc/shadow 文件保护。
  • 用户标识号(UID):系统内部用它来标识用户,每个用户的 UID 都是唯一的。
  • 用户组标识号(GID):系统内部用它来标识用户所属的组,这里的 GID 是主组 GID。
  • 注释性描述:为了方便管理和记忆该用户而添加的信息。 默认情况为空
  • 用户主目录:也称家目录,用户登录系统后所进入的目录。
  • 命令解释器:(登录类型)指示该用户使用的 Shell,CentOS Linux 7 默认的是 bin/bash。如果指定 Shell
    为/sbin/nologin,则代表用户无法登录系统。

1.3用户密码配置文件/etc/shadow

cat /etc/shadow
user:!!:18415:0:99999:7::::
用户名:加密的密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

密码配置文件字段含义

用户名: 用户账户名。
密码: 用户的加密密码。
最后一次修改的时间: 从 1970 年 1 月 1 日起,到用户最后一次更改密码的天数。
最小时间间隔: 从 1970 年 1 月 1 日起,到用户可以更改密码的天数,(0 表示随时可以变更)。
最大时间间隔: 从 1970 年 1 月 1 日起,到必须更改密码的天数,否则密码将过期,(99999 表示永远不 过期)。
警告时间: 在密码过期之前多少天提醒用户更新,默认值是 7 天。
不活动时间: 在用户密码过期之后到禁用账户的天数。
失效时间: 从 1970 年 1 月 1 日起,到账户被禁用的天数。
标志: 保留位。

1.4 用户管理相关命令

1.4.0 查看系统用户–cat /etc/passwd

1.4.1 查看系统用户密码–cat /etc/shadow

1.4.2 设置用户密码 --passwd 用户名

1.4.3 创建用户–useradd [选项] 用户名

选项 详解
-d 指定用户主目录 (一般不用)
-g 指定用户组
-m 若主目录不存在,则创建 (一般不用)
-M 不创建主目录 (一般不用)
-s 常用,指定登录时使用的 Shell 类型,默认为/bin/bash,如果为/bin/nologin 就是虚拟用户
-c 常用,设置对该账号的注释说明文字
-r 创建系统账号(用户 ID 小于 1000,从 999 起按照递减的顺序创建),默认不创建对应的主目录
-u 手工指定新用户的 ID 值,该值必须唯一,且大于 999。
【例1】创建用户 zhangsan 且不能登录系统
	useradd -s /bin/nologin
【例2】创建用户tom并设置真实姓名为tom-sing,家庭电话为13111223344 ,公司地址为:TF5J,公司电话为028-123456789
	useradd -c "tom-sing" 13111223344 tf5jie 028-123456789" tom

1.4.4 管理用户登录密码–passwd [选项] 用户名

选项 详解
-l 锁定密码
-u 解锁用户密码状态
-d 删除用户密码
-s 查询用户密码状态

1.4.5 修改用户属性–usermod 选项 用户名

选项 详解
-l 修改用户名
-c 修改用户名描述信息
-d 修改主目录
-L 锁定账号,临时禁止用户登录
-U 对账号解锁
-g 修改用户所属组
-s 修改用户登录的shell类型
-u 修改用户的ID号
-e 修改用户的有效期
-f 修改用户密码在多少天后过期
【举例 1】修改用户 tom 的名字为 jack 
	usermod -l jack tom 
【举例 2】修改用户 jack 的注释名为 jack-sing 
	usermod -c jack-sing jack 
【举例 3】修改用户登录的类型为不可以登录
 	usermod -s /bin/nologin jack 

1.4.6 删除用户–userdel [-r] 用户名

-r 表示删除用户时同时删除用户的目录文件

1.4.7 修改用户密码有效期限 --chage [选项] 用户名

选项 解释 详细解释
-d –lastday 最近日期 将最近一次密码设置时间设为“最近日期”
-E –expiredate 过期日期 将帐户过期时间设为“过期日期”
-h –help 显示此帮助信息并推出
-I –inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
-l –list 显示帐户年龄信息
-m –mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M –maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
-R –root CHROOT_DIR chroot 到的目录
-W –warndays 警告天数 将过期警告天数设为“警告天数”
【举例】设置 jack 用户的密码最大有效期为 30 天,提前 9 天警告,失效时间 40 天。
chage -M 30 -W 9 -E 40

1.4.8 修改用户注释信息–chfn [选项][用户名]

选项 详解
-f 设置真实姓名
-h 设置家中电话号码
-o 设置办公室地址
-p 设置办公室电话号码

1.4.9 查看用户信息–id 用户名

1.4.10 查看当前登录用户–who am i

1.4.11 查看当前用户 --w

1.4.12 查看用户登录历史–last

1.4.13 修改用户shell类型–chsh [s]用户名

1.4.14 切换用户–su 用户名

2、用户组

2.1 概念

主要组(主组):每个用户有且只有一个主要组,创建用户时默认创建。

附属组(补充组):用户可以是零个或多个附属组成员。一般用于帮助确保用户具有对 系统中文件及其他资源的访问权限。

2.2 用户组配置文件–/etc/group

cat /etc/group
group:x:1011:user1,user2
组名:组口令:组标识号:组成员

配置文件字段含义

组名: 组的名称。
组口令: 用户组的口令,用 x 表示口令是被/etc/gshadow 文件保护的。
组标识号(GID): 系统内部用它来标识用户组,每个用户组的 GID 都是唯一的。
组成员: 该组的成员。

2.3 用户组密码配置文件–etc/gshadow

组密码配置文件含义

组名: 组的名称。
组口令: 用户组的口令,保存已加密的口令。
组的管理员帐号: 组的管理员帐号,管理员有权对该组添加、删除帐号。
组成员: 该组的成员,多个用户用“,”分开。

2.4 用户组管理相关命令

2.4.1 创建用户组–groupadd 组名

2.4.2 修改组属性–groupmod 选项 组名

选项 详解
-n 修改组名
-g 修改组标识号GID

2.4.3 添加/删除组成员,管理员–pgasswd 选项 用户名 组名

-a 添加用户到组
-d 将用户从组中删除
-A 设置用户为组管理员
将stu1加入group1组并添加为group1的组长
	gpasswd -a stu1 group1|gpasswd -A stu1 group1

2.4.4 输出指定用户所在的组命令–groups 用户名

2.4.5 临时切换成组成员–newgrp 组名

例:并把stu1设置为grp1的临时组员
	su stu1
	newgrp grp1

3、用户权限更改–chmod 选项 权限值 文件夹

r-读 w-写 x-执行

rwx r-x r-x .
所有者权限 属组权限 其他用户权限 特殊权限(.)

r–读
w–写
x–执行
-没有权限

3.1字母修改方式-- r w x

选项 详解
权限值 r w x
a 所有用户
u 用户所有者
g 属组
o 其他用户
1-减掉Lying文件夹下所有用户的执行权限
	chmod a -x Lying
2-把所有用户改成rwx权限
	chmod a=rwx Lying
3-把所有者改成rx权限
	chmod u=rx Lying
4-将用户所有者权限改为读写,组内权限改为只读,其他用户没有权限  
	chmod u=rw-,g=r--,o=---

3.2 数字修改方式 4 2 1 0

r对应4
w对应2
x对应1
-对应0

1-把所有者用户权限改成 rwx 
	chmod 700 Lying
2-把Lying文件夹的所有者改成rwx 所属组改成r-w 其他用户改成r-- 
	chmod 764 Lying

4、文件属组修改–chown

命令用法 详解
chown :属组 文件名 修改文件属组
chown 用户 文件名 修改文件所有者
chown 用户名:属组 文件名 修改文件所有者和属组

5、文件特殊权限 .

5.1 ACL访问控制列表

5.1.1设置ACL规则:

setfacl -m [-u:]用户名:用户权限:文件名

【例】针对stu3用户的files文件给予读和执行的权限

操作前:drwxr- x--- . 2 stu2 d1z 6 61 15:32 files
	setfacl -m u:stu3:r-x files
操作后:drwxr- x--- + 2 stu2 d1z 6 61 15:32 files

5.1.2查看ACL规则 --getfacl

. => + 点.变成+说明设置了ACL

5.1.3 删除一条规则–setfacl -x[u:] 用户名 文件名

5.1.4 删除所有ACL规则–setfacl -b 文件名

5.2 SGID:以所属组的身份去执行–chmod g+s 文件名

表现在:在属组的x位置有s

  • 有执行权限属组的x处就是小写s
  • 没有执行权限属组的x处就是大写S
执行前
drwxrwx---. 2 stu2 d1z 22 61 15:55 files

chmod  g+s  files

执行后
drwxrws---. 2 stu2 d1z 22 61 15:55 files

5.3 SBIT:强制粘制位,只能删除自己的文件不能删除其他用户的文件–chmod o+t 文件名

表现在:在其他用户的x位置有t

  • 有执行权限属组的x处就是小写t
  • 没有执行权限属组的x处就是大写T
执行前:drwxrws---. 2 stu2 dlz 38 61 16:07 files
	chmod o+t files/
执行后:drwxrws--T. 2 stu2 d1z 38 61 16:07 files

5.4 SUID:以文件所有者的身份执行文件,只针对可执行文件–chmod u+s 文件名

表现在:在所有用户的x位置有t

  • 有执行权限所有用户的x处就是小写t
  • 没有执行权限所有用户的x处就是大写T

你可能感兴趣的:(Linux)