发布时间:2023-08-18 文章分类:服务器 投稿人:优优 字号: 默认 | | 超大 打印

Linux的用户与权限

前言

在Linux操作系统中任何文件都属于某一特定的用户,而任何用户都隶属于至少一个用户组。

用户是否有权限对某文件进行访问、读写及执行,受到系统严格约束。

这种清晰、严谨的用户与用户组管理系统在很大程度上保证了Linux系统的安全性。

一.账户管理

1.0 创建用户useradd

作用:useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中

格式:useradd【选项】用户名

常用选项说明

选项 说明
-c 加上备注文字。备注文字会保存在passwd的备注栏位中
-d 指定用户登入时的起始目录
-D 变更预设值
-e 指定帐号的有效期限
-f 指定在密码过期后多少天即关闭该帐号
-g 指定用户所属的群组
-G 指定用户所属的附加群组
-m 自动建立用户的登入目录
-M 不要自动建立用户的登入目录
-n 取消建立以用户名称为名的群组
-r 建立系统帐号
-s 指定用户登入后所使用的shell
-u 指定用户ID

1.1 示例

1.1.1添加一般用户

useradd zhuang

在这里插入图片描述

1.1.2.为新添加的用户添加组

useradd -g root wei

在这里插入图片描述

1.1.3.创建一个系统用户

useradd -r liang1

在这里插入图片描述

1.1.4.为新添加的用户指定home目录下

useradd -d /home/myd liang2

在这里插入图片描述

1.1.5.建立用户且定制ID

useradd liang3 -u 1008

在这里插入图片描述

1.1.6.添加一个不能登录的账号

在这里插入图片描述

注: useradd命令参数必须是在创建账户时同时输入才有用,创建账户后无法使用useradd更改参数

2.0 用户账号存储文件

作用: 保存用户名称,宿主目录,登录Shell等基本信息文件位置:/etc/passwd

2.1每一行对应一个用户的账号记录

在这里插入图片描述

2.2 各个字段含义如下图,他们各自用“:”号隔开

在这里插入图片描述

补充:

注意!!!,虽然"x"并不表示真正的密码,但也不能删除,如果删除了"x",那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)。

3.0 用户账号文件/etc/shadow

作用:保存用户的密码,账号有效期等信息

文件位置: /etc/shadow

3.1 每一行对应一个用户的密码记录

如图所示:

在这里插入图片描述

/etc/shadow 文件只有root用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性

和/etc/nasswd文件一样,文件中每行代表一个用户,同样使用":"作为分隔符,不同之处在于,每行用户信息被划分为9个字段

4.0 chage命令

作用:修改账号密码的有效期,针对目前系统已经存在的用户

格式:chage 【选项】用户名

常用选项

选项 说明
-m 密码可更改的最小天数,为零代表任何时候都可以更改密码
-M 密码保持有效的最大天数。chage -M 20 root
-W 用户密码到期前,收到警告信息的天数
-E 账户到期的日期,过了这天,此账号将不可用
-d 上一次更改的日期
-i 停滞日期,如果一个密码已过期这些天,那么此账号将不可用
-l 列出当前的设置,由非特权用户来确定他们的密码或账号何时过期

4.1 示例:

设置用户liang2将在2022.06.25号失效(不可登录)

设置账户liang2最后一次修改密码时间为2022.03.30

在这里插入图片描述

4.2 小结:

5.0账号的初始设置

5.1文件来源

新建用户帐号时,从 /etc/skel 目录中复制而来,比如默认bin/bash,默认家目录

在这里插入图片描述

主要的用户初始配置文件 (对用户有效)

PS:

1.修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效;

2.修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效;

6.0 设置更改用户命令passwd

作用:Linux passwd命令用来更改使用者的密码

格式 :passwd 【选项】用户名

常用选项及说明

选项 说明
-d 清空指定用户的密码,仅使用用户名即可登录系统
-l 锁定用户账户
-S 查看用户账户的状态(是否被锁定)
-u 解锁用户账户
-i 口令过期后多少天停用账户
-g 修改群组密码
-x 指定口令最长存活期
-k 更新只能发送在过期之后
-w 口令要到期提前警告的天数
-f 强迫用户下次登录时必须修改口令

6.1 示例:

创建账户liang2,并且设置密码

6.2 扩展:

在实际生产中为了方便系统管理,passwd命令提供了“–stdin”选项,用于批量给用户设置密码

在这里插入图片描述

7.0 usermod命令

作用:Linux usermod命令用于修改用户帐号。

usermod可用来修改用户帐号的各项设定

格式:usermod【选项】用户名

常用选项及说明

选项 参数
-c 修改用户帐号的备注文字。
-d 修改用户登入时的目录
-e 修改帐号的有效期限
-f 修改在密码过期后多少天即关闭该帐号
-g 修改用户所属的群组
-G 修改用户所属的附加群组
-l 修改用户帐号名称
-L 锁定用户密码,使密码无效
-s 修改用户登入后所使用的shell
-u 修改用户ID
-U 解除密码锁定

7.1 示例:

锁定liang2账户密码,使密码失效

在这里插入图片描述

初始无“!”,锁定后出现“!”密码不可用,解锁后“!”消失密码可用

在这里插入图片描述

在这里插入图片描述

注: usermod 更改用户参数只能在用户设定好之后使用

8.0 删除用户指令/suerdel

作用: 删除无用用户信息

格式: userdel [-r] 用户名

添加-r选项时, 表示连用户的宿主目录一并删除

8.1 示例:

删除用户zhu

在这里插入图片描述

二. 用户账号和组账号

Linux基于用户身份对资源访问进行控制

1.0 用户账号

超级用户:root用户是Linux操作系统中默认的超级用户账号,在本机中权限最高,只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事物处理建议只使用普通账号。
root拥有对系统最高的管理权限 ID=0

普通用户:普通用户账号需要由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限

程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。如:ftp,apache,bin,daemon,ftp,mail等

组账号

2.0 组文件存放位置

/etc/group:保存组帐号基本信息

/etc/gshadow:保存组帐号的密码信息

在这里插入图片描述

在这里插入图片描述

3.0 UID 和 GID

UID (User IDentity ,用户标识号):

GID (Group IDentify ,组标识号):

3.1 如何查看用户的UID ,GID和组

示例:查看用户liang的UID,GID和组id liang

在这里插入图片描述

**小结:**用户和组的关系:用户是员工,组是职位,人只有一个,但可以身兼数职

4.0 组账号管理

4.1 添加组账号命令groupadd

格式: groupadd【-g GID】组账号名

示例:

创建GID为1009的chirou

在这里插入图片描述

4.2 扩展:

1.检索root组包含那些用户

在这里插入图片描述

2.检索那些组包含root用户

在这里插入图片描述

4.3 添加,设置,删除组成员/gpasswd

格式: gpasswd 【选项】源账户 目标组

常用选项说明

选项 说明
-a 添加用户到组
-d 从组中删除用户
-A 指定用户管理员
-M 指定组成员和-A差不多
-r 删除密码
-R 限制用户登入组,只有组中成员才可以用newgrp加入该组

4.3.1 示例:

将用户liang2加入到组chirou中

在这里插入图片描述

将liang2从chirou组中删除

在这里插入图片描述

5.0 查询帐号信息

5.1 finger命令

作用:查询用户的帐号的详细信息

格式:finger 【用户名】

示例:查询用户liang2的信息

在这里插入图片描述

5.2 w,who.users命令

作用:查询已登录到主机的用户命令

示例:

5.2.1 w

在这里插入图片描述

通常使用tty来简称各种类型的终端设备,Centos7系统,tty1表示图形界面,tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切换。

按Ctr1+A1t+F2登陆,执行w命令,查看使用的终端就是ttv2

5.2.2 who

在这里插入图片描述

5.2.3 users

在这里插入图片描述

三. 文件/目录的权限和归属

1.0 ‏‎‮‭‪‮‍‬‪‏⁠三种权限

‏‎‮‭‪‮‍‬‪‏⁠‌‫‏‭‮‫‏‫‌​‏‪‎访问权限

属主(所有权):

2.0 查看文件/目录的权限和归属

示例:

ls-l 文件

在这里插入图片描述

结构如下

在这里插入图片描述

在这里插入图片描述

3.0 设置文件和目录的权限chmod

chmod命令格式:

chmod 【ugoa】 【±=】 【rwx】文件或目录

chmod nnn 文件或目录

符号含义

符号 含义
u 属主
g 属组
o 其他用户
a 所有用户
r
w
x 运行权限
+ 增加
- 去除
= 设置权限
nnn 3位八进制数

在这里插入图片描述

3.1

示例:

创建77.txt文件

在这里插入图片描述

3.1.1.将文件77.txt去除所有人不可读所有者可写权限:chmod ugo-r 77.txt

在这里插入图片描述

3.1.2.设置所有人可读 所有者可写:chmod a+r 77.txt

在这里插入图片描述

3.1.3.文件拥有者添加可执行操作:chmod u+x 77.txt

在这里插入图片描述

3.1.4.所有人只可读 chmod 444 77.txt

在这里插入图片描述

常用选项

-R:递归修改指定目录下所有子项的权限

4.0 权限掩码umask

4.1 umask作用

1.控制新建的文件或者目录的权限

2.默认权限去除umask的权限为新建的文件夹或者目录的权限

4.2示例:

查看当前目录极限掩码umask

在这里插入图片描述

新建目录laozi权限为所有人可读可写可执行umask 000mkdir laozi

在这里插入图片描述

**注:**若想用极限掩码创建目录权限则需要先设置极限掩码,然后再创建目录才能达到要求

5.0设置目录与文件归属/chown

Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。

chown 需要超级用户 root 的权限才能执行此命令。

只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。

使用权限 : root

格式:chown 【选项】目的属组 源目录

示例:将wd 目录属组改到root chown root wd

在这里插入图片描述

总结

用户组与权限之间关系十分紧密,在日常工作中,root权限不可能随意给予别人,但是有的文件又必须给别人更改读写的权利,所以这时候我们就需要设置组和目录权限

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。