Linux账号管理

简介: Linux账号管理

1 用户账号


① 我们在登录Linux时候 系统都做了哪些事情?

先 /etc/password 检查是否有输入的账号,如果有则找出对应的UID(用户ID)GID(组ID),另外 该账号的主文件夹与对应shell设置一起读出

核对密码表;这时Linux进去/etc/shadow里面找到对应的UID 然后核对刚刚输入的密码与这个文件的密码是否相同;

都OK,就进入 shell掌控阶段

(如果要备份Linux系统账号的话 一定要备份这两个文件 /etc/password  /etc/shadow )


②  /etc/password     文件结构

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

 

每一行代表一个用户; : 把一行分成了7段,他们分别代表着  

1.账号名称  比如 root

2 密码  早期UNIX系统密码就是放在这个字段,但是这个文件特效是所有的程序都能读取,会造成密码容易被窃取,因为后来密码的字段放到

/etc/shadow中了,所以这里默认填写了X

3.UID 用户标识符   UID=0表示系统管理员;可以设置多个系统管理员 但是不建议这样做;

1~499(系统账号)这个范围是保留给系统使用的ID ;

这个范围会有 /nologin 的情况,那么nologin是什么意思呢?

系统账号的shell使用 /sbin/nologin ,此时无法登陆系统,即使给了密码也不行。

所谓“无法登陆”指的仅是这个用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。举例来说,各个系统账号中,打印作业有lp这个账号管理,                  www   服务器有apache这个账号管理,他们都可以进行系统程序的工作,但就是无法登陆主机而已。

有时候有些服务,比如邮件服务,大部分都是用来接收主机的邮件而已,并不需要登陆。假如有账号试图连接我的主机取得shell,我们就可以拒绝。  

另外,如果我想要让某个具有 /sbin/nologin 的用户知道,他们不能登陆主机时,可以新建 /etc/nologin.txt 这个文件,在文件内面写上不能登陆的原因,当用户登录时,屏幕上就会  出现这个文件里面的内容。


细分1~99:由distributions自行创建的系统账号

100~499:若用户有系统账号的需求时候,可以使用的账号UID

500以上 (可登录账号)给一般用户用的


4.GID(GroupID 组ID) /etc/group 文件与/etc/passwd 差不多的  就是让 组名 跟这个GID对于起来;


5.用户基本信息说名列 ,没啥特别的 解释这个账号的意义


6.主文件夹 ,比如root账号是 /root ;用户登录会默认跑到这个文件夹;如果想修改主文件夹 那么修改这个字段就行了;默认的用户主文件夹是/home/yourIDname


7.Shell  ;默认使用的shell


③ /etc/shadow文件结构

我们知道很多程序的运行都与权限有关,而权限与UDI/GID有关,所以各个程序都需要读取 /etc/passwd 来了解不同账号的权限 ;那么这个文件的权限设置为了 -rw-r--r--;密码放在passwd的第二个字段很不安全;会被别人获取;所以后来发展出将密码移动到了 /etc/shadow里面;

:分割 有9个字段;

1.账号名称

2.密码 经过加密的密码 ;虽然加密了 但是还是有可能被破解,所以这个文件只有root才能够读取;

3.最近改动密码的日期

4.密码不可被更改的天数(与第三个相比)

5.密码需要重新更改的天数

6.密码需要更改旗下钱的警告天数

7.密码过期后台的账号宽限时间

8.账号失效日期

9.保留字段


root密码忘记了怎么办?


④/etc/group   /etc/gshadow   (省略)


2 账号管理


2.1 新增与删除用户:useradd,相关配置文件,passwd,usermod,userdel


1.新增用户   adduser  用户名 ; 这样会默认创建跟用户名一样的 用户组;

adduser -u 700 -g users test3

-u  自定义UID

-g 自定义用户组

-r 创建系统账号 ;不会主动创建主文件夹

我们在用  adduser 用户名 ;  的时候 会默认创建修改很多文件; 这些默认的数据从哪里来呢?

用命令   useradd -D 查看默认值

image.png

上面的数据在文件 /etc/default/useradd中查出来的;

(略过)


设置密码  passwd   用户名

passwd [-l] [-u] [-S]

[-l] lock锁定用户密码  在/etc/shadow 的密码字段前面加上了!

[-u] unlock 用户

[-S] 查看密码相关参数 ;比如刚刚 -l 了;test LK 2017-01-04 0 99999 7 -1 (Password locked.) 显示被锁定了;

查看密码详细参数的命令还有   chage -l 用户名

root  用户注意  passwd 修改别人的密码一定要加上用户名 否则 就是修改root的密码了

   

修改用户一些参数  usermod [-cdegGlsuLU] username

usermod -L username  锁定用户  == passwd -l username

usermod -U username 解锁用户  == passwd -u username

usermod -c username 修改用户描述信息 /etc/passwd 第五列信息

-g :后面接初始用户组;

-G :后面接次要用户组

 -l: 修改账号名称


userdel 删除用户

userdel -r username 连同主文件夹也一起删除


5  id  查询用户相关ID信息

 

2.2 新增与删除用户组


id 查看用户信息

1. groupadd [-g gid] [-r] 用户组名

-g 指定GID

-r 新建系统用户组。

2. groupmod [-g gid] [-n group_name] 用户组

-g 修改GID  -n 修改用户组名

最好不要随意改动GID

 

3. groupdel [groupname]


4.gpasswd:用户组管理员功能

作用是  让某个用户组具有一个管理员,这个使用后管理员可以管理哪些账号可以加入/移除 该用户组

     

范例:

groupadd testgroup   新建用户组

gpasswd testgroup   给用户组一个密码

image.png

gpasswd -A test testgroup   将用户组的管理员为test

image.png

gpasswd -a test testgroup  登录test用户;  将test 或其他用户加入到testgroup组中

image.png

登录到src用户 执行这个语句就提示没有权限

image.png

image.png

gpasswd [-A user1, ....] [-M user3, ...]  groupname

下面是 root用户有权限执行的

如果没有参数 表示给与groupname一个密码 在 /etc/gshadow

-A 将groupname 的主控权交给后面的用户去管理(该用户组的管理员)

-M 将某些账号加入这个用户组中


-r 删除这个组的密码

-R 让密码失效

下面是用户组管理员有权限执行的

-a 将某位用户加入到这个组中

-d 将某位用户删除出groupname 这个用户组中


5 newgrp [groupname]


上面的测试中 我们将用户test 也加入到新创建的testgroup1中

 image.png

test就有2个组;我们可以用newgrp来切换当前的组;来获取对应组的权限

newgrp testgroup1

切换成功 我们用 id 看看

image.png

第一个出现的就是当前所在的组; 可以看到 有一个组名是test  ;那是因为 centos adduser 的时候会默认创建同用户名的用户组


相关文章
|
4月前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
5月前
|
Java Linux
Linux上管理不同版本的 JDK
Linux上管理不同版本的 JDK
264 0
|
3月前
|
监控 安全 Linux
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
|
4月前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
4月前
|
Linux
Linux 中RPM软件包管理
Linux 中RPM软件包管理
|
5月前
|
消息中间件 存储 监控
实战Linux I/O多路复用:借助epoll,单线程高效管理10,000+并发连接
本文介绍了如何使用Linux的I/O多路复用技术`epoll`来高效管理超过10,000个并发连接。`epoll`允许单线程监控大量文件描述符,显著提高了资源利用率。文章详细阐述了`epoll`的几个关键接口,包括`epoll_create`、`epoll_ctl`和`epoll_wait`,以及它们在处理并发连接中的作用。此外,还探讨了`epoll`在高并发TCP服务场景的应用,展示了如何通过`epoll`和线程/协程池来构建服务框架。
665 10
|
4月前
|
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包给服务器,确认收到了服务器的确
193 1
|
5月前
|
Linux
【Linux 基础】文件与目录管理
文件和目录的基本概念以及常用命令
59 11
|
4月前
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
5月前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
100 1
下一篇
无影云桌面