Linux的账号和权限管理

目录

一、用户账号和组账号的概述

1.用户账号

2.组账号

3.UID和GID

二、用户账号管理

1.用户账号文件

(1)passed文件中配置格式

(2)shadow文件中配置格式

2.添加、修改、删除用户账号

(1)useradd --添加用户账号

注意事项

(2)passwd --为用户账号设置密码

注意事项

(3)usermod --修改用户账号属性

注意事项

(4)userdel --删除用户账号

注意事项

3.用户账号的初始配置文件

三、组账号管理

1.组帐号文件

2.添加、管理、删除组账号

(1)groupadd --添加组账号

语法格式

(2)gpasswd --添加、设置、删除组成员

基本语法

注意:

(3)groupdel --删除组账号

基本语法

注意:

四、查询账号信息

1.groups --查询用户账号所属的组

2.id --查询用户账号的身份标识

基本语法

注意事项

3.w --查询当前主机的用户 登录情况

语法格式

五、管理目录和文件的属性

1.查看目录和文件的属性

一、属性概述

字段说明:

2.设置目录和文件的权限

1. 权限字符

2. 权限组合示例

默认权限

3.设置目录和文件的归属


一、用户账号和组账号的概述

1.用户账号

root 用户 UID=0,系统管理员,拥有最高权限
系统用户 UID 1-499,用于维持系统或服务运行(如 bin、daemon、ftp)
普通用户 UID 500-60000,由管理员创建,用于日常操作

2.组账号

基本组 用户默认所属组(与用户名同名)
附加组 用户额外加入的组,权限继承自组

3.UID和GID

UID(用户标识号) 唯一标识用户,root 为 0,系统用户 1-499,普通用户 500+
GID(组标识号) 唯一标识组,root 组为 0,系统组 1-499,普通组 500+

二、用户账号管理

1.用户账号文件

与用户账号相关的配置文件有两个:
/etc/passwd 用于保存用户名称、宿主目录、登录Shell等基本信息
/etc/shadow 用于保存用户的密码、账号有效期等信息

/etc/passwd:用于保存用户名称、宿主目录、登录Shell等基本信息。
/etc/shadow:用于保存用户的密码、账号有效期等信息。
这两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用“:”(冒号)进行分隔。

(1)passed文件中配置格式

unbound:x:996:993:Unbound DNS resolver:/etc/unbound:/sbin/nologin
1 2 3 4 5 6 7
unbound x 996 993 Unbound DNS resolver /etc/unbound /sbin/nologin

解释:

字段 含义
1

用户账号的名称,也是登录系统时使用的识别名称.

2

用户的密码原来直接存储在第二字段,但是为了安全,最后专门有了/etc/shadow文件,现在默认用”x“替代.

3

用户的uid,一般情况下root为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。

4

用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,在我们登录的时候,输入用户名和密码,其实会先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录。

5

用户全名,可填写与用户相关的说明信息.

6

宿主目录,即该用户登录后所在的默认工作目录.

7

用户使用的shell,如果换成/sbin/nologin/就是默认没有登录环境的。

(2)shadow文件中配置格式

shutdown:*:20081:0:99999:7:::
1 2 3 4 5 6 7 8 9
shutdown

*

20081

0 99999 7

解释:

字段 含义
1

用户账号名称

2

使用 SHA-512(哈希算法中的一种)加密的密码字串信息,

(当为“*”或“!”时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统)

3

密码已经使用的日期(从1970-01-01到最近一次修改密码时间隔的天数)

4

密码的最短有效天数,自本次修改密码后,必须至少经过多少天才能再次修改密码(默认值是0,表示不进行限制)

5

密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码(默认值是99999,表示不再进行限制)

6

提前多少天警告用户密码将过期(默认值是7)

7

在密码过期之后多少天内禁用此账户

8

账号失效时间,此字段制定了用户作废的天数(时间从1970-01-01起算,默认值为空,表示账号永久可用)

9

保留字段,目前无含义

2.添加、修改、删除用户账号

(1)useradd --添加用户账号

命令语法和选项
useradd 命令的基本语法如下:
useradd [选项] 用户名
其中,可以使用的选项包括:
-c

添加用户账户的注释信息。

-d

指定用户的登录目录。

-e

设置账户的到期时间。

-f

设置密码过期后账户被禁用前的天数。

-g

指定用户的初始登录组

-G

指定用户的附加组。

-m

自动创建用户的登录目录。

-M

不创建用户的登录目录。

-n

不为用户创建与用户名同名的组。

-r

创建系统账户。

-s

创建系统账户。

-u

指定用户的UID。

注意事项
(1) 使用 useradd 命令时,如果不指定任何参数,将创建一个没有家目录、没有密码且没有默认Shell的用户。
(2) 此外,创建的用户信息将保存在 /etc/passwd 文件中。在创建用户后,通常需要使用 passwd 命令为用户设置密码。
(3 )删除用户时,可以使用 userdel 命令,并通过 -r 选项来删除用户的家目录和邮件目录。
(4) 在批量添加用户时,可以编写脚本来读取用户名列表文件,并使用 useradd 命令结合循环来创建多个用户。同时,可以使用 chpasswd 命令从文件中读取用户名和密码对,并批量设置密码

(2)passwd --为用户账号设置密码

passwd命令的基本语法如下:
passwd [选项] 用户名
-d

清空指定用户的密码,仅使用用户名即可登录系统。

-l

锁定用户账户。

-S

查看用户账户的状态(是否被锁定)。

-u

解锁用户账户。

注意事项
密码复杂度 passwd命令会拒绝任何不够复杂的密码,确保密码的安全性。
权限要求 修改其他用户的密码通常需要管理员权限,可以使用sudo命令。

(3)usermod --修改用户账号属性

usermod命令的基本用法
usermod命令的基本语法格式如下:
usermod [选项] 用户名
其中,选项包括:

-u 或 --uid

修改用户的UID。

-g 或 --gid

修改用户的主要组。

-G 或 --groups

修改用户的附加组。

-d 或 --home

修改用户的家目录。

-m

与 -d 选项一起使用时,移动用户的家目录内容到新位置。

-s 或 --shell

修改用户的登录Shell。

-c 或 --comment

修改用户的登录Shell。

-l 或 --login

修改用户的登录Shell。

-L 或 --lock

锁定用户账户,使其无法使用密码登录。

-U 或 --unlock

解锁用户账户,允许使用密码登录。

-U 或 --unlock

解锁用户账户,允许使用密码登录。

-U 或 --unlock

解锁用户账户,允许使用密码登录。

注意事项
在使用usermod命令时,需要注意以下几点:
只有root用户或具有sudo权限的用户才能执行usermod命令。
usermod命令不允许修改当前在线用户的账户名称。当使用usermod命令更改UID时,必须确保该用户没有在系统上运行任何程序。
修改用户主目录时,如果需要移动现有内容,请确保使用  -m  选项。

(4)userdel --删除用户账号

命令语法和选项
userdel 命令的基本语法如下:
userdel [options] username
其中 username 是要删除的用户账户的名称, options 是用来自定义删除行为的命令选项。常用的选项包括:
-f 强制删除用户账户,即使用户当前已登录。
-r 删除用户的主目录和邮件存储
-h 显示帮助信息并退出。
-R 在指定的CHROOT_DIR中应用更改。
-Z 删除用户登录的SELinux用户映射。
注意事项
在使用 userdel 命令删除用户账户时,需要具有root权限或者sudo权限。

3.用户账号的初始配置文件

添加一个新的用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模板目录/etc/skel,基本上都是隐藏文件,较常用的初始配置文件包括:
.bash_logout 文件中的命令将在用户每次退出登录时执行。
.bash_profile 文件中的命令将在该用户每次登录时被执行。
.bashrc 文件中的命令会在每次加载“/bin/Bash”程序(当然也包括登录系统)时执行。

三、组账号管理

1.组帐号文件

与组账号相关的配置文件也有两个,分别是:
/etc/group 用于保存组账号名称、GID号、组成员等基本信息。
/etc/gshadow 用于保存组账号的加密密码字串等信息。

2.添加、管理、删除组账号

(1)groupadd --添加组账号

语法格式
groupadd [选项] 组名

选项 说明
-g GID

指定组的 GID(默认从 500 开始自动分配,系统组使用 1-499)。

-r

创建系统组(GID 范围 1-499,默认不指定时普通组 GID 从 500 开始)。

-f

若组已存在,不报错(静默处理)。

-o

允许 GID 重复(与-g配合使用,覆盖唯一性检查)。

-p 密码

设置组密码(不推荐,实际多用gpasswd管理组成员)

注意事项

1.权限要求:需 root 用户或有 sudo 权限才能执行。

2.GID 冲突:若未指定 -o,重复的 GID 会导致创建失败。

3.系统组 vs 普通组:

(1)系统组用于系统服务(如bin,daemon),GID 1-499

(2)普通组用于用户管理,GID 500+

4.组密码:通常不使用,组权限通过成员管理实现。

(2)gpasswd --添加、设置、删除组成员

基本语法

gpasswd [选项] 组名
-a 添加用户到组。
-d 从组中删除用户。
-A 指定组管理员。
-M 指定组成员,与-A选项类似。
-r 删除组密码。
-R 限制用户登录组,只有组中的成员才可以使用newgrp命令加入该组。
注意

添加用户到某个组时,也可以使用usermod -G group_name user_name命令,但这会清除之前添加的组。为了同时保留用户原有的组成员身份,建议使用gpasswd命令。

(3)groupdel --删除组账号

基本语法

groupdel [选项] 组名
-h 显示帮助信息
-f 强制删除用户组,即使有用户存在
注意:

(1)groupdel是用来删除群组。如果待删除的群组中仍包含用户,需先删除用户后,才能删除群组,当然使用-f参数也可以强制删除。

(2)groupdel命令删除用户组时,会修改/etc/group和/etc/gshadow文件。

四、查询账号信息

1.groups --查询用户账号所属的组

显示指定用户所属的用户组,包括基本组和附加组。

若未指定用户,则默认显示当前登录用户的组信息

2.id --查询用户账号的身份标识

基本语法

id [选项] [用户名]
-无选项
不使用任何选项时,
id  命令会显示用户的 UID(用户标识号)、GID(组标识号)以及所属的所有组。
-u 该选项用于只显示用户的 UID。
-g -g 选项用于只显示用户的基本组 GID
-G 显示用户所属的所有组的 GID,包括基本组和附加组。
-n 通常与 -u-g 或 -G 结合使用,用于显示名称而不是 ID。
-z 以 NUL(空字符)作为输出字段的分隔符,而不是默认的空格。
注意事项
  • 权限要求:普通用户可以使用 id 命令查看自己或其他用户的信息,但某些系统可能会限制对特定用户信息的访问。
  • 信息准确性:id 命令显示的信息基于 /etc/passwd 和 /etc/group 文件。如果这些文件被手动修改或出现错误,显示的信息可能不准确。
  • 动态组信息:在使用 LDAP 或 Kerberos 等动态组管理机制的系统中,id 命令可能无法显示所有动态分配的组信息。在这种情况下,可能需要使用其他工具来获取完整的组信息。

3.w --查询当前主机的用户 登录情况

语法格式
w [选项] [用户名...]
选项
说明
-a
显示所有用户的信息(包括非活动用户)。
-h
隐藏输出的标题行。
-l
使用长格式输出,显示更多细节(如登录来源 IP)。
-s
使用短格式输出,仅显示关键信息(默认行为)。
-u
显示用户的真实登录名(而非用户名)。
-i
显示 IP 地址而非主机名(适用于远程登录用户)。
--help
显示帮助信息。
--version
显示命令版本。

注意事项

  1. 权限要求:普通用户可查看自己的信息,root 用户可查看所有用户的详细信息。
  2. 系统负载:输出第一行的 load average 表示系统在过去 1、5、15 分钟内的平均负载,数值越高表示系统越繁忙。
  3. 空闲时间:IDLE 列显示终端空闲时间,若用户正在执行长时间任务,该值可能为 old

五、管理目录和文件的属性

1.查看目录和文件的属性

一、属性概述

Linux 文件和目录的属性分为两部分:
访问权限(Permission) 控制用户对文件 / 目录的操作权限。
归属(Ownership) 指定文件 / 目录的属主(Owner)和属组(Group)

字段说明:

1.文件类型:

- 普通文件
d 目录
l 链接文件
b/c 设备文件

2.权限(共10位):

第1位

文件类型

第2-4位

属主(Owner)的权限(rwx)

第5-7位

属组(Group)的权限(rwx)

第8-10位

其他用户(Other)的权限(rwx)

2.设置目录和文件的权限

1. 权限字符

  • r(Read)
    • 文件:可查看内容(如 cat)。
    • 目录:可列出内容(如 ls)。
  • w(Write)
    • 文件:可修改内容或删除文件(需目录的 w 权限)。
    • 目录:可创建、删除或重命名子文件 / 目录(无论属主是谁)。
  • x(Execute)
    • 文件:可执行(如脚本或二进制程序)。
    • 目录:可进入(如 cd)。
2. 权限组合示例
字符模式
数字模式
说明
rwxr-xr-x
755
属主读写执行,属组和其他用户读执行。
rw-------
600
属主读写,其他用户无权限。
drwxrwxr-x
775
目录属主读写执行,属组读写执行,其他用户读执行。
基本语法:
chmod [ugoa..] [+-=] [rwx] 文件或目录...
u 文件属主
g

文件属组内的用户

o

其他任何用户

a

所有用户(u、g、o的总和)

+

增加相应的权限

-

减少相应的权限

=

仅设置对应的权限

默认权限
  • 控制新建文件 / 目录的默认权限。
  • 文件默认权限 = 666 - umask,目录默认权限 = 777 - umask

3.设置目录和文件的归属

设置文件或目录的归属时,主要通过chown进行。
基本语法:
chown 属主[[:属组]] 文件或目录..
chown 用户名 文件/目录 修改属主
chown 组名 文件/目录 修改属组

你可能感兴趣的:(linux,服务器,运维)