Linux用户及权限管理(二)用户和组管理命令

简介: Linux用户及权限管理(二)用户和组管理命令

在第一节中将了图形界面的用户管理,本节讲解与用户和组管理相关的shell命令。


1.配置文件

 第一节中讲到/etc/passwd文件,它记录了当前操作系统中所有用户的基本信息:用户名、UID、GID、主目录路径、登录shell等。除此之外,系统中还有其他配置文件记录了用户和组的其他信息。


1. 密码文件 /etc/shadow

 该文件记录了当前系统中每个用户的密码相关信息及密码策略。文件的内容以每个用户一行的格式进行显示,每行包括多种信息,之间用 “ :” 隔开。以我刚刚添加的用户“my_test”为例,用cat /etc/shadow查看/etc/shadow文件,文件中关于用户my_test的信息如下:

my_test:$6$zrpY0W4F$IuX36Ds1NR3FVCmQaGmzeMzdBahQFT1IzdwQDh8uvjUGuwmbcbvIgSTkrNB.
Q68YdNSrrFIzABkiYaEI4RCD11:18758:0:99999:7:::

从左到右为:


用户名:与/etc/passwd文件中的用户名相对应;

密码:该字段的表示方式有

(1) *

(2) !

(3)加密处理后的字符串(大家有兴趣可以去了解相关加密的算法)

上一次修改密码经过的时间:从1970.1.1开始计算,例子中为18758,因为今天是2021.5. 12,已经过了18758天。

密码经过几天可以变更:上面例子为0,说明岁时可以变更;

密码经过几天必须变更:上面例子为99999,说明密码可以长期不变;

密码过期几天前要警告用户:一般为7天;

保留域:用“:::”表示。

2. 用户组文件 /etc/group*

 该文件记录了用户组的相关信息,依旧是一个用户组一行。如:

 root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,linux2021

从在到右为:用户组名:密码位:用户组ID:组内用户


3. 权限文件 /etc/sudoers

 Ubuntu 为sudo用户提供了、的一个基本配置文件。修改该文件时务必使用visudo工具进行编辑,它会自动对配置语法进行严格检查,以免出错而带来后果。


sudo执行命令的流程

将当前用户切换到超级用户下,或切换到指定的用户下,然后以超级用户或其指定切换到的用户身份执行命令,执行完成后,直接退回到当前用户。

具体工作过程如下:

当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限

–>确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认

–>若密码输入成功,则开始执行sudo后续的命令

不需要输入密码的情况

1.root执行sudo时不需要输入密码(sudoers文件中有配置root ALL=(ALL:ALL) ALL这样一条规则)

2.欲切换的身份与执行者的身份相同,不需要输入密码

3./etc/sudoers文件设置为允许用户在不输入该用户的密码的情况下使用所有命令

如设置允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令

( %wheel ALL=(ALL) NOPASSWD: ALL)

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults  env_reset
Defaults  mail_badpass
Defaults  secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root  ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d


2.用户管理命令

  对于下面的这些命令,你首先要知道有它们的存在,怎么用并不是最重要的。当你不清楚用法时,直接在终端输入man 命令名称,即可看到他们的用法,各个参数解释。这和matlab的doc命令一样好用。比如我想知道man这个命令的介绍:

终端输入:

$ man man

可以得到:

MAN(1)                         手册分页显示工具                         MAN(1)
名称
       man - 在线参考手册的接口
概述
       man  [-C 文件] [-d] [-D] [--warnings[=警告]] [-R 编码] [-L 区域] [-m 系
       统[,...]] [-M 路径] [-S 列表] [-e  扩展]  [-i|-I]  [--regex|--wildcard]
       [--names-only]  [-a]  [-u] [--no-subpages] [-P 分页程序] [-r 提示] [-7]
       [-E 编码]  [--no-hyphenation]  [--no-justification]  [-p  字符串]  [-t]
       [-T[设备]] [-H[浏览器]] [-X[dpi]] [-Z] [[章节] 页[.章节] ...] ...
       man -k [apropos 选项] 正则表达式 ...
       man -K [-w|-W] [-S list] [-i|-I] [--regex] [章节] 词语 ...
       man -f [whatis 选项] 页 ...
       man  -l [-C 文件] [-d] [-D] [--warnings[=警告]] [-R 编码] [-L 区域] [-P
       分页程序] [-r 提示] [-7] [-E 编码] [-p 字符串] [-t] [-T[设备]] [-H[浏览
       器]] [-X[dpi]] [-Z] 文件 ...
       man -w|-W [-C 文件] [-d] [-D] 页 ...
       man -c [-C 文件] [-d] [-D] 页 ...
       man [-?V]
描述
       man  是系统的手册分页程序。指定给  man 的 页 选项通常是程序、工具或函数
 Manual page man(1) line 1 (press h for help or q to quit)

1.添加用户useraddadduser
在文章开头我已经添加了一个名为my_test的用户,这里我再添加一个用户。

linux2021@dahu:~$ su                                                                                        #切换到root
密码: 
root@dahu:/home/linux2021# adduser my_test_1                               #添加一个名为my_test_1的用户
正在添加用户"my_test_1"...
正在添加新组"my_test_1" (1002)...
正在添加新用户"my_test_1" (1002) 到组"my_test_1"...
创建主目录"/home/my_test_1"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码:                                                                                              #输入该用户的密码
重新输入新的 UNIX 密码: 
passwd:已成功更新密码
正在改变 my_test_1 的用户信息
请输入新值,或直接敲回车键以使用默认值
  全名 []: nihao
  房间号码 []: 101
  工作电话 []: 1101
  家庭电话 []: 1102
  其它 []: test user
这些信息是否正确? [Y/n] y
root@dahu:/home/linux2021#                                                                          #成功建立


2.显示用户信息finger
你可以通过查看/etc/passwd或者/etc/shadow文件来查看用户信息。也可以安装finger,用它来查看,先用apt包管理工具安装finger:

$ apt install finger

查看my_test_1用户信息:

这是一般用法,也可以配合相关参数来查看,可以用man命令获取帮助。

root@dahu:/home/linux2021# finger my_test_1
Login: my_test_1            Name: nihao
Directory: /home/my_test_1            Shell: /bin/bash
Office: 101, x1101      Home Phone: x1102
Never logged in.
No mail.
No Plan.
root@dahu:/home/linux2021# 

3.更改用户密码passwd

该指令用于修改一个用户的密码,普通用户只能修改自己的密码,超级管理员则可以更改系统中所有用户的密码

root@dahu:/home/linux2021# passwd my_test_1
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码

4.修改用户登录信息usermod
该指令用于修改已经添加到系统中的某个用户的登陆名、主目录、默认shell等信息。

root@dahu:/home/linux2021# usermod -l my_test_new my_test_1
root@dahu:/home/linux2021# finger my_test_1
finger: my_test_1: no such user.
root@dahu:/home/linux2021# finger my_test_new
Login: my_test_new          Name: nihao
Directory: /home/my_test_1            Shell: /bin/bash
Office: 101, x1101      Home Phone: x1102
Never logged in.
No mail.
No Plan.
root@dahu:/home/linux2021# 

5.显示用户IDid
该命令用于显示系统中某个用户的UID 、GID等识别信息。

root@dahu:/home/linux2021# id root
uid=0(root) gid=0(root) 组=0(root)
root@dahu:/home/linux2021# id my_test_new
uid=1002(my_test_new) gid=1002(my_test_1) 组=1002(my_test_1)
root@dahu:/home/linux2021# 

6.修改用户个人信息chfn
用于修改用户的个人基本信息,姓名、电话等。一般不用,大家可以用man查看帮助。

7.删除用户deluser
该命令可以删除用户的主目录、所有文件、备份等。

root@dahu:/home/linux2021# deluser my_test_new
正在删除用户 'my_test_new'...
警告:组"my_test_1"没有其他成员了。
完成。
root@dahu:/home/linux2021# 

你应该发现了,这些命令的格式大都是命令 参数 用户名 这样的格式。而参数有哪些则可以通过man来查看。

3.组管理命令

下列命令的用法与用户管理的命令类似,不再赘述。

1.添加用户组addgroup

2.显示组内用户groups

3.修改用户组信息groupmod

4.删除用户组delgroup

相关文章
|
4月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
519 1
二、Linux文本处理与文件操作核心命令
|
4月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
352 137
|
4月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
817 57
|
3月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
663 2
|
4月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
388 0
Linux内存问题排查命令详解
|
4月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
395 16
|
5月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
610 0
|
Shell Linux
12.13 Linux工作管理
工作管理指的是在单个登录终端(也就是登录的 Shell 界面)同时管理多个工作的行为。也就是说,我们登陆了一个终端,已经在执行一个操作,那么是否可以在不关闭当前操作的情况下执行其他操作呢?
215 0
12.13 Linux工作管理
|
Linux Shell Windows
Linux系统管理-工作管理(后台程序管理)
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/77857203 简介 工作管理指的是在当个登陆终端中同时管理多个工作的行为。
1344 0