linux——账号和权限的管理

一、用户账号和组账号

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

1.1 用户账号

在 Linux 操作系统中,根据系统管理的需要将用户账号分为不同的类型,各类型拥有的权限、担任的角色也各不相同。(root,普通用户,程序用户)

Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID(UserIDentity,用户标识号),对于操作系统核心来说,UID 是区分用户的基本依据,原则上每个用户的 UID 号应该是唯一的。

root 用户账号的 UID 号为固定值 0,而程序用户账号的 UID号默认为 1~499,500~60000 的 UID 号默认分配给普通用户使用。

1.2 组账号

基于某种特定联系(如都需要访问 FTP 服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。

每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组);若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。

对组账号设置的权限将适用于组内的每一个用户账号。
每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)。proot 组账号的 GID 号为固定值 0,而程序组账号的GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用。

二、用户账号管理(user/gourp)

Linux 操作系统中的用户账号、密码等信息均保存在相应的配置文件中,直接修改这些文件或者使用用户管理命令都可以对用户账号进行管理。

1、用户账号相关的配置文件 ,在这两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用":"(冒号)进行分隔:
/etc/passwd #用于保存用户名称、宿主目录、登录 Shell 等基本信息


/etc/shadow #用于保存用户的密码、账号有效期等信息

shadow 文件又被称为"影子文件",其中保存有各用户账号的密码信息,因此对 shadow文件的访问应该进行严格限制。默认只有 root 用户能够读取 shadow 文件中的内容,且不允许直接编辑该文件中的内容。

shadow 文件的每一行内容中包含了九个用":"(冒号)分隔的配置字段,从左到右各配置字段的含义****分别如下所述:

Ø 第 1 字段:用户账号名称。

Ø 第 2 字段:使用 SHA-512(哈希算法中的一种)加密的密码字串信息,当为"*"或"!!" 时表示此

用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统。

Ø 第 3 字段:上次修改密码的时间,表示从 1970 年 01 月 01 日算起到最近一次修改密码时间隔的天数。

Ø 第 4 字段:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为 0,表示不进行限制。

Ø 第 5 字段:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为 99999,表示不进行限制。

Ø 第 6 字段:提前多少天警告用户密码将过期,默认值为 7。

Ø 第 7 字段:在密码过期之后多少天内禁用此用户。

Ø 第 8 字段:账号失效时间,此字段指定了用户作废的天数(从 1970 年 01 月 01日起计算),默认值为空,表示账号永久可用。

Ø 第 9 字段:保留字段,目前没有特定用途。

2、添加删除管理用户账号
2.1 添加用户,useradd/ adduser命令用于添加用户账号,其基本的命令格式如下:
Øuseradd [选项] 用户名
l 用户名:指定新账号的登录名。
参数说明:
Ø常用选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
-m:如果主目录不存在,则自动创建。
-M:不创建用户主目录

2.2 设置用户密码passwd:

用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

passwd 命令除了可以修改账号的密码以外,还能够对用户账号进行锁定、解锁,也可以将用户的密码设置为空(无须密码即可登录)
命令的格式为:

passwd 选项 用户名

参数:

-l 锁定口令,即禁用账号。

-u 口令解锁。

-d 使账号无口令。

如果默认用户名,则修改当前用户的口令。

2.3 删除用户userdel:

userdel 命令用于删除用户账号使用该命令也需要指定账号名称作为参数,结合"-r"选项可同时删除宿主目录。

2.4 usermod 命令用于修改用户账号属性

对于操作系统中已经存在的用户账号,可以使用usermod 命令重新设置各种属性。usermod 命令同样需要指定账号名称作为参数。
参数:
Ø -u:修改用户的 UID 号。
Ø -d:修改用户的宿主目录位置。
Ø -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
Ø -g:修改用户的基本组名(或使用 GID 号)。
Ø -G:修改用户的附加组名(或使用 GID 号)。
Ø -s:指定用户的登录 Shell。
Ø -l:更改用户账号的登录名称(Login Name)(某些系统可用)
Ø -L:锁定用户账户。
Ø -U:解锁用户账户。
Ø -a :追加用户的附加组,不改变原本的附加组

3、组用户

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

users:普通用户

sudo:管理员权限

shadow:影子口令,密码的加密和存储

adm:系统管理员,成员可以访问系统日志等

wheel组:管理任务权限

对于用户账号来说,对应的组账号可分为基本组和附加组 两种类型。每一个用户账号可以是多个组账号的成员,但是其基本组账号只有一个。

与组账号相关的配置文件也有两个,分别是/etc/group 和/etc/gshadow。前者用于保存组账号名称、GID 号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但是很少使用到)。

3.1 添加,管理,删除,查询组账号

groupadd 命令(添加)

Ø使用 groupadd 命令可以添加一个组账号,需要指定GID 号时,可以使用"-g"选项。

gpasswd 命令( 添加、设置、删除组成员)

gpasswd 命令本来是用于设置组账号的密码,但是该功能极少使用,实际上该命令更多地用来管理组账号的用户成员。需要添加、删除成员用户时,可分别使用"-a"和"-d"选项。

groupdel 命令(删除)

当系统中的某个组账号已经不再使用时,可以使用 groupdel 命令将该组账号删除。而添加指定的组账号名称作为参数。

查询组用户命令:

在用户管理工作中,虽然直接查看用户账号、组账号的配置文件也可以查询相关信息,但是并不是很直观。在 Linux 操作系统中,还可以使用几个常用的查询命令工具,如 id、groups、finger、users 等。

三、管理目录和文件的属性(chmod,chown)

1. 修改文件权限(chmod)

在 Linux 文件系统的安全模型中,系统中的文件(或目录)具有两个属性:访问权限和文件所有者,简称权限和归属。

其中,访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用户账号)、属组(拥有该文件的组账号)。

1.1 文件的权限介绍:

1、每个文件的属性由左边第一部分的10个字符(如"drwxr-xr-x ")来确定。

10位字符表示:

Ø0位:确定文件类型

Ø1-3位:确定该文件的所有者对文件的权限 owner

Ø4-6位:确定所有者的同组用户拥有该文件的权限 group

Ø7-9位:确定其他用户拥有该文件的权限 others

2、第一个字符:代表这个文件的类型,是目录、文件,还是一个链接等等

Ø[ d ] 目录

Ø[ - ] 文件

Ø[ l ] 链接文档(link file)

Ø[ b ] 可供储存的接口设备(可随机存取装置)

Ø[ c ] 串行端口设备,例如键盘、鼠标(一次性读取装置)

3、接下来的字符:以三个一组分成三组,用 r、w、x 三个参数的组合表示,位置不会改变

Ø[ r ] 代表可读(read)

Ø[ w] 代表可写(write)

Ø[ x ] 代表可执行(execute)

Ø[ - ] 没有权限

1.2 chmod 命令(设置文件或者目录的权限)

语法:

Ø chmod [-cfvR] [--help] [--version] mode file... 参数

mode : 权限设定字串,格式如下 :

ugoa...\]\[\[+-=\]\[rwxX\]...\]\[,...

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

  • 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

在设置针对每一类用户的访问权限时,可以采用两种形式的权限表示方法:

Ø符号模式(who------u,g,o,a,operator------+-=,permission------rwx)

Ø数字形式

注:chmod a=rwx file和chmod 777 file效果相同

pchmod ug=rwx,o=x file和chmod 771 file效果相同。

若用 chmod 4755 filename 可使此程序具有 root 的权限。

2. 修改文件属主组用户(chown)

需要设置文件或者目录的归属时,主要通过 chown 命令进行。可以只设置属主或属组,也可以同时设置属主、属组。
chown语法:
Ø chown [-cfhvR] [--help] [--version] user[:group] file...
chown参数 :
Ø user : 新的文件拥有者的使用者 ID
Ø group : 新的文件拥有者的使用者组(group)
Ø -c : 显示更改的部分的信息
Ø -f : 忽略错误信息
Ø -h :修复符号链接
Ø -v : 显示详细的处理信息
Ø -R : 处理指定目录以及其子目录下的所有文件
Ø --help : 显示辅助说明
Ø --version : 显示版本

3. 默认权限(umask)

在Linux系统中,umask(用户文件创建掩码,User File Creation Mask)是一种用于决定新创建文件和目录的默认权限的设置。umask定义了文件系统创建文件和目录时默认应该屏蔽掉的权限位。umask设置了一个默认的权限掩码,这个掩码与文件系统 的默认权限组合,决定了新创建文件和目录的实际权限。

Umask的计算方式:

Øuamsk一共四位,第一位固定是0,剩下3位依次是u,g,o

Øumask值以八进制表示,每一位分别对应文件的owner、group和其他用户的权限。

Øumask的每一位取值范围是0到7,数值越小,实际权限越大。

Ø新创建文件或目录的权限计算公式为:(默认权限)&(~umask值)。

目录从777开始算,文件从666开始算,默认取消执行x权限,与本地的umake的结果按位减

umask永久设置方法:
Ø 在用户的.bashrc、.profile或/etc/profile文件中设置umask值,这样每次用户登录时都会应用这个设置。在/etc/profile或/etc/bash.bashrc中设置umask,这将影响所有用户的默认umask值。

相关推荐
星辰云-13 分钟前
# Linux Centos系统硬盘分区扩容
linux·运维·centos·磁盘扩容
Hellc00725 分钟前
Nginx 高级 CC 与 DDoS 防御策略指南
运维·nginx·ddos
聽雨23733 分钟前
02每日简报20250704
linux·科技·金融·生活·社交电子·娱乐·媒体
feilieren40 分钟前
Docker 安装 Elasticsearch 9
运维·elasticsearch·docker·es
Maki Winster1 小时前
Peek-Ubuntu上Gif录制工具-24.04LTS可装
linux·ubuntu·peek
小皮侠2 小时前
nginx的使用
java·运维·服务器·前端·git·nginx·github
Maki Winster2 小时前
在 Ubuntu 下配置 oh-my-posh —— 普通用户 + root 各自使用独立主题(共享可执行)
linux·运维·ubuntu
守望时空332 小时前
Linux下KDE桌面创建自定义右键菜单
linux
l0sgAi3 小时前
vLLM在RTX50系显卡上部署大模型-使用wsl2
linux·人工智能
翻滚吧键盘3 小时前
debian及衍生发行版apt包管理常见操作
运维·debian