账号和权限管理

发布时间:2023年12月26日

目录

一、用户账号和的概述

(一)用户类别

(二)组账号

?编辑(三)UID号

?编辑(四)GID号

(五)配置文件

二、用户账号管理

(一)创建用户

1.不加选项

2.-u

3.-d

4.-e

5.-g

6.-G

7.-M

8.-s

(二)修改用户账号属性

1.-l

2.-L

3.-U

4.-u

(三)密码管理

(四)删除用户

(五)用户账号的初始配置文件

三、组账号管理

(一)创建组

(二)添加、设置、删除组成员

(三)删除组

(四)查看命令

1.命令之----w

2.命令之-----who

3.命令之-----user

4.命令之-----finger

四、文件/目录的权限

(一)权限的分类

1.对文件的权限

2.对目录的权限

3.访问用户的分类

(二)修改权限

1.模式法

2.八进制数字法

3.修改属主、组

4.特殊权限

5.umask

6.acl访问控制列表


一、用户账号和的概述

用户一般来说是指使用计算机的人,计算机对使用其每一个用户给了一个特定的名称,用户就可以使用这些名称来登录使用计算机,除了人之外,一些系统服务也需要含有部分特权的用户账户运行;因此,出于安全考虑,用户管理应运而生,它加以明确限制各个用户账户的权限,root在计算机中拥有至高权限,所以一般只做管理用,非特权用户可以通过SU或SUDO程序来临时获得特权

Linux中通过用户和用户组实现访问-----包括对文件访问、设备使用的控制

个人可以拥有很多账户,只是名称不同,比如root已经占用就不能再次使用,此外,任意用户可能从属某个用户组,此用户可以加入某些已经存在的组来获取改组的特权

Linux系统中,每一个文件都有属一个用户(属主)和一个用户组(属组)。另外还有三种类型的访问权限:读(read)、写(write)、运行(execute)。我们可以针对文件的属主、属组而设置相应的访问权限。

我们可以使用ls或者stat命令查看该文件的权限

(一)用户类别

在Linux中,用户的类别一般分为一下三种

(二)组账号

用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建

用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组

附加组:除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定

一对一:一个用户可以存在一个组中

一对多:一个用户可以存在多个组中

多对一:多个用户可以存在一个组中

多对多:多个用户可以存在多个组中

(三)UID号

UID(User IDentity ):用户标识号,Linux中每个用户都有一个以数字为表达方式的身份标记,类似于每个人的身份证号

(四)GID号

GID(Group IDentify):组标识号。与UID号相似,每一个组也有自己的标识

(五)配置文件

名称帐号信息说明
用户配置文件/etc/passwd

记录了每个用户的基本属性,并且对所有用户

可读每一行记录对应一个用户,每行记录使用

冒号进行分割

用户组文件/etc/group用户组的所有信息存放地,并且组名不能重复
用户对应的密码信息/etc/shadow

因为passwd是对所有用户可读的,为了安全起见把密码从passwd里分离出来放入单独的文件,该文件只有root用户

有读权限,从而保证密码的安全性

1.用户配置文件

打开/etc/passwd

各字段代表的含义

打开/etc/group

打开/etc/shadow

kysw:$6$2YaZfC2f$RJctv3I765WZvyMXDUDEy.1cYBadOqLuIAp7ZALl3m.0TLjKhgSYwaYvhd8jHkYgPfRwT1GW.SsLG0aquobfb0:19717:0:99999:7:::

知识扩展:第三段字符从1970-01-01日开始算起,这个日子是UNIX诞生的日子,实际上在1969年Unix就已经诞生,正式公布为1970年1月1日,当时有个“千年虫”事件。Unix的作者也没有想到它会存在这么长的时间,所以当时出现了一个BUG,当时间到2000年时系统无法识别,就会从1900年重新开始计算

二、用户账号管理

(一)创建用户

命令-------useradd?

语法:useradd 【选项】...? 用户名

作用:添加新用户,并对新用户进行个性化设置

选项:

-u指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-e指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g指定用户的基本组名(或使用 GID 号)。
-G指定用户的附加组名(或使用 GID 号)。
-M不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
-s指定用户的登录 Shell /sbin/nologin

1.不加选项

无特殊情况,按顺序依次生成UID号与组ID号

useradd? lida

2.-u

指定UID号

3.-d

指定用户的宿主目录位置(当与-M 一起使用时,不生效)

两台不同的机器创建的用户,为了给大家演示方便,不用太纠结

4.-e

指定用户失效时间

5.-g

指定用户的基本组名(或使用 GID 号)

6.-G

指定用户的附加组名(或使用 GID 号)

7.-M

不建立宿主目录不建立宿主目录

8.-s

指定用户的登录 Shell?

(二)修改用户账号属性

命令之----------usermod

语法:usermod? 【选项】...? 用户名

作用:对已经创建的用户属性进行修改

选项:

-l:更改用户账号的登录名称(Login Name)

-L:锁定用户账户

-u: 修改用户的 UID 号

-U:解锁锁用户账户

-d:修改用户的宿主目录位置。

-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。

-g:修改用户的基本组名(或使用 GID 号)

-G:修改用户的附加组名(或使用 GID 号)

-s:指定用户的登录 Shell

1.-l

更改用户账号的登录名称

2.-L

锁定用户账户,锁定后账户就无法登录了

3.-U

解锁锁用户账户

4.-u

修改用户的 UID 号

(三)密码管理

命令之------passwd

语法:passwd [选项]... 用户名???不加用户名默认为当前用户修改密码

作用:为用户账号设置密码

选项:

不加选项:passwd? 用户名

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

-l:锁定用户账户。

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

-u:解锁用户账户。

其它选项与useradd基本一致,在此不再过多演示

(四)删除用户

命令之--------userdel

userdel? 【选项】?用户

不加条件的话,用户删除后,该用户的家目录还会存在

-r 将用户家目录一起删除

(五)用户账号的初始配置文件

用户宿主目录下的初始配置文件只对当前用户有效

~/ .bash_profile

#此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件

~/.bashrc

#此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)

~/.bash_logout

#此文件中的命令将在该用户每次退出时bash shell时使用

/etc/bashrc

三、组账号管理

(一)创建组

命令之------groupadd

语法:groupadd? 【选项】 组名

作用:创建新的用户组,并设置个性化属性

groupadd? 【-g GID号】? 组账号名

[root@localhost ~]#groupadd ky1

[root@localhost ~]#tail -1 /etc/group
ky1:x:2004:

[root@localhost ~]#groupadd -g 2500 ky2
[root@localhost ~]#tail -2 /etc/group
ky1:x:2004:
ky2:x:2500:


#不加 -g  会根据前一个创建用户GID号依次生成
#加上 -g  后可以自定义GID号

(二)添加、设置、删除组成员

命令之------gpasswd

语法:gpasswd? 【选项】? 用户名? 组名

作用:对组成员进行操作

选项:

-a:向组内添加一个用户

-d:从组内删除一个用户成员

-M:定义组成员列表,以逗号分隔

?

(三)删除组

groupdel 组帐号名

(四)查看命令

1.命令之----w

查询已登录到主机的用户信息

标题含义
USER登录到系统的用户。
TTY登录终端。
FROM表示用户从哪里登陆进来,一般显示远程登陆主机的 IP 地址或者主机名。
LOGIN@用户登陆的日期和时间。
IDLE表示某个程序上次从终端开始执行到现在所持续的时间。
JCPU和该终端连接的所有进程占用的 CPU 运算时间。这个时间里并不包括过去的后台作业时间,但是包括当前正在运行的后台作业所占用的时间。
PCPU当前进程所占用的 CPU 运算时间。
WHAT当前用户正在执行的进程名称和选项,换句话说,就是表示用户当前执行的是什么命令。

2.命令之-----who

相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。 who 命令的基本格式如下:

3.命令之-----user

显示当前登录到系统的用户列表

4.命令之-----finger

此命令需要手动安装 ,它可以查看到用户的详细信息

四、文件/目录的权限

在Unix/Linux系统中,文件和目录都有各自的权限设置,这些权限决定了哪些用户或用户组可以

文件或目录进行操作

(一)权限的分类

1.对文件的权限

①读取(r):可使用文件查看类工具,比如:cat,可以获取其内容

②写入(w):可修改其内容

③执行(x):可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)

2.对目录的权限

r?:可以使用ls查看此目录中文件列表

w :可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关

x :可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限

3.访问用户的分类

文件和目录的权限通常通过一组九个字符来表示,格式如下:

这九个字符分为三组,每组三个,分别代表所有者(user)、所属组(group)和其他用户(others)的权限。

(二)修改权限

命令之----chmod

语法 :chmod? ?【选项】??文件名

作用:修改文件/目录对特定用户的权限

选项:

1.模式法

+? 是加上,在原有的基础上加上权限

-? 是在原有的基础上减去权限

=? 赋予 就是原有权限不看 等于号后面的权限

2.八进制数字法

权限使用三位八进制数来表示所有者、所属组和其他用户的权限。每一位数字的范围是0-7,分别对应以下权限组合:

0:无权限

1:执行权限

2:写入权限

3:写入和执行权限

4:读取权限? ? ? ? ??

5:读取和执行权限

6:读取和写入权限

7:读取、写入和执行权限

在Linux显示为? ?r=4、w=2、x=1

例如:????????

使用chmod修改权限后

3.修改属主、组

命令之-----chown

语法:chown? 用户:组名? 文件名

作用:修改文件/目录的所属住和所属组

只修改所属主 :输入 chown? 属主名? 文件名

只修改所属组:输入 chown? .属组名? 文件名

同时修改:输入 chown? 属主名:属组名? 文件名

4.特殊权限

除了基本的读、写、执行权限外,还有一些特殊的权限位:

s(setuid/setgid)

当设置在可执行文件上时,允许以文件所有者的身份(setuid)或文件所属组的身份(setgid)运行该文件。

此处s表示当使用这个命令程序时,把当前用户当成文件的所属主

修改密码就是修改/etc/shadow文件内容

正常来说,作为普通用户,我们是没有权限去修改的,但是passwd命令加上了suid这个特殊权限,就可以将使用该命令的用户作为修改文件的所属主,无视权限

添加命令为:?chown? s(g)+s? 文件名

t(粘滞位/sticky bit)

当设置在目录上时,仅允许文件所有者删除该目录下的文件,即使其他用户具有写入权限。

输入chmod? o+t? 文件名

其它用户虽然有权限,但是无法删除

只有该文件的属主可以删除

5.umask

umask 的值可以用来保留在创建文件权限

新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变? 因为为了安全考虑,默认是将x(执行)权限去掉? (x=1)

新建目录的默认权限: 777-umask

非特权用户umask默认是 002

root的umask 默认是 022

6.acl访问控制列表

可以实现单个用户的权限设置,

除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } 文件名....

-m, ? ? ? --modify-acl 更改文件的访问控制列表

-M, ? ? ? --modify-file=file 从文件读取访问控制列表条目更改

-x, ? ? ? --remove=acl 根据文件中访问控制列表移除条目

-X, ? ? ? --remove-file=file 从文件读取访问控制列表条目并删除

-b, ? ? ? --remove-all 删除所有扩展访问控制列表条目

-k, ? ? ? --remove-default 移除默认访问控制列表
? ? ? ? ? --set=acl 设定替换当前的文件访问控制列表
? ? ? ? ? --set-file=file 从文件中读取访问控制列表条目设定
? ? ? ? ? --mask 重新计算有效权限掩码

-n, ? ? ? --no-mask 不重新计算有效权限掩码

-d, ? ? ? --default 应用到默认访问控制列表的操作

-R, ? ? ? --recursive 递归操作子目录

-L, ? ? ? --logical 依照系统逻辑,跟随符号链接

-P, ? ? ? --physical 依照自然逻辑,不跟随符号链接
? ? ? ? ? --restore=file 恢复访问控制列表,和“getfacl -R”作用相反
? ? ? ? ? --test 测试模式,并不真正修改访问控制列表属性

-v, ? ? ? --version ? ? ? ? ? 显示版本并退出

-h, ? ? ? --help ? ? ? ? ? ? ?显示本帮助信息

举个例子

总结:通过用户和组的管理,可以对不同的用户进行不同的权限设置

文章来源:https://blog.csdn.net/hy199707/article/details/135206332
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。