Linux的用户和组管理

Linux是个多用户多任务的分时操作系统,越是对服务器安全性要求越高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。

在linux中主要是通过配置文件来查看和修改用户信息

关于用户的配置文件有四个。

/etc/passwd

/etc/shadow

/ect/group

/etc/gshadow

/etc/passwd

记录了这个用户的一些基本属性

第1字段:用户名称

第2字段:密码标识(表示有密码,会去/etc/shadow下调用)

第3字段:UID

0  超级用户

1-499  系统用户(伪用户)

500-65535普通用户

第4字段:GID(用户初始组ID)

第5字段:用户说明

第6字段:家目录

普通用户:/home/用户名

超级用户:/root/

第7字段:登录之后的shell

shell就是linux的命令解释器

在/etc/passwd当中,除了标准shell是/bn/bash之外,还可以写如/sbin/nologin(无法登录)

对于组,有初始组和附加组的概念。

初始组:就是指用户一建立就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。

每个用户都必须拥有一个初始组,每个用户只能拥有一个初始组

附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。

影子文件/etc/shadow

存放用户密码信息,只有系统管理员才有权利进行查看和修改的文件,权限为000

前面说的passwd里只有密码标志x,shadow存放着真正的密码

第一个字段:用户名

第二个字段:经过加密后的密码(如果密码位是!!或*代表没有密码,不能登录)

第三个字段:密码最后一次修改日期(使用1970年1月1日作为标准时间,每过一天时间戳加1)

第四个字段:两次密码的修改间隔时间(和第三个字段相比,也就是多少时间间隔后才能修改密码)

第五个字段:密码有效期(和第3字段相比)

第六个字段:密码修改到期钱的警告天数(和第五字段相比)

第七个字段:密码过期后的宽限天数(和第5个字段相比,0代表密码过期后立即失效,-1代表密码永不失效)

第八个字段:帐号失效时间(不管有效期是否到,要用时间戳表示)

第九个字段:保留

/etc/group  

存放用户组的配置信息

每添加一个用户,就会生成和用户名一样的组作为用户名的初始组

第一字段:组名

第二字段:组密码 (root给组选个管理员,设置完密码,管理员知道设置的密码,就可以把其他用户拉到组或者从组中删除,会降低系统的安全性,通常不使用)

第三个字段:GID

第四字段:组中附加用户(linux无法直接查看初始组,先进/etc/passwd查看初始组id,再进/etc/gourp查看组id是哪个组)

需要注意的是,linux不是用用户名和组名来区别的,用的是UID和GID,当然,还有之前说的PID,理论上来说都是唯一的。

gshadow

用户组管理密码

第一字段:组名,是用户组的名称,由字母或数字构成。

第二字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码

第三字段:组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割

第四字段:组内用户列表,如果有多个成员,用,号分割

用户的家目录

普通用户:/home/用户名,所有者和所属组都是此用户,权限是700

超级用户:/root/,所有者和所属组都是root用户,权限是550

假如通过修改/etc/passwd,将某用户的uid更改为0,他的权限更改了,但是家目录的位置却没有更改。

命令:

useradd  添加用户

语法:useradd 【选项】用户名

-u UID          手工指定用户的UID号

-d 家目录           手工指定用户的家目录

-c  用户说明        手工指定用户的说明

-g  组名           手工指定用户的初始组

-G  组名           指定用户的附加组(可以多个附加组,逗号分割就行了)

-s  shell        手工指定用户的登录shell,默认是/bin/bash

其实就是修改了刚刚所说的几个配置文件,我们也可以手动写入这几个文件来创建用户

一般新建用户使用默认值就可以了,用户的默认值文件

GROUP=100  用户默认组(linux系统中,有一种共有模式和私有模式,在公有模式中是这样的,在现在的linux中,默认的是都是私有模式,在私有模式中,用户添加是创建同名的组)

HOME=/home      用户家目录

INACTIVE=-1     密码过期宽限天数       (shadow文件的第7字段相对应)

EXPIRE=        密码失效时间        (shadow文件的第8字段相对应)

SHELL=/bin/hsah   默认的shell

SKEL=/etc/skel   模版目录

CREATE_MAIL_SPOOL=YES  是否建立邮箱

还有另外一个默认配置文件,/etc/login.defs ,把注释行去掉,就剩这些了、

PASS_MAX_DAYS 99999       密码有效期             (shadow文件的第5个字段)

PASS_MIN_DAYS 0         密码修改间隔         (shadow文件的第4个字段)

PASS_MIN_LEN             密码最小5位(现在用的是PAM原则)

PASS_WARN_AGE 7           密码到期警告            (shadow文件的第6个字段)

UID_MIN  500          最小uid值

UID_MAX  60000         最大UID范围

ENCRYPT_METHOD SHA512       加密模式

passwd【选项】用户名

-S 查询用户密码的密码状态,仅root用户可用

-l 暂时锁定用户。仅root可用

-u 解锁用户。仅root用户可用

-stdin 可以通过管道符输出的数据作为用户的密码

用-S来查看下密码状态,内容是和/etc/shadow相对应的

锁定和解锁用户

实际上可以看到是shadow中的user1用户加了!当然,我们可以手工添加。

usermod   修改用户信息

前面的useradd所用的-u,g,G,c,L,U等对usermod来说,基本通用

chage  修改用户密码状态

chage【选项】用户名

-l             列出用户的详细密码状态

-d             修改密码最后一次更改日期

-m  天数       两次密码修改间隔

-M 天数        密码过期前警告天数

-I 天数          密码过期后宽限天数

-E日期           帐号失效时间

我学习的时候在想,我还要记这么多参数?就算用--help去查看也得多少时间,所以如果我用到这,我就直接用vim编辑配置文件了。

shage -d 0 user1 估计这个命令的最大作用也就是这了,要求用户一登录就必须设置密码。

userdel  删除用户

userdel【选项】用户名

-r 删除用户的同时删除用户家目录

id 查询用户的uid

id 用户名

su  切换用户身份

su 【选项】用户名

- 选项只用-,代表连用户的环境变量一起切换

-c 命令:仅执行一次命令,而不切换用户身份

如果在切换时没有加-,会有各种各样的问题

groupadd 添加用户组

groupadd 【选项】组名

-g GID  指定组ID

groupmod【选项】组名

-g GID  修改组ID

-n新组名  修改组名

groupdel 组名  删除用户组

如果组中有初始用户存在,无法删除,附加用户,不影响组的删除。

gpasswd【选项】组名      把用户添加入组或从组中删除

-a 用户名  把用户加入组

-d用户名  把用户从组中删除

时间: 2024-12-18 02:47:40

Linux的用户和组管理的相关文章

【Linux笔记】Linux的用户、组管理

1. Linux的用户.组管理 1)   用户 i.      添加用户 useradd 用户名 useradd 不带参数直接添加用户时,家目录默认在/home下,默认使用bash shell 例1: [[email protected] etc]# useradd testyx [[email protected] etc]# cd /home [[email protected] home]# ls ads_yx  testyx [[email protected] home]# passw

linux系统 用户和组管理类命令的使用方法

列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,则只显示一次即可. [[email protected] ~]# who    #显示当前用户登录信息 root    tty1         2016-10-05 15:58 root    pts/0        2016-10-05 16:07(192.168.0.17) [[email protected] ~]# who | cut -d' ' -f1    #取出当前用户登录信息的用户名 root root [[e

linux基础 用户与组管理

1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. ①通过who或者w命令,可以查询当前登入至系统的用户信息. ②cut命令通过指定特定字符来分割行信息,如空格符, -d" " ,-f 显示分割后指定的段. ③sort用来对结果排序,-u排序后去重 [[email protected] ~]$ who | cut -d" " -f1 | sort -u allen root 2.取出当前系统上被用户当作其默认shell的最多的

Linux基础(5)Linux的用户,组管理以及Linux的下的权限浅谈

Linux下的权限管理与用户跟组的概念是分不开的.简单来说,Linux下的文件有三种权限r w x 对于文件来说 r:可读,可以使用类似cat等命令查看文件内容: w:可写,可以编辑或删除此文件: x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行: 对于目录来说: r: 可以对此目录执行ls以列出内部的所有文件 w: 可以在此目录创建文件: x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息: 对于文件或者目录来说,权限按照文件的所有者可以划分为

Linux之用户、组管理

Linux系统是一个多用户多任务的分时操作系统.任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.每个用户账号都拥有一个唯一的用户名和各自的口令.用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录. 用户账号的管理,主要有以下方面: 1.用户分类.基本信息.密码策略 2.用户组的管理   3.用户.组常用管理命令 用户分类 超级用户:拥有对系统的最高管理权限,默认是root用户. 普通用户:只能对自己目录下的文件进行访问和修改,具有登

Linux下用户和组管理

用户与组之间的关系是,组下面有若干个用户,每个用户必须从属于唯一一个组.组可以理解为权限的集合.用户管理的命令有:useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage.组管理的命令有:groupadd, groupdel, groupmod, gpasswd. (一)linux系统下用户角色 在linux系统下用户的角色不同,权限和所能完成的任务也不同,用户角色是通过UID来识别的,在linux下要注意root用户的UI

【Linux下用户和组管理】 𬤺

原文: http://blog.gqylpy.com/gqy/315 "> ##### 创建用户--useradd . 命令格式:useradd [参数] 用户名 useradd也可写成adduser . 参数如下 -u 指定UID号 -d 指定宿主目录 -e 指定生效时间 -g 指定基本组 -G 指定附加组 -M 不建立宿主目录 -s 指定shell -r 用于删除用户时,同时删除宿主目录 -f 一般用于强制删除用户 . 补充命令: echo '密码' | passwd --stdin

linux中用户,组管理

操作系统管理和分配硬件资源向上层输出系统调用借口,从而简化了应用程序的设计.如果想要使用系统资源,则需要一个凭证:用户 linux上创建,修改,删除用户的命令详解: 创建用户useradd:在linux系统上和用户相关的文件有/etc/passwd,该文件用户存储用户的基本信息(用户名,UID,GID,注释信息,用户的家目录,用户的shell类型),/etc/passwd文件用于存放用户的密钥,密码过期时间等相关信息,/etc/group文件用于存放组相关信息(组名,GID,以该组为附加组用户的

linux综合顺练(涉及管道,正则,重定向、用户及组管理、权限管理等相关知识点)

一.概述   本博文是对前边总结的知识点的一个综合利用,涉及的知识点比较广泛,涉及的大概有"bash特性之管道","bash特性之重定向","grep命令与正则表达式的利用","linux下用户与组管理","linux下权限管理"等.下面给出上边提到知识点之前的博客链接: bash的重定向和管道相关知识点:http://blog.51cto.com/9657273/2172717 文件基础管理类命令汇总:h