Linux系统用户与组的基本命令

用户和组的管理主要是出于对人员的管理,在多用户多任务分时操作系统中;所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和用户密码。用户在登录时键入正确的用户名和密码后,才能进入系统和自己的主目录。用户和组的管理就是要对员工的账号进行不同程度的管理,一个用户属于什么组对应的使用这个组所给予用户的权限,限制了用户对系统的操作,让用户不能“为所欲为”;为了保证安全对那些不能登录系统但需要在后台运行的用户,以非管理员的身份运行;即为系统用户;对那些能够正常使用系统资源的用户称为登录用户;

所谓多用户多任务就是对用户分配一定的资源,避免资源滥用的情况发生;而能够在系统中使用资源和完成任务的实体是应用程序进程;而进程是以发起者的身份来运行的,可以理解为进程的所有者就是发起者;会将发起者的信息标志在进程上;当进程试图访问资源的时候,安全上下文会去比较进程所有者和资源所有者的关系;首先查看进程的所有者是不是资源的所有者,如果是就按照属主的权限来使用资源;如果不是,则判断进程所有者是否属于资源所属组,如果是,按照属组的权限使用资源;如果不是,则直接使用资源的其他人访问权限来使用资源;

用户账号:就是计算机操作者在操作系统中的身份映射;

用户分类:

超级用户(root)

普通用户:

系统用户:为了保证安全,必须要让那些运行在后台的进程或者服务类进程以非管理员的身        份运行;(不能登录系统但需要在后台运行的用户)

登录用户:能够正常使用整个系统资源的用户;

用户的标识:

用户登陆名称:为操作者准备的简单易记的字符标识;

用户的ID(UID):为计算机系统准备的数字标识;

超级用户:ID为0;ID号为0,即便是用户也相当于超级用户;

系统用户与登录用户之间还可以利用用户ID号进行区别;

在centos7的环境下系统用户的ID号为1-999,登录用户的ID号为1000-60000;

在centos5,6的环境下系统用户的ID号为1-499,登录用户的ID号为500-60000;

解析库:/etc/passwd

/etc/group

/etc/passwd:在此文件中的每一行内容都代表一个用户;

格式:name:password:UID:GID:GECOS:directory:shell

name:登录名

password:密码字段,现做在使用shadow机制的系统中,通常使用“x”作为占位符;

UID:用户ID;

GID:此用户主要组的ID;

GECOS:commont,注释类的信息,现在一般都会用来存放用户的说明信息或全名;可以留空;

directory:用户的家目录的路径;

shell:登陆成功后启用的shell,默认登陆shell的启用路径;

[[email protected] wjq]# head-1 /etc/passwd

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

/etc/group:将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。每个用户      都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同      时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的      默认组,而其他组称为附加组。

格式:group_name:password:GID:user_list

group_name:组名

password:组密码占位符,默认为空;

GID:组的ID

user_list:以该组为附加组的用户的列表;

认证库:用户的认证信息库:/etc/shadow

组的认证信息库:/etc/gshadow

/etc/shadow:它由pwconv命令根据/etc/passwd中的数据自动产生

格式:Login name:encrypted password:Date of last password charge:minimum            passwordage:maximum password age:passwordwarning period:password inactivity        period:

login name:用户的登录名;

encrypted password:加了密的密码;

格式:$算法$salt$真正意义的加密密码

如果该位置为!,则表明用户的密码被禁用;

如果该位置为*,则表明该用户为系统用户,不能登录;

如果该字段为空,则表明用户可以无需密码既可登录系统;

Date of last password charge:

相对时间概念,相对于1970年一月一日到最后一次修改密码的那天的天数;

minimum password age:

在多长时间之内无法修改密码,默认值为0;即随时可修改;

如非0,则在这个时间内不可修改,针对普通用户,root用户不受限制;

maximum password age:

在多长时间之后密码过期,这个时间的默认值为99999;即永久有效;

password warning period:

密码过期之前的友善提醒天数。默认为七天

password inactivity period:

密码过期之后的宽限期;默认不启用;默认值-1;

account expiration data:

用户账户密码过期的日期;一旦到了这一天,即使密码还有效也不能在访问系统了,这是一个绝      对过期的期限;

Reserve field:

保留字段,以便日后使用;

/etc/gshadow:

group name:encrypted password:administrators:members

在对用户进行认证采用密码认证机制:

设置密码的一般策略:

1.尽量使用随机字串作为密码;

2.密码的长度一般不要少于八个字;

3.密码中尽量包括大小写字母,数字和标点符号四类字符中的三类;

4.不定期更换,每隔一段时间更换换一个密码;(推荐42天改一次)

在Linux中,保存到认证库最终的密码信息是经过加密保存的;

hash单向加密算法,抽取原始数据的特征信息,数据指纹;

单向加密算法特征:

1.只要数据相同其加密结果必然相同;

2.无论数据多大,其加密结果定长输出;

3.雪崩效应(修改一个加密内容结果千差万别);

4.不可逆;

单向加密常用算法:

1.md5:message digest,消息摘要,128bit定长输出;

2.sha1:Secure Hash Algorithm,安全的哈希算法,168bit定长输出;

3.sha224

4.sha256

5.sha384

6.sha512

salt:随机数

/dev/random:仅仅只是从熵池中返回随机数;熵池搜集随机数的设备;熵池的数据是来源于中断所产生的随机数;如果熵池随机数耗尽,则进程被阻塞;什么时候进程有了才拿去运行;

/dev/urandom:先试图从熵池中返回随机数,如果熵池耗尽,则利用伪随机数生成器生产伪随机数;

[[email protected] wjq]# echo"qwerr"|sha512sum

12fdedd678bd067ffb3904228babb25e17211b09478a9436c438bab1dd2545034139c44f705769b397ad22b885d610442b16c960c40ce094cbd9d53adc2e1e50  -

最终认证字符串:算法+salt+密码

在认证库中存放的算法:$6$salt$crytped_password

下面阐述一下关于组的概念

组类别:

管理员组

普通用户组:

系统组

登陆组

组的标识方法:

组名:

方便操作者使用;

组的ID:

为系统操作提供标识;

管理员组:0

系统组:Centos5,6;1-499

Centos7; 1-999

登陆组: Centos5,6;500-6000

Centos7;1000-60000

组也需要认证,所以组也有认证库:/etc/gpasswd

组也需要密码保护:

如果组没有设置密码保护的话就不能随时加入;

以用户为核心,来对组进行分类:

用户的主要组(基本组):primary group,对于用户来讲必须要有,而且只能有一个。

用户的附加组(附属组,额外组):AdditionGroup这样的组可以有,也可以有多个;

根据组所容纳的用户来分:

私有组:组名与用户登录名相同,并且组中只有此用户;

公共组:组中可以包含其他多个不同的用户;

注意:默认情况下,用户的主要组都是其私有组;

组管理命令:

groupadd:新建组账户,添加组;

groupadd [选项] group

-g gid:在创建组账户时,指定组账户的GID,如果不用该选项指定,则系统会选择在组解析文件中不大于60000最大GID加1作为新组的组ID;

-r:创建系统组,意思就是创建GID在1-999(1-499)之间的组;

groupmod:修改组的相关属性信息;

groupmod [选项] group

-g gid:修改组账户ID;

-n NEW_GROUPNAME 旧名;修改组名;

groupdel:删除组账户

groupdel [选项] GROUPNAME

注意:如果某个组是某个用户的主要组,则改组无法删除;

用户管理的命令:

useradd:

useradd [选项] 登录名;

系统为我们改了很多东西,具体保存在配置中(/etc/defaultsfile)

/etc/default/useradd

/etc/login.defs

/etc/skel

以上三个文件和目录能够帮助管理员在未指定任何选项时,也能创建用户,为用户赋予默认的属性;

选项:

-c:--comment ‘COMMENT‘在创建用户时,为用户添加注释信息,一般为全名;

-d:--home PATH/TO/HOME_DIR,在创建用户的时候为用户提供家目录的绝对路径,被指定的目录应该是事先不存在的目录;

[[email protected] ~]# useradd -d /usr/wq wq

-E:在创建用户时,为用户指定主组;(主组只能有一个)

-G:--groups GROUP1[,Group2,…[,GROUP3,…[…]]]在创建用户时添加附加组(把用户添加到该组下);

[[email protected]/]# adduser -s /bin/sh -G aAc,aAC wq

-m:--creat-home 强制性的为用户创建家目录;

-M:在创建用户时绝对不会创建用户的家目录;即使在

/etc/login.defs中CREATE_HOME的值为yes时也不创建;

-r:创建系统用户;

-u:--uid UID,在创建用户的时候,为用户指定UID,这个UID可以超过60000的界限;

-s:--shell,SHELL,/PATH/TO/SHELL;如/bin/csh在创建用户时,为用户指定默认shell;必须使用绝对路径;可以使用

[[email protected]]# cat /etc/shells查看shell路径;

-D:显示或修改用户默认属性值;

-s:直接修改默认属性文件中的用户指定shell;

[[email protected] wjq]#useradd -D -s /bin/csh

[[email protected] wjq]# cat/etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/csh

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

[[email protected]]#tail -n1  /etc/{passwd,group,shadow,gshadow}

==> /etc/passwd <==

d:x:1003:1003::/home/d:/bin/bash

==> /etc/group <==

d:x:1003:

==> /etc/shadow <==

d:!!:17243:0:99999:7:::

==> /etc/gshadow <==

d:!::

[[email protected] wjq]#

usermod:

usermod [选项] 登录名

选项:

-c:修改用户注释信息;

-g:修改用户主要组;

-G:添加附加组,使用-G后修改用户的附加组为列表中的组。将用户追加到某些组中;

-a:在原有附加组的基础上再增加附加组,只能跟-G一起用;

-d:修改用户的家目录;-m,在-d的同时使用-m把原来家目录里的文件一起移动到新的家目录里头去;

-l:改名,更改用户账号的登录名;

-s:修改用户账户的登陆shell,要加绝对路径;

-u:修改账户的UID;

-L:锁定用户密码;

-U:解锁用户密码;

使用方式与useradd相似;

userdel:删除用户账户

userdel [选项] 登录名

选项:

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

[[email protected] wq]# userdel -r wq

用户认证相关命令:

passwd:设置查看用户的密码信息的命令(密码锁定后为!号)

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

1.如果省略用户名,意味着更改当前登录用户的密码;

2.如果指定用户名,更改指定用户的密码只能是root使用;

选项:

-l:--lock;锁定用户密码;

-u:--unlock;解锁用户密码;

注意:相比较usermod –L|-U,其优先级更高,如果使用usermod –L锁定密码,可以使用passwd –u解锁,而使用passwd –l锁定密码,无法使用usermod –U解锁;

-d:--delete,删除用户密码,将/etc/shadow文件中第二字段清空;

-S:查看用户的密码状态;

--stdin:借助于管道,将输入数据流当作标准输入信息送给passwd命令;

#echo “pasdff”|passwd –stdin USERNAME(更改密码操作)

组认证相关命令:

gpasswd [选项] groupname

选项

-a:--adduser,向名为group的组中添加用户user;

-d:从名为group的组中删除user;

其他命令:

su:切换用户身份;

su username:部分切换,半切换,不会重新读取目标用户的配置文件,因此用户并没有登陆行为,所以工作环境不初始化;

su – username:登陆式切换,在切换用户时会重新读取目标用户配置文件,并且初始化工作环境;

相当于su –l username

-c COMMAND:并不会切换用户身份,而是以目标用户的身份执行某命令;

使用su命令时,从root切换到其他普通用户,不需要密码,但普通登录用户进行切换时必须给出目标用户密码,否则切换失败;

进行用户切换之后,不要连续切换,而是用exit命令,返回之前的用户;

su – root –c ls /root

newgrp GROUPNAME :临时更改当前登录的主要组;使用exit返回之前的状态;

id:显示真实的有效的用户和组的ID

真实的ID:在/etc/passwd定义的用户的UID和GID;

有效的ID:当前生效的用户的UID和GID;

Id [option] 。。。[user]

-u:显示有效的UID;

-g:显示有效的GID;

-n:显示名字;

-G:显示用户所有组的ID;

chsh:修改用户的默认shell,相当于usermod –s;

时间: 2024-10-04 19:02:29

Linux系统用户与组的基本命令的相关文章

笔记-linux系统用户与组

前言 为什么创建用户和组 用户和组的分类 用户和组主要配置文件 用户管理 组管理 前言 资源分派的3A认证 Authentication:认证   确认身份 Authorization:授权    给什么样的权限 Accouting|Audition:审计  记录行为 为什么创建用户和组 用户 在linux系统中认证是用用户来验证. 用户名+口令=令牌 有了不同等级的令牌就可以出入不同的关卡. 在系统中每一个用户都有自己的一个id号·这个id号是系统用来标识用户的主要凭证 组group 基于某种

Linux系统用户、组和权限及管理

初学Linux,现将对用户.组和权限及管理做了一些整理,希望大家相互学习! 用户: 即在系统内将有限的资源在多个使用者之间进行分配的一个系统组件: 用户分类:Linux环境中用户一般分为管理员和普通用户: 管理员(root)是系统中的超级用户,被授予对系统资源所有的访问权限,可以对其它其它用户及组进行管理: 普通用户又分为系统用户和登录用户: 系统用户:仅用于运行服务程序,保障系统正常运行: 登录用户:系统资源的正常使用者,访问资源的权限需要Root管理指定: 用户ID(User ID UID)

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.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. 2.取出最后登录到当前系统的用户的相关信息. 3.取出当前系统上被用户当作其默认shell的最多的那个shell. 4.将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中. 5.取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分. 6.列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存

linux系统-用户管理-概念及原理

linux系统-用户管理-概念及原理 一 相关概念 1 /etc/passwd 的文件格式:用户名:密码位:用户标识号:组标识号:注释等相关描述:宿主目录:默认的shell,列如 chengzhi:x:500:500:chengzhi-CentOS:/home/chengzhi:/bin/shell 2 /etc/shadow 的文件格式:用户名:md5加密的密码(md5是单向不可逆的算法,固定长度):最后一次修改的时间:最大时间间隔:最小时间间隔:警告时间:闲置时间:失效文件:标志,前面两项比

linux系统-用户管理-常用命令

linux系统-用户管理-常用命令 一 用户 1 useradd 用户名 [-参数].. 2 passwd 改密码 3 usermod 修改用户的信息 [-G 添加用户到用户组] [-L禁用用户][-U恢复用户] 二 用户组 1 groupadd 组名 [-参数] 添加用户组 2 groupdel  删除用户组 3 groupmod 设置信息 三 用户与用户组 1 添加用户到用户组:gpasswd -a 用户组 用户 2 用户组删除用户:gpasswd -d 用户 3 设置用户组管理员:gpas

Linux系统用户与用户组介绍

一:Linux多用户多任务介绍 Linux/Unix是一个多用户,多任务的操作系统:在介绍Linux账号及账号组管理之前,先简单了解下多用户,多任务操作系统的基本概念. Linux的单用户多任务 鉴于大家对windows比较熟悉,因此先以windows系统为例阐述.当我们以管理员账号administrator用户登录windows系统后,可能需要编辑word文档内容,但在编辑文件的过程中,又可能会同时打开音乐播放器听音乐:同时还可能会打开MSN/QQ等一些程序.其中编辑word文档.开播放器,开

linux系统用户以及用户组管理

用户组管理 1.   groupadd 功能说明:新建群组. 语 法:groupadd [-g gid [-o]] [-r] [-f] [群组名称] 补充说明:groupadd 可指定群组名称来建立新的群组帐号.需要时可从系统中取得新群 组值. 参 数: -g <群组识别码>  设置欲使用的群组识别码,group’s id. 实例 : 不加-g 则按照系统默认的gid创建组,跟用户一样,gid也是从500开始的 -g选项可以自定义gid 2. groupdel 功能说明:删除群组. 语 法:g

Linux中用户,组及权限的概念及相关命令

Linux的用户.组和权限管理 用户: 计算机的资源是有限的,但使用者有很多,为了能够实现这些使用者彼此之间在资源上进行隔离而保证各使用者的文件得到保护,并且我们让主机能够认定这个使用者的确是他所声称的那个使用者,所以我们必须要在整个系统上完成两种机制,1.认证机制Authertication,2.授权机制Authorization,3审计机制 Audition. 用户类别: 管理员用户:root 普通用户:分系统用户和登录用户两种 用户的标识:UserID,UID,范围16bits的二进制数字