用户与用户组管理

目录:

关于/etc/passwd

chfn更改用户附加信息

finger 查看用户附加信息

pwunconv

pwconv

关于/etc/shadow

chage 更改密码各种时间

关于/etc/group和gshadow

用户管理

创建用户useradd

用设置户usermod

删除用户userdel

修改密码 passwd

看用户相关的ID信息 id

切换用户su

查看附加组信息groups

chsh 指定shell

组的管理

创建组groupadd

更改组属性groudmod

删除组groupdel

成员管理groupmems(root)

组密码及组管理员gpasswd

关于/etc/passwd

用户与权限管理是linux基础中非常重要的基础,我们必须将他们学号,采用可能再将来我们的工作遇到问题时,才能更好的去解决问题,在我们了解用户管理之前,我们先了解一下几个文件,毕竟linux的哲学思想就是“一切皆文件”嘛!

1 /etc/passwd:用户及其属性信息(名称、 UID、主组ID等)
2 /etc/group:组及其属性信息
3 /etc/shadow:用户密码及其相关属性
4 /etc/gshadow:组密码及其相关属性

这几个文件对于用户管理无比重要,因为它们记录着有关用户的所有信息,在/etc/passwd中,有:

1 login name:登录用名(wang)
2 passwd:密码 (x)
3 UID:用户身份编号 (1000)
4 GID:登录默认所在组编号 (1000)
5 GECOS:用户全名或注释
6 home directory:用户主目录 (/home/wang)
7 shell:用户默认使用shell (/bin/bash)

看到这些信息你觉得重不重要嘞,当然,我们的密码并不是真正在这里面存放着这个文件里,这是因为这个文件时所有用户都可以进去的,虽然我们的密码是经过加密的,但是还是无法保证有些牛人对密码进行破解,所以我们在设置密码的时候一定要设置的复杂些,最好使用数字,字母,特殊字符,最好保证自己的密码足够长,来保证自己的机器足够安全

不过,话说回来,现在我们的密码已经很难破解了呢,为啥呢,因为在2009年的时候,我国的一个牛人王小云将MD5加密算法破解了,而后,Linux采用了加密性能更强的sha512加密算法,当然加密算法不值一种,但是我们的linux好多都是默认sha512这种加密算法。我们也可以修改我们的加密算法authconfig --passalgo=sha256 –update就可以更改我们的加密算法,我们可以通过man 3 crypt来查看我们可以采用的加密算法less /etc/login.defs跳到最后一行我们可以查看我们采用的那种加密算法。

讲到/etc/passwd,我们先讲一个命令,可以修改我们linux机器上的附加信息,非常好用。

更改用户附加信息

命令:chfn
格式:chfn [option] username
选项:
         -f    full-name:修改全名
         -o    office :修改办公室信息
         -p    office-phone:修改办公电话
         -h    home-phone:修改个人电话            

当然了,我们也可以通过直接敲入 chfn username 可以进行交互式修改信息。

我们可以通过finger命令来查看我们用户的具体信息格式:finger username

 

pwunconv将密码保存到/etc/passwd中,删除/etc/shadow文件

pwconv(默认) 将密码映射到了/etc/shadow

finger username (默认没有安装) 查看用户的信息

关于/etc/shadow

Next,我们来说下关于/etc/shadow里面的东西:

登录用户名

  用户密码:一般用sha512加密

  从1970年1月1日起到密码最近一次被更改的时间

  密码再过几天可以被变更(0表示随时可被变更)

  密码再过几天必须被变更(99999表示永不过期)

  密码过期前几天系统提醒用户(默认为一周)

  密码过期几天后帐号会被锁定

  从1970年1月1日算起,多少天后帐号失效


话说回来,这个文件才是保存的用户的密码信息,非常重要,我们先看一下它的权限

我就问你可怕不可怕,我们所有人都无法访问这个文件,所以,在linux,这个文件是有多重要,我们惊奇的发现就连root都没有访问权限,不过嘛,root生起气来连自己都删,所以权限什么的对root一般无效。接下来我们在介绍一个命令,用于修改密码的各种事件,都有那些时间呢,指定密码的上次修改时间(yyyy-mm-dd),指定账户的过期时间,密码过期之后多少天帐户过期,最小存活时间,最大存活时间,设置密码过期前的提醒时间,我们通过一个命令:chage –l username来查看用户的以上的密码时间信息,当然,它可以修改上面的各种信息的呢。

修改密码信息

1 命令:chage
2 格式:chage [option] username
3 选项:
4            -d 指定密码的上次修改时间(yyyy-mm-dd)
5            -E 指定账户的过期时间
6            -I 密码过期之后多少天帐户过期
7            -m 设置最小存活时间
8            -M 设置最大存活时间
9            -W 设置密码过期前的提醒时间

我们也可以使用chage username交互式修改用户的密码策略

1 vipw = vim /etc/passwd
2 vipw -s = vim /etc/shadow
3 vigr = vim /etc/group
4 vigr -s = vim /etc/gshadow
5 pwck 检查/etc/passwd /etc/shadow
6 grpck 检查/etc/group /etc/gshadow

关于/etc/group和gshadow

在linux中,我们有所有者和所属组的概念,一般情况下,我们在添加用户的时候,都会默认的有一个自己的所属组且和自己的用户名称一样(在没有添加参数设置的情况下)。话说,组有什么用呢?想象一下,如果我们在一台服务器上工作,而很多时候都是几个人围着一个项目跑,我们的项目文件该放在那里,使得大家都可以看到,参与,修改呢?这时候就体现出来组的重要性了,我们可以创建一个项目组,凡是参加这个项目的人员都可以加到这个组中去,一起完成一个项目,岂不是美滋滋。

而且,就像我们一个班一样,有班长,有老师,有组长,有学委,在linux中也是一样,我们创建完组之后,可以给组添加管理员,管理员可以对这个组进行各种操作,添加用户,删除用户,等等。这些,一会我会继续介绍,现在我们就看看在这两个配置文件中有些啥东西。

/etc/group

群组名称:就是群组名称

群组密码:通常不需要设定,密码是被记录在/etc/gshadow

  GID:就是群组的 ID

  以当前组为附加组的用户列表(分隔符为逗号)

和用户密码一样,我们的组也是有密码的,主要是,但是为了安全,密码映射的位置是/etc/gshadow中。

/etc/gshadow

群组名称:就是群组名称

  群组密码:

  组管理员列表:组管理员的列表,更改组密码和成员

  以当前组为附加组的用户列表: (分隔符为逗号)

对于用户组的管理,我们一会再说,现在我们先来学习如何创建用户,更改用户信息和删除用户,以及一些其他的查询和更改命令。

用户管理

创建用户

 1          命令:useradd
 2          格式:useradd [option] newuser
 3          选项:
 4                 -u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs
 5                 -o 配合-u 选项,不检查UID的唯一性
 6                 -g GID:指明用户所属基本组,可为组名,也可以GID
 7           -c "COMMENT":用户的注释信息
 8          -d HOME_DIR: 以指定的路径(不存在)为家目录
 9           -s SHELL: 指明用户的默认shell程序
10             可用列表在/etc/shells文件中
11          -G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在
12          -N 不创建私用组做主组,使用users组做主组
13          -r: 创建系统用户 CentOS 6: ID<500, CentOS 7: ID<1000        

我们可以看到,创建用户的参数有很多,这只是其中的一部分,也算是比较重要的呢。我们看到-u选项后面有一个配置文件,在这个配置文件中,设置的是我们在创建用户时的默认信息,包括密码的各种信息,采用的加密算法,UID,GID的范围,初始邮箱,初始的默认权限等。接下来,我们将对一些参数进行了解:

-u 和 –o选项一起来用可以在创建用户时不再检查UID的唯一性,这就意味着我们以这种方式创建用户时可能和其他用户的UID重复,这样的话,当我们在切入新创建的用户时可能导致我们进的是之前已经存在的具有相同UID的用户。

-g选项可以帮助我们在创建用户时直接指定一个用户组为自己的私有组,但是如果这个组不存在的话,就会报错,从而无法创建,因此,我们在指定组的时候,要知道我们指定的组是否存在。

-d选项可以帮助我们在某一个目录下设置自己的家目录

-s选项用来设置我们的登录shell,其实还有一个命令chsh也可以在我们用户创建完成后更改shell。

-G选项可以为我们增加一些附加组,以便我们可以进入到某些目录下进行工作,如果进入多个附加组,我们可以用“,”将附加组隔开

-N选项是一个什么呢,这是一个默认的user组,如果我们在创建用户时加上-N选项,就会把user(GID=100)作为用户的主要组。

我们的用户都是创建过程都是默认执行的,很多信息都是通过默认设置的,比如说我们的提示符,其实我们所创建的家目录里面的隐藏文件都是在/etc/skel/中复制并改变所有者和所属组的呢。

 

默认值设定: /etc/default/useradd文件中

显示或更改默认设置:

1 useradd -D
2 useradd –D -s SHELL
3 useradd –D –b BASE_DIR
4 useradd –D –g GROUP

我们可以通过useradd –D选项来查看我们的默认设置,当然我们还可以更改默认设置(root)

用户设置

 1 命令:usermod
 2 格式:usermod [option] username
 3 选项:
 4   -u UID: 新UID
 5   -g GID: 新主组
 6   -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
 7   -s SHELL:新的默认SHELL
 8   -c ‘COMMENT‘:新的注释信息
 9   -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
10   -l login_name: 新的名字;
11   -L: lock指定用户,在/etc/shadow 密码栏的增加 !
12   -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
13   -e YYYY-MM-DD: 指明用户账号过期日期
14   -f INACTIVE: 设定非活动期限

用户设置是在用户创建后可以进行的活动,好多选项是和用户创建时的选项和功能是一致的我就对不同的选项加以说明。

-l选项可以更改用户名,一个我觉得用起来爽歪歪的选项,想想要是在公司一员工走了,但是他的家目录下还有好多重要文件,我们可以将名字换成其他人的名字使用,这样文件也能保存下来,但是有一点,他的组和无法通过这个选项进行同步。

-L选项和-U选项是一对,我们可以给某个用户的密码上锁,使得该用户无法登陆

-e选项可以设置用户的过期时间,让某一用户到某个时间就无法再使用

-f选项是密码过期后的天数,直到帐户被永久禁用为止

删除用户

1 userdel [OPTION]... login
2 -r: 删除用户家目录

我们可以删除一个账号,如果不加-r选项的话,这个用户的家目录包括邮箱等都不会被删除,如果加上-r选项,就能删除这个账户的家目录等

修改用户密码

1 passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限
2 passwd: 修改自己的密码

 

常用选项:
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码
echo "PASSWORD" | passwd --stdin USERNAME

我们一般用这个命令来更改密码,这个命令每个用户都能使用,但是只有root用户才可以在passwd后面跟上名字,普通用户只能修改密码。当然他还有一下重要选项,我们来介绍一下。

-e选项是为了防止一些用户过于懒惰,设置的初始密码就用初始密码,一点也不改,这样可不好,所以管理员就可以使用这个选项让用户在第一次登录时就去修改密码。

-n,-x,-w,-i选项可以用chage这个命令代替,使用起来很方便,不过在这我们给演示一下passwd的用法。

--stdin选项通常用在我们的脚本批量设置用户中。

看用户相关的ID信息

1 id [OPTION]... [USER]
2   -u: 显示UID
3   -g: 显示GID
4   -G: 显示用户所属的组的ID
5   -n: 显示名称,需配合ugG使用

切换用户

1 su [options...] [-] [user [args...]
2     切换用户的方式:
3     su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
4     su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全
5     root su至其他用户无须密码;非root用户切换时需要密码

    换个身份执行命令:

查看自己的附加组    

命令:groups
格式:groups username

更换shell

命令:chsh
格式:chsh -s /path/shell

组的管理

组的存在对于linux来说很重要,因为我们的很多工作都不是一个人来完成的,为了能使大家在一个区域内共享文件,修改文件,可以让大家都进入待一个组里面,这样就能够合作完成繁重的工作,我们现在说如何创建组:

1 groupadd [OPTION]... group_name
2   -g GID: 指明GID号; [GID_MIN, GID_MAX]
3   -r: 创建系统组
4   CentOS 6: ID<500
5   CentOS 7: ID<1000

对于用户再说,基本上每个人都有必须有一个私有组,可以有零个或多个附加组,我们的很多工作都是在附加组中完成的。

当然我们还可以通过groupmod对属性进行修改,比如更改组名,更改组ID等

组属性修改:

groupmod [OPTION]... group
-n group_name: 新名字
-g GID: 新的GID

当我们不在使用某个组的时候,我们就会删除这个组,删除组的命令如下:

组删除:

 groupdel
 groupdel GROUP

在创建完组以后,我们就要向组内添加新成员,对于root来说可以使用groupmems来管理组成员:

1   groupmems [options] [action]
2   options:
3     -g, --group groupname 更改为指定组 (只有root)
4    Actions:
5     -a, --add username 指定用户加入组
6     -d, --delete username 从组中删除用户
7     -p, --purge 从组中清除所有成员
8     -l, --list 显示组成员列表

  通过上面的参数我们可以看到,root可以通过groupmems来添加,删除和显示组成员,但是如果我们的服务器里面有很多个组的时候还是让root一个人来管理吗,不是的,我们的组还是有组管理员的。组管理员有root在指定或删除,对于一个组来说,组管理员的权利是最大的,如何添加管理员呢,有一个命令gpasswd同时也可以设置组的密码:

1 命令:gpasswd
2 格式:gpasswd [OPTION] GROUP
3 选项:
4   -a user: 将user添加至指定组中
5   -d user: 从指定组中移除用户user
6   -A user1,user2,...: 设置有管理权限的用户列表

我们可以通过-A选项来给一个组添加管理员,管理员可以用gpasswd命令来对这个组进行管理,管理员可以是不在这个组的成员,如果需要,管理员可以将自己增加到组内

对于gpasswd,主要是为了限制其他人来进这个组,如果要进这个组,可以临时切换成组成员,这样,这个人的主要组也会临时变成他所要进组,创建的文件也会是属于他所进的组:

  newgrp命令:临时切换主组

如果用户本不属于此组,则需要组密码

作为一个非组用户想进此组:

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri", "sans-serif" }
h2 { margin-top: 13.0pt; margin-right: 0cm; margin-bottom: 13.0pt; margin-left: 0cm; text-align: justify; line-height: 173%; page-break-after: avoid; font-size: 16.0pt; font-family: "Cambria", "serif" }
h3 { margin-top: 13.0pt; margin-right: 0cm; margin-bottom: 13.0pt; margin-left: 0cm; text-align: justify; line-height: 173%; page-break-after: avoid; font-size: 16.0pt; font-family: "Calibri", "sans-serif" }
p.MsoHeader,li.MsoHeader,div.MsoHeader { margin: 0cm; margin-bottom: .0001pt; text-align: center; border: none; padding: 0cm; font-size: 9.0pt; font-family: "Calibri", "sans-serif" }
p.MsoFooter,li.MsoFooter,div.MsoFooter { margin: 0cm; margin-bottom: .0001pt; font-size: 9.0pt; font-family: "Calibri", "sans-serif" }
p.MsoAcetate,li.MsoAcetate,div.MsoAcetate { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 9.0pt; font-family: "Calibri", "sans-serif" }
span.Char { }
span.Char0 { }
span.Char1 { }
span.2Char
{ font-family: "Cambria", "serif"; font-weight: bold }
span.3Char
{ font-weight: bold }
span.SpellE { }
span.GramE { }
.MsoChpDefault { font-family: "Calibri", "sans-serif" }
div.WordSection1 { }

时间: 2024-10-19 07:39:52

用户与用户组管理的相关文章

Linux学习8---(用户和用户组管理)

1.用户和用户组     用户和用户组概念        用户:使用操作系统的人(Linux支持多个用户在同一时间登陆同一个操作系统)        用户组:具有相同权限的一组用户(Linux系统中可以存在多个用户组)     相关的配置文件        /etc/group:储存当前系统中所有用户组信息            Group:        x        :    123        :    abx,def,xyz            组名称:    组密码占位符:  

Linux 用户和用户组管理

Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也可以帮助用户组织文件,并为用户提供安全性保护. 每个用户账号都拥有一个惟一的用户名和各自的口令. 用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录. 实现用户账号的管理,要完成的工作主要有如下几个方面: 用户

Linux用户及用户组管理

Linux用户及用户组管理 Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户口令.用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录. 实现用户账号的管理,要完成的工作主要有如下几个方面: a.用户账号的添加.删除和修改

[20150529]用户与用户组管理-朱晓扬

用户与用户组管理 Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户口令.用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录. 用户与用户组配置文件 用户账号的管理主要涉及到用户账号的添加.删除和修改. 添加用户账号就是在

【学神】用户及用户组管理

用户及用户组管理 本节所述内容: 用户和组的相关配置文件 管理用户和组 进入单用户模式找回root身份 一.用户和组的相关配置文件 1.用户的分类 (1)根据帐号的位置:本地帐号.远程(域)帐号.LDAP,NIS (2)根据帐号的功能: 超级用户即root用户,UID为0: 普通用户分为系统用户,UID为1-499: 本地用户,UID为500+ 2.组的分类 (1)根据帐号的位置:本地组.远程(域)组. LDAP,NIS, (2)根据帐号的功能: 超级用户组即root用户组,UID为0 普通用户

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

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

文本文件的操作&amp;&amp;用户与用户组管理

文本文件的操作 #输入重定向 tr 'a-z' 'A-Z' hello HELLO world WORLD 重定向后 tr 'a-z' 'A-Z' < file HELLO WORLD #格式化输入内容到文件: #标准输入.标准输出与标准错误 标准输入0(键盘仅读取).标准输出1与标准错误2(显示屏仅写入) 如下例:passwd文件中有标准输出1与标准错误2 只显示标准错误2到显示屏上,标准输出1写入passwd.ok 只显示标准输出1到显示屏上,标准错误2写入passwd.err 查看写入的文

Linux——用户和用户组管理

用户和用户组管理 1.用户和用户组配置文件 /etc/passwd 用户信息的配置文件 /etc/shadow 用户密码信息的配置文件 /etc/group 用户组信息的配置文件 /etc/gshadow 用户组密码信息的配置文件 查看配置文件的帮助说明 1)/etc/passwd 查看配置文件帮助 man 5 passwd There is one entry per line, and each line has the format: account:password:UID:GID:GE

20161108L04-06老男孩linux运维实战培训-Linux系统的用户和用户组管理-04

这一节还是讲的用户和用户组管理 还是重试前面的说了用户时限制的问题 可以用 chage 也可以用 useradd -e chage -l 查看用户的时限等一些信息 也可以用usermod -e 也可以设置时限 这里老男孩说了 有很多命令可以设置一些同样的功能 但我们只要按习惯和喜好用其中一个就好了 不用什么都记住 然后说到 userdel 命令 userdel -r 用户名 把家目录也删除 userdel 用户名 不删除家目录 接下来说到 groupdel 命令 然后是finger 和 chfn

5、用户和用户组管理

<--目录--> 1.理论知识 2.用户和用户组管理 3.源码包安装 [理论知识] 一.用户账户管理 AAA A:Authentication  认证 --> 你是谁? A:Authorization   授权 --> 你能干什么? A:Audit           审计 --> 你干了什么? 二.用户账号UID范围 命令查看 id root 0 ->root 1-499 ->系统用户 >=500 ->普通用户 四.passwd文件格式 root:x