linux命令(六)——用户及用户组管理详解

it2023-10-02  70

文章目录

用户和用户管理一、用户配置文件1、 用户信息文件——`/etc/passwd`2、 影子文件 `/etc/shadow`3、 组信息文件`/etc/group`和组密码文件`/etc/gshadow` 二、用户管理相关文件1、用户的家目录2、用户的邮箱3、用户模板目录(在创建用户的时候自动放置到用户的家目录之中) 三、用户管理命令1、添加用户:2、修改用户密码passwd3、 修改用户信息usermod+修改用户密码状态chage4、删除用户userdel+用户切换命令:su 四、用户组管理命令1、groupadd [选项] 组名2、修改用户组:groupmod [选项] 组名3、删除用户组:groupdel 组名4、把用户添加到组中或者从组中删除

用户和用户管理

一、用户配置文件

用户管理简介: 越是对服务器安全性要求高的服务器越是需要建立合理的用户权限等等级制度和服务器操作规范 在Linux中主要是通过用户配置文件来查看和修改用户信息

1、 用户信息文件——/etc/passwd

字段含义: 例子:

  test1:x:500:500:beinan sun:/home/beinan:/bin/bash   test2:x:501:502::/home/linuxsir:/bin/bash

第一字段:用户名 第二字段:密码标志(x表示有密码) 第三字段:UID(用户ID)

0:超级用户 1-499:系统用户(伪用户) 500-65535:普通用户

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

初始组:用户一登录就用拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是这个用户的用户名相同的组名作为这个用户的初始组 附加组:用户可以加入多个其他的用户组,并拥有这个组的权限,附加组可以有多个

第五字段:用户说明 第六字段:家目录

普通用户/home/用户名/ 超级用户/root/

第七字段:登录之后的shell

shell:Linux的命令解释器,改变shell的名称可能会导致用户无法登录(千万不要尝试改变root的这个shell,可以用普通用户尝试一下) 在/etc/passwd当中除了标准的Shell是/bin/bash之外还可以写如/sbin/nologin

笔记:ll = ls -l 是一个简写


2、 影子文件 /etc/shadow

字段含义: 例子:

test1:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7::: test2:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:

第一字段:用户名 第二字段:加密密码

加密算法升级为SHA512散列加密算法 如果密码是"!!"或者“*”表示没有密码,不能登录

第三字段:密码最后一次修改时间

使用1970年1月1日作为标准时间,每过1天时间戳加1

第四字段:两次修改密码的时间间隔(与第三字段相比) 第五字段:密码的有效时间 第六字段:密码修改到期前的警告天数(与第五字段相比) 第七字段:密码过期之后的宽限天数(与第五字段相比)

1:代表密码永远不会失效 0:表示密码过期后立即失效

第八字段:账号失效时间

要用时间戳表示 把时间戳换算为日期:date -d "1970-01-01 16066 days" 把日期换算为时间戳:echo $(($(date --date="2020/10/01" +%s)/86400+1))

第九字段:保留


3、 组信息文件/etc/group和组密码文件/etc/gshadow

第一字段:组名 第二字段:组密码标志,x表示有密码 第三字段:GID 第四字段:组中附加用户


二、用户管理相关文件

1、用户的家目录

普通用户:/home/用户名/,所有者和所属组都是这个用户,权限时700超级用户:/root/,所有者和所属组都是root用户,权限时550 将普通用户变为超级用户(改变其UID=0)其家目录位置不变,权限变化

2、用户的邮箱

/var/spool/mail/用户名/

3、用户模板目录(在创建用户的时候自动放置到用户的家目录之中)

/etc/skel

三、用户管理命令

1、添加用户:

1) useradd [选项] 用户名 选项:

-u UID 手工指定用户的UID号 -d 家目录 手工指定用户的家目录 -c 用户说明:手工指定用户的说明 -g 组名:指定用户的初始组 -G 组名:指定用户的附加组 -s shell :指定用户登录的shell,默认是/bin/bash


2) 添加默认用户 useradd sc

grep sc /etc/passwd grep sc /etc/shadow grep sc /etc/group grep sc /etc/gshadow ll -d /home/lamp/ ll /var/spool/mail/lamp


3) 指定添加用户

4) 用户默认值文件

/etc/default/useradd

GROUP=100 # 用户默认组 HOME=/home # 用户家目录 INACTIVE=-1 # 密码过期宽限天数(shadow文件中的第七字段) EXPIRE = #密码失效时间(8) SHELL=/bin/bash # 默认shell SKEL=/etc/skel #模板目录 CREATE_MAIL_SPOOL=yse # 是否建立邮箱

/etc/login.defs

PASS_MAX_DAYS 99999 # 密码有效期 PASS_MIN_DAYS 0 # 密码修改间隔 PASS_MIN_LEN 5 # 密码最小位数 PASS_WARN_AGE 7 # 密码到期警告 UID_MIN 1000 # 用户最小UID范围 UID_MAX 60000 # 用户最大UID范围 SYS_UID_MIN 201 # 系统用户最小UID SYS_UID_MAX 999 # 系统用户最大UID


2、修改用户密码passwd

1)passwd [选项] 用户名

2)查看密码状态 passwd -S 用户名

lamp PS 2013-01-06 0 99999 7 -1 用户名设定时间2013-01-06 密码修改间隔时间 0 ;密码有效期(7) 密码不失效(-1)


3)锁定和解锁用户

passwd -l 用户名 #锁上用户 passwd -u 用户名 #解锁用户


4)使用字符串作为用户的密码(方便shell编程)

echo"123"|passwd -stdin 用户名


3、 修改用户信息usermod+修改用户密码状态chage

1)修改用户信息usermod [选项] 用户名

-u UID 修改用户的UID号 -c 用户说明:修改用户的说明 -g 组名:修改用户的初始组 -G 组名:修改用户的附加组 -L: 临时锁定用户 -U:解锁锁定用户


2)chage [选项] 用户名

-l 列出用户的详细密码状态 -d 日期:修改密码最后一次的更改日期(shadow的第三字段) -m 天数:两次密码修改间隔(第四) -M 天数:密码有效期(第五字段) -W 天数:密码过期前警告天数(6) -I 天数:密码过期后宽限天数(7) -E 日期:账号失效时间(8)

例子:chage -d 0 用户名 这个命令将密码修改日期归零(shadow第三段),如此用户一登录就需要修改密码


4、删除用户userdel+用户切换命令:su

1)userdel [-r] 用户名 (通常需要加入-r选项) 选项:

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


2)查看用户ID id 用户名


3)su 用户身份切换 env——查看当前的环境变量 su [选项] 用户名

-: 选项只使用’-'代表连带用户的环境变量仪器切换 -c :仅执行一次命令,不切换用户身份

例子:su - root -c “useradd user3” 不切换成root 执行useradd命令


四、用户组管理命令

1、groupadd [选项] 组名

选项:

-g GID 指定组ID


2、修改用户组:groupmod [选项] 组名

选项:

-g GID -n 新组名

例子:groupmod -n testgrp group1


3、删除用户组:groupdel 组名

如果组中有初始用户,该组不能删除 如果组中只有附加用户,该组可以删

useradd -g tg lamp useradd -G tg lamp1 生成两个用户的同时,一个以-g指定初始组为tg,就不会再产生一个名为lamp的初始组了。而另一个以-G指定附加组,会新建一个名为lamp1的初始组和一个tg的附加组

userdel -r lamp groupdel tg 如果需要删掉tg这个组,需要先删去其初始用户,附加用户不影响组的删除


4、把用户添加到组中或者从组中删除

gpasswd [选项] 组名

-a 用户名 把用户加入组 -d 用户名 把用户从组中删除



最新回复(0)