Linux用户和组管理

本文涉及的产品
云解析DNS-重点域名监控,免费拨测 20万次(价值200元)
简介:

一、linux用户和组管理

1.用户、组和权限管理

每个使用者:用户

每个使用者:

用户标识、密码

认证Authentication:身份识别

授权Authority:对应相应的权限

审计Account/Audition:是否符合条例

3A

Linux授权比较薄弱:还有级{管理员和普通用户}

日志主要用于审计,可以借助于其他软件实现审计功能

组:用户组//用户的容器,把多个用户合并在一起,成为一个逻辑组件

用于实现集体授权等。

用户类别:

管理员:0

普通用户:1-65535

系统用户:1-4999(centos6),1-9999(centos7)

登录用户:500-60000(Centos6),1000-60000(Centos7)

默认是到60000

用户标识:UserID,UID //使用

16bits二进制数字:0-65535

名称解析:

登录时的用户名到UID//计算机更容易识别数字

Username 《---》 UID

根据名称解析库进行:/etc/passwd

2.组类别

管理员组

普通用户组

系统组

登录组

组标识:GroupID,GID

管理员组:0

普通用户组:1-65535

系统用户组:1-499(Centos6),1-999(Centos7)

等咯用户组:500-60000(Centos6),1000-60000(Centos7)

名称解析:groupname 《--》 gid

解析库:/etc/gpasswd

组类别2:

 一个用户可以有多个组

 主组:primary group

 附加组:attached group

组类别3:

私有组:组名通用户名相同,且只包含一个用户

公共组:组内可以包含多个用户

3.认证信息:

通过比对,事先存储的,与登录时提供的信息是否一致

passwd

/etc/shadow

/etc/gshadow

密码的使用策略:

1.使用随机密码

2.最短长度不要低于8位

3.应该使用大写字母,小写字母,数字和标点符号四类字符至少三类

4.定期更换密码

注意:

密码不能明文存放

最好是加密的

加密机制最好是不可逆的

加密算法:

对称加密:加密和解密使用同一个密码

非对称加密:加密和解密使用的一对儿密钥

密钥对儿:

公钥:public key

私钥:private key

单项加密:只能加密,不能解密;提取数据特征码

从人获取指纹,但是不能用指纹还原人

定长输出:

雪崩效应:echo “how are you” | md5sum

算法:

1:md5:message digest ,128bits

2:sha:secure hash algorithm,160bits

3:sha224:

4:sha256:

5:sha384:

6:sha512:


4.添加随机数salt

在计算之时加salt,添加随机数 //不需要用户输入

xiao123456

在用户登录的时候输入xiao,会自动添加salt 123456


5.passwd和shadow文件

/etc/passwd :用户的信息库

whatis passwd

man 5 passwd //查看passwd文件的说明

name:

password :可以是加密的密码,也可以是

UID

GID 用户所属的主组的ID号

GECOS 用户的注释信息

directory 用户的家目录

shell 用户的默认shell,登录时默认打开的shell

/etc/shadow

man 5 shadow,

登录名

加密了的密码 //三段落,使用分隔符分割

6是sha512算法

salt

加密后的密码

最后一次更改密码的日期 //从1970年1.1日开始的天数

0 标识用户下次登录系统时更改密码

空字符表示密码年龄功能被禁用

密码的最小年龄//最短使用多长时间

空字段或者0,不做限制

最大密码年龄

密码警告时间 //快到期了

密码禁用期 //到了之后,还可以为你保留多长时间,到了最长之后

账户过期日期 //账户禁用

保留字段   // 

警告时间:提示修改密码,但是可以不修改

失效时间:登录就会强制修改密码

name:secret:latest:min:max:war:inactive:out:reserve

用户名:加密的密码:最近一次修改密码的时间:最短使用时间:最长使用时间:密码警告日期:密码失效时间:过期时间

1970.1.1 [---------min--------]

|---------------|------|-------------|----------------------|

latest now

                |------------max----------------------------|--inactively--|--out--|

        |--war--|

/etc/group

组名字

组密码

GID

用户列表:该组的用户成员,以此组为附加组的用户的用户列表


示例:创建用户:定义过期时间,和警告时间,以及强制修改密码

附件一:

pwconv:将用户密码转换成影子密码

就是将/etc/passwd里的密码用x代替,并将真实密码(当然是加密后的)转移到/etc/shadow里面。 

pwconv依赖于passwd中的密码区’x’来同步/etc/passwd与/etc/shadow这两个文件;以/etc/passwd为主来控制/etc/shadow中的各项: 

A:若/etc/shadow不存在,则pwconv将用/etc/passwd来建立 

B:若/etc/shadow已存在,则: 

    1.若条目在passwd中已存在,而不在shadow中,则在shadow中添加相关条目 

    2.若条目在shadow中已存在,而不在passwd中,则从shadow中删除相关条目

实验一:使用passwd文件创建用户

vim /etc/passwd

test:x:1002:1002:test:/home/test:/bin/bash

//需要 确保UID:1002没有用户使用

pwconv //同步passwd到shadow

mkdir /home/test

cp /etc/skel/.* /home/test

vim /etc/group

添加组

chmod 700 /home/test -R

chown test:test /home/test -R

ls -dl /home/test

//可以root su到该用户,但是该用户不能直接登录

6.小结

用户管理基础概念:

    用户类别:

管理员类、普通用户(系统用户和登录用户)

    组类别:

        管理员组、普通用户组

基本组和附加组

私有组和公共组

    数据库文件:

        /etc/passwd

    login:passwd:uid:gid:comment:home:shell

/etc/shadow

    login:encrypted_passwd:修改日期:min:max:war:非活动:过期:保留

/etc/group

    name:Gid:passwd:user_list

/etc/gpasswd

    密码存储格式:

    单项加密,并借助于salt完成

    encrypted_passwd:{加密算法:salt:加密后的密码}

加密算法:

1:MD5

2:sha1

3:sha224

4:sha-256

5:SHA-384

6:SHA-512


二、用户和组相关命令

相关命令:

useradd,userdel,usermod,passwd

groupadd,groupdel,groupmod,gpasswd

change,chsh,id,su


用户和组管理命令

1.groupadd 

-g gid 

//默认为上一个GID加1

-r 创建一个系统组

-p 指定组密码

2.groupmod 修改

-g digid

-n 修改组名

3.groupdel 删除组

4.useradd //有一个链接命令adduser

创建一个新用户或者更新用户的默认信息

-u --uid 指定UID

-g --gid 指定基本组ID,此组得实现存在

-c --comment 注释信息

-G --groups GROUOP1[,Group2,...[,Group]]:指明用户的附加组,用,分开

在group文件中,该组会加一个用户名

-d 指定其家目录,创建家目录:

通过复制/etc/skel/.* 并重命名实现

指定的家目录如果存在,就不会为用户复制配置环境配置文件

-s 指定用户的默认SHELL,

/etc/shells 列表内的

-r 创建系统用户

-m 强制创建主目录,

-M 不创建用户家目录,

-f --inactive 

密码过期后,账户被彻底禁用之前的天数,0表示立即禁用,-1表示禁用该功能

如果为指定,使用/etc/default/useradd默认为-1

-D 显示用户创建时的默认信息,

/etc/default/useradd文件的内容

useradd -D -s /bin/csh

//相当于直接修改/etc/default/useradd文件

注意:创建用户时的诸多默认设定的配置文件为/etc/login.defs

5.usermod

大多数选型和useradd类似

-a 添加到附加组,和-G选项一起使用

-c 注释信息

-d 修改用户家目录,用户原有的文件不会被转移到新位置

-m --move-home 只能与-d选项一同使用,用于移动家目录 

-g --gid Groug 修改用户所属的基本组

-G G1,G2,G3,... 修改用户所属的附加组,原来的附加组会被覆盖

-a --append:与-G一同使用,用于为用户追加新的附加组

-l --login-name修改用户名

-s 修改用户的shell,、/etc/shells中的shell

-L/-U  lock/unlock锁定和解锁用户密码,禁止用户登录

锁定 /etc/shadow中,密码字段前加一个!

usermod -G -a test test2

6.userdel

-r 删除用户时一并删除用户家目录

默认不会删除用户家目录

7.passwd

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

passwd 修改用户自己的密码

passwd USERNAME 修改指定用户的密码,仅root有此权限

-d 清除用户密码

-l,-u 锁定和解锁用户

-e:expire 到期时间,几月几号过期

-n:minnum days 最短使用期限

-x:maxnum days 最长

-i:inactive 非活动时间,过期之后可使用的天数

-w:警告时间,之前几天

-S status

--stdin  echo "xaiotao" | passwd --stdin docker

8.gpasswd:用户的组管理和添加密码

-a USERNAME 向组中添加用户

-d 删除组中的用户

newgrp命令,临时切换其他组为基本组

9.chage修改passwd的过期信息

passwd  -n 3 -w 2 -x 5 rusky

-n min;-x max;-w war

chage -l rusky //查看

10.id 显示用户的实际和有效的id

-u 仅显示有效的uid

-g 仅显示基本组ID

-G 显示用户所属的所有组的GID

-n 显示名字而非ID

id -n -G tmd

11.switch user切换用户

登录式切换:会重新读取用户的环境配置文件来重新初始化

su - USERNAME

su -l USERNAME

非登录式切换:不会读取目标用户的环境初始文件进行初始化

su USERNAME

注意:管理员可无密码切换至其他任何用户

-c “COMMAND” //只执行一条命令

12.其他命令

finger 查看用户信息

chfn docker 指定用户信息

chsh 修改默认shell

chsh -s /bin/bash tmd

whoami


命令总结:

groupadd,groupdel,groupmod,passwd

useradd,userdel,usermod,gpasswd

newgrp

id,su,chage,finger

pwck 检查用户的密码是否存在问题

grpck 检查组信息


附件一:/etc/login.defs

设置了默认信息,创建用户,的GID,UID,

默认的加密算法,min,max等

/etc/default/useradd //用户的

附件二:

练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001)

useradd gentoo -u 4001 -G distro,peguin

练习2:创建用户fefora,其注释信息为“Fedora core”,shell为/bin/tcsh

练习3:修改gentoo的家目录为/var/tmp/gentoo,保留原有文件

usermod -d /var/tmp/gentoo -m gentoo

练习4:为gentoo新增附加组netadmin

useradd -a -G netadmin gentoo

附件三:

/etc/group-是group的一个备份文件,用于恢复

附件四: newgrp 临时组切换

wolf 有两个组:wolf,mm

su wolf

touch aa  //aa的属组为wolf

newgrp mm //切换到组mm

touch bb  //bb的属组为mm

id 查看基本组已经发生改变

exit退出 基本组将发生变化

tom只有一个组tom

newgrp tom //则需要tom组的密码








本文转自MT_IT51CTO博客,原文链接:http://blog.51cto.com/hmtk520/1941732,如需转载请自行联系原作者

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