Linux账户管理详解

简介: Linux账户管理详解

用户与用户组

用户

Linux下用户分为三种:

  • 超级用户:拥有对系统的最高管理权限,默认是root用户。
  • 普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限。
  • 虚拟用户:这类用户不能登陆系统,他们存在的意义主要是方便系统管理,满足相应的系统进程对文件属主的要求。

用户&&组

  • Linux是一个多用户多任务的分时操作系统,当使用系统资源,就必须拥有一个账户。通过不同属性的账户,一方面,可以合理的利用和控制系统资源,另一方面,也可以帮助用户组织文件,提供对用户文件的安全性保护。
  • 每个用户都有一个唯一的用户名和用户口令。
  • Linux系统中每一个用户都默认拥有一个用户组,系统可以对一个用户组中的所有用户进行统一管理。用户和用户组的对应关系可以是:一对一、一对多、多对一、多对多。

用户和组相关配置文件

/etc/passwd文件

  • 这个文件是系统用户配置文件,是用户管理中最重要的一个文件。里面记录着每个用户的一些基本属性,且对所有用户可读。
  • 每一行记录对应着一个用户,一冒号分隔,其格式与含义如下:
  • 用户名:口令:用户标识号:组标识号:注释性描述:主目录:默认shell
[root@centos7 ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  • 用户名:代表着用户账户
  • 口令:代表着加密后的用户口令
  • 用户标识号:用户的UID,每个用户都有一个唯一的UID,取值范围为0~65535,0代表着超级用户,1-99有系统保留,普通用户默认从500开始。注意:超级用户的标志不是root而是就UID为0
  • 组标识号:组的GID,与用户的UID类似
  • 注释性描述:记录用户的注释信息
  • 主目录:用户的家目录
  • 默认shell:默认的命令解释器

/etc/shadow文件

  • 这个文件记录着用户的密码信息,该文件只有root用户有读权限,从而保证了用户密码的安全性。
  • 文件内容的格式为:
  • 用户名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:告警时间:不活动时间:失效时间:保留字段
[root@centos7 ~]# more /etc/shadow
root:$6$uWHpbaH5s8/fN/ah$n0cQ8FqSR3g.IRzB0IYU3qYiGneG6T0R6y3vncjIll7W6NACkOxg9oKtkmBs3xXu/nPudamuDcet0fPDbeWbY/::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
  • 用户名:代表着用户账户
  • 加密口令:存放着加密后的用户密码,如果此字段是*、!、x等字符,则对应的用户不能登陆系统
  • 最后一次修改时间:表示从某个时间起,到用户最近一次修改口令的间隔天数,可通过passwd修改密码
  • 最小时间间隔:表示两次修改密码之间的最小时间间隔
  • 最大时间间隔:表示两次修改密码之间的最大时间间隔
  • 告警时间:表示从系统开始警告用户,到密码正式失效之间的天数
  • 不活动时间:是用户口令作废多少天后,系统会禁用此账户,如果字段值为空,要是账号永远可用
  • 保留字段:目前为空

/etc/group文件

  • 这个文件是用户组配置文件
  • 此文件的格式为:
  • 组名:口令:组标识号:组内用户列表
[root@centos7 ~]# more /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
  • 组名:用户组名称
  • 口令:公户组加密后的口令字串
  • 组标识号:组的GID
  • 组内用户列表:还是属于这个组的用户

/etc/login.defs文件

  • 这个文件用来定义看见一个用户时的默认设置
  • 比如指定用户的UID和GID范围、用户过期时间、是否创建主目录等
  • 列举几个常用的配置:
# 指定密码有效的最大天数
PASS_MAX_DAYS 99999
# 表示从上次密码修改后多少天用户才被允许修改口令
PASS_MIN_DAYS 0
# 指定密码的最小长度
PASS_MIN_LEN  5
# 口令到期前多少天开始通知用户
PASS_WARN_AGE 7
# 表示添加用户时,UID默认从1000开始
UID_MIN                  1000
# 表示最大UID为60000
UID_MAX                 60000
# 代表组的GIU,与UID类似
GID_MIN                  1000
GID_MAX                 60000
# 默认创建用户主目录
CREATE_HOME yes

/etc/default/useradd文件

  • 这个文件代表不加任何参数,创建一个用户,默认的主目录未元/home下,默认的shell为/bin/bash
[root@centos7 ~]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

/etc/skel文件

  • 这个文件定义了新建用户在主目录下默认的配置文件

账户管理相关命令

组管理

命令:groupadd

表示创建用户组

groupadd [-g -o] gid group
  • -g:指定组的GID
  • -o:表示新用户组的GID可以与系统已有用户组GID相同

命令:newgrp

用于多个用户组之间的切换

newgrp [group]

命令:groupdel

表示删除用户组

groupdel [group]

用户管理

命令:useradd

表示创建一个用户

useradd [选项] name
  • -u uid:用户标识号
  • -g group:指定用户组
  • -G group:指定附加组
  • -d home:指定主目录。
  • -s shell:指定默认使用的shell

命令:userdel

删除一个用户,加-r表示不但删除用户,同时删除用户的主目录及目录下文件。

useradd [-r] [用户账号]

命令:usermod

用来修改用户账号

usermod [选项] [用户名]
  • -L:锁定用户密码,使密码无效
  • -U:解除密码锁定
  • 其他选项与useradd类似

文件权限属性

文件权限是指对文件的访问权限。包括对文件的读、写、删除、执行等。在Linux中,每个用户具有不同的权限。

在Linux中常见的几种文件类型:

  • 普通文件:(-)
  • 目录:(d)
  • 字符设备文件:(c)
  • 块设备文件:(b)
  • 套接字文件:(s)
  • 管道:(p)
  • 符号连接文件:(l)
[root@centos7 ~]# ll
总用量 12
-rw-r--r--  1 root root   42 1月  11 11:48 11.txt

以空格为分隔符,以上每列信息分别为:

文件类型与权限;连接数;文件所属用户和组;文件大小;文件最后修改的日期;文件名称

利用chown改变属主和属组

chown [-R] 用户名 文件或目录

chowm [-R] 用户名:用户组 文件或目录

-R:代表递归,就是将目录下的所有文件子目录会变更所属

下面这个例子可以看出文件所属的更改

[root@centos7 ~]# ll
总用量 12
-rw-r--r--  1 root root   42 1月  11 11:48 11.txt
[root@centos7 ~]# chown haha:haha 11.txt 
[root@centos7 ~]# ll
总用量 12
-rw-r--r--  1 haha haha   42 1月  11 11:48 11.txt

利用chmod改变访问权限

这个这个命令用于改变文件或目录的访问权限。可以使用字母代表权限,也可以使用数字代表权限。

chmod [who] [+ | - | =] [mode] 文件名

who表示操作对象:

  • u:表示用户,属主
  • g:表示用户组
  • o:表示其他用户
  • a:表示所有用户你呢

操作符号含义:

  • +:添加某个权限
  • -:取消某个权限
  • =:赋予给定的权限

mode:表示可以执行的权限:

  • 读:r(4)
  • 写:w(2)
  • 执行:x(1)

下面这个例子是更改文件的权限:数字的方式比较方便

[root@centos7 ~]# ll
总用量 12
-rw-r--r--  1 haha haha   42 1月  11 11:48 11.txt
[root@centos7 ~]# chmod 755 11.txt 
[root@centos7 ~]# ll
总用量 12
-rwxr-xr-x  1 haha haha   42 1月  11 11:48 11.txt

此部分内容到此结束:

同系列文章链接:

Linux软件管理详解

Linux磁盘管理详解

目录
相关文章
|
4天前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
11天前
|
Java Linux
Linux上管理不同版本的 JDK
Linux上管理不同版本的 JDK
14 0
|
3天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
|
6天前
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
15天前
|
Linux
【Linux 基础】文件与目录管理
文件和目录的基本概念以及常用命令
32 11
|
9天前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
8 1
|
14天前
|
存储 安全 Linux
Linux passwd命令:守护账户安全的密钥
`passwd`命令是Linux中管理用户密码的关键工具,确保数据安全。它用于更改密码,采用加密存储,并有锁定/解锁账号、设置密码策略等功能。参数如`-d`删除密码,`-l`锁定账号,`-u`解锁。最佳实践包括定期更改复杂密码,保护root密码,谨慎使用无密码选项。了解和正确使用passwd是保障系统安全的重要步骤。
|
20天前
|
安全 Linux 数据处理
探索Linux的kmod命令:管理内核模块的利器
`kmod`是Linux下管理内核模块的工具,用于加载、卸载和管理模块及其依赖。使用`kmod load`来加载模块,`kmod remove`卸载模块,`kmod list`查看已加载模块,`kmod alias`显示模块别名。注意需有root权限,且要考虑依赖关系和版本兼容性。最佳实践包括备份、查阅文档和使用额外的管理工具。
|
21天前
|
监控 数据挖掘 Linux
Linux命令jobs:后台任务管理利器
`jobs`是Linux终端的利器,用于管理和查看后台任务。它显示当前会话中的作业状态,如运行、停止,可通过`Ctrl+Z`暂停任务,`bg`放后台,`fg`回前台。参数`-l`显示PID,`-n`显示最近状态变化的作业。`jobs`帮助高效监控和管理长时间运行的命令,如在数据分析时。记得使用正确任务编号,谨慎使用`kill`,并定期检查任务状态。
|
21天前
|
消息中间件 Linux 数据处理
Linux命令ipcrm详解:轻松管理IPC对象
`ipcrm`是Linux下用于删除IPC(进程间通信)对象的命令,如消息队列、共享内存和信号量。它通过指定对象ID或键值进行操作,如`-m ID`删除共享内存,`-q ID`删除消息队列,`-s ID`删除信号量。使用时需注意确认对象未被使用,以免影响系统运行。结合`ipcs`命令检查对象详情,并可定期清理不再需要的IPC对象以优化系统资源。