Linux学习笔记(12)用户和用户组管理

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

1 用户信息文件

(1)用户信息文件/etc/passwd

vim命令显示该文件的内容:

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

可以发现,该文件的每一行共有7个字段。其中:

第1个字段是用户名称;

第2个字段是密码标志;

第3个字段是UID(用户标志),其中0表示超级用户(当普通用户的UID改为0时,服务器将该用户视为超级用户)。1~499为系统用户(伪用户),不能登陆,也不能删除,500~65535为普通用户,因此,新建的第一个用户的UID即为500。

第4个字段为GID(用户初始组ID)。

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

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

第5个字段为用户说明。可以添加,也可以不添加。

第6个字段为家目录。普通用户的家目录一般为/home/用户名/,超级用户的家目录为/root/。

第7个字段表示登陆之后的Shell。Shell是Linux的命令解释器,除了标准的Shell是/bin/bash之外,如果暂时禁用用户时,可将其写为/sbin/nologin。

(2)影子文件/etc/shadow

1)/etc/shadow的内容:

root:$6$NvfaINezKBg3Cqn7$bB5im5NRggTOa45clyXAXjud4YDhyDlTUgBfqy51UieAx1aUOreJCyPkoaG4MRUkSJGp2Xd9lnqXPIHEfM.4A0:16363:0:99999:7:::

bin:*:15980:0:99999:7:::

daemon:*:15980:0:99999:7:::

可以发现,影子文件由9个字段组成。其中:

第1个字段表示用户名。

第2个字段表示加密密码。CentOS 6.5已经加密算法从MD5升级为SHA512散列加密方法。如果密码是"!!"或"*"代表没有密码,不能登陆,即为伪用户。

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

第4个字段为两次密码修改设定的间隔时间(该时间基于与第3个字段)。

第5个字段表示密码有效期(和第2字段相比)。

第6个字段表示密码修改到期前的警告天数(和第5字段相比)。

第7个字段表示密码过期后的宽限天数(和第5字段相比)。

第8个字段表示账号失效时间(要用时间戳表示)。其中0表示密码过期后立即失效,-1表示密码永远不会失效。

第9个字段保留。

2)时间戳的换算

把时间戳换算为日期,其命令为:

[[email protected] ~]# date -d "1970-01-01 16461 days"

Mon Jan 26 00:00:00 CST 2015

将日期换算为时间戳,其命令为:

[[email protected] ~]# echo $(($(date --date="2015/01/26" +%s)/86400+1))

16461

(3)组信息文件和组密码文件

1)组信息文件/etc/group

[[email protected] ~]# vim /etc/group

root:x:0:

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

sys:x:3:bin,adm

adm:x:4:adm,daemon

从组信息文件中可以看出,共有4个字段。

第1个字段为组名;

第2个字段为组密码标志(组密码不常用);

第3个字段为GID(组ID);

第4个字段为组中附加用户。

2)组密码文件/etc/gshadow

[[email protected] ~]# vim /etc/gshadow

root:::

bin:::bin,daemon

daemon:::bin,daemon

sys:::bin,adm

adm:::adm,daemon

组密码文件也具有4个字段:

第1个字段为组名;

第2个字段为组密码;

第3个字段为组管理员用户名;

第4个字段为组中附加用户。

2 用户管理相关文件

1)用户的家目录

普通用户的家目录一般为/home/用户名/,所有者和所属组均为此用户,权限为700。

超级用户的家目录为/root/,所有者和所属组都是root用户。如果将普通用户修改为超级用户时,普通用户的家目录不会改变。

2)用户的邮箱

新建用户的邮箱的路径一般为/var/spool/mail/用户名。

3)用户模板目录

用户的模板目录为/etc/skel,每创建一个用户,用户的家目录都会从该目录下拷贝。

3 用户管理命令

(1)useradd

1)格式为:useradd [选项] 用户名

其中:-u(UID)表示手工指定用户的UID号,-d(家目录)表示手工指定用户的家目录,-c(用户说明)表示手工指定用户的说明,-g(组名)表示手工指定用户的初始组,-G(组名)表示指定用户的附加组,-s(Shell)表示手工指定用户登录的shell,默认为/bin/bash。

2)添加默认用户

例:添加默认用户ws:

[[email protected] ~]# useradd ws

该操作修改了用户的信息文件,可通过如下命令查看:

[[email protected] ~]# grep ws /etc/passwd

ws:x:500:500::/home/ws:/bin/bash

[[email protected] ~]# grep ws /etc/shadow

ws:!!:16436:0:99999:7:::

[[email protected] ~]# grep ws /etc/group

ws:x:500:

[[email protected] ~]# grep ws /etc/gshadow

ws:!::

[[email protected] ~]# ll -d /home/ws/

drwx------. 2 ws ws 4096 Jan  1 20:26 /home/ws/

[[email protected] ~]# ll /var/spool/mail/ws

-rw-rw----. 1 ws mail 0 Jan  1 20:26 /var/spool/mail/ws

例:添加指定用户:

[[email protected] ~]# useradd -u 550 -G root,bin -d /home/ws1 -c "test user" -s
> /bin/bash ws1

其中"\"表示换行。

3)用户默认文件

① /etc/default/useradd

[[email protected] ~]# vim /etc/default/useradd

# useradd defaults file

GROUP=100                            #用户默认组

HOME=/home                         #用户默认家目录

INACTIVE=-1                            #密码过期宽限天数(shadow第7个字段)

EXPIRE=                                   #密码失效时间

SHELL=/bin/bash                     #默认shell  

SKEL=/etc/skel                         #模板目录

CREATE_MAIL_SPOOL=yes     #是否建立邮箱

② /etc/login.defs

PASS_MAX_DAYS   99999            #密码有效期

PASS_MIN_DAYS   0                    #密码修改间隔

PASS_MIN_LEN    5                    #密码最小位数

PASS_WARN_AGE   7                   #密码到期警告

UID_MIN          500             #最小和最大UID范围

UID_MAX          60000

ENCRYPT_METHOD SHA512         #加密模式

(2)修改用户密码

命令格式

passwd [选项] 用户名

用户修改自己的米吗时只需输入passwd即可。其中-S表示查询用户密码状态(仅root可用),-l表示暂时锁定用户, 实际操作是在/etc/passwd文件的密码前加上了感叹号"!!",-u表示解锁用户,--stdin表示可通过管道输出的数据作为用户的密码(shell编程常用到)。

(3)修改用户信息usermod及修改用户密码状态chage

1)usermod命令格式

usermod [选项] 用户名

其中,-u表示修改用户UID,-G表示修改用户的附加组,-c表示修改用户说明,-L表示临时锁定用户,-U表示解锁用户锁定。

2)chage命令格式

chage [选项] 用户名

其中,-l选项表示列出用户的详细密码状态,-d(日期)表示修改密码最后一次更改日期(shadow第3字段),-m(天数)表示两次密码修改间隔(shadow第4字段),-M(天数)表示密码有效期(5字段),-W(天数)表示密码过期前的警告天数(6字段),-I(天数)表示密码过期后的宽限天数(7字段),-E(日期)表示账号失效时间(8字段)。

例:

chage -d 0 ws            #该命令其实是将密码修改日期归0,这样用户一登陆就要修改密码

(4)删除用户userdel和用户切换命令

1)userdel命令格式

userdel [-r] 用户名

其中,-r选项表示删除用户的同时删除用户家目录,也可以手工修改文件删除用户名。

2)切换命令格式

su [选项] 用户名

只使用"-"选项代表连带用户的环境变量一起切换,-c表示仅执行一次命令,而不切换用户身份。

例:不切换root,但执行useradd命令添加user1用户:

su - root -c "useradd user1"

4 用户组管理

1)添加用户组:groupadd [选项] 组名

其中,-g表示指定GID。

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

其中,-g表示修改组ID,-n表示修改组名(一般不建议修改)。

例:将组名ws修改为wstest:

[[email protected] ~]# groupadd tg

[[email protected] ~]# groupmod -n wstest tg

3)删除用户组:groupdel 组名

注意:如果组中有初始用户,不能删除该组,如果是附加用户,则不影响组的删除。

4)把用户添加入组或从组中删除

gpasswd [选项] 组名

其中,-a表示将用户加入组,-d表示将用户从组中删除。

例:新建一个用户ws1,将其加入wstest组中,然后删除:

[[email protected] ~]# useradd ws1

[[email protected] ~]# echo "ws1" | passwd --stdin ws1

Changing password for user ws1.

passwd: all authentication tokens updated successfully.

[[email protected] ~]# gpasswd -a ws1 wstest

Adding user ws1 to group wstest

[[email protected] ~]# gpasswd -d ws1 wstest

Removing user ws1 from group wstest
时间: 2024-08-12 10:41:32

Linux学习笔记(12)用户和用户组管理的相关文章

Linux学习笔记(十一)用户组管理 、用户管理

一.linux和windows互传文件 目前我所学到的linux与windows互传文件的方法有两种: yum install -y lrzsz输入sz +文件可以将linux文件传输到windowsrz 则可以选择windows文件传输到linux(这个方法可以用于xshell,putty不支持)2.xftpxshell的另一个组件,可以图形化互传文件.下载链接https://www.netsarang.com/products/xfp_overview.html 二.用户配置文件和密码配置文

Linux学习笔记:用户的权限管理

在上周清明假期期间,我们仍然在紧张的学习中,今天我们学习了用户的权限管理,用户的权限管理顾名思义即为用户在使用操作系统时所能使用的权限及管理用户使用相应的命令为用户添加相应的权限,其中用户的权限分为普通权限,特殊权限及文件的特殊权限. 以下即为本堂课所学内容整理记录: 普通权限: 进程安全上下文: 1.判断进程的所有者是否为想要操作的文件的属主,如果是,就按照属主的权限进行授权: 如果不是,就转到第2条: 2.判断进程的所有者是否为想要操作的文件的属组中的成员,如果是,就按照属组的权限进行授权:

Linux学习7之用户和用户组管理--用户配置文件

一.用户信息文件--/etc/passwd [root@localhost ~]# vim /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 sync:x:5:

Linux学习笔记(6)-工作管理

什么是工作管理 工作来自job命令的翻译,job命令可以查看后台工作的进程.举例来说什么是工作管理,当你要打包一个比较大的目录时,很耗时间,但是你同时又需要使用别的命令.你会想我可以到开几个终端进行登录.在/etc/security/limits.conf里面可以设定使用者同时可以登入的连接数,如果设为1,那不是没辙了?由于耗时的打包命令并不需要与用户进行交互,可不可以让程序在后台打包呢?答案是可以的. 将进程放入后台运行 使用"&"符号让命令在后台工作 #tar -zcf e

Linux学习笔记(5)-进程管理

进程简介 进程是正在执行的一个程序或命令,每一个进程都有自己的地址空间,并占有一定的系统资源.感性的认识,进程就是一个正在运行的程序 进程管理的作用 判断服务器的运行状态 查看系统中有哪些进程 杀死进程(很少用,一般会采用正常的关闭手段) 查看系统所有的进程 #ps aux #ps -le 输出信息各字段的含义 USER:进程是由哪个用户产生的 PID:进程的ID号 %CPU:进程占用CPU资源的百分比 %MEM:进程占用物理内存的百分比 VSZ:该进程占用虚拟内存的大小,单位KB RSS:该进

Linux学习笔记:用户和组的管理

用户和组的管理 Linux系统是一个多用户操作系统.任何一个受使用系统资源的用户.都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问,另一方面也可以帮助用户组织文件.并为用户提供安全性保护:实现用户账号管理主要有用户账号添加.删除与修改.以及用户口令的管理和用户组的管理等工作. 下面我们列出Linux系统里用户和组的定义以及进行用户和组的管理操作时所用到的一些命令: Cisco开发的AAA认证体系

linux —— 学习笔记(用户管理与权限控制)

目录:1.用户的创建和管理    2.组的创建和管理 3.文件执行权限的控制 4.不用密码执行sudo 1.用户的创建和管理 用户的创建和管理: useradd.usermod . userdel .passwd     相关文件:/etc/passwd (用户的基本信息包括用户简单描述和目录等)/etc/shadow(密码信息) 例子:useradd -m -d /home/benson -c Comment benson 2.组的创建和管理 组的创建和管理:groupadd . groupm

Linux常用命令(2)-用户和用户组管理

# id # 显示当前用户和用户组的 ID # who # 显示目前登入系统的用户信息 #su 改变使用者身份 [[email protected]/]#su Chenlly [[email protected]/] #cat /etc/passwd 档案结构 root:x:0:0:root:/root:/bin/bash chenlly:x:1000:1000:chenlly,,,:/home/chenlly:/bin/bash sshd:x:114:65534::/var/run/sshd:

Linux命令学习笔记之三用户和用户组操作

用户组 groupadd:添加用户组 基本格式:groupadd -g gid group_name 例子:添加一个gid为501,group_name为dba的用户组, 输入"groupadd -g 501 dba" groupdel:删除用户组 基本格式:groupdel group_name 例子: 1).删除一个名为test的用户组,并且test组不属于任何用户的主组, 输入"groupdel test" 2).删除一个名为test的用户组,并且test组是

linux笔记:用户和用户组管理-用户配置文件

用户信息文件(/etc/passwd): 影子文件(/etc/shadow) 组信息文件(/etc/group)和组密码文件(/etc/gshadow):