用户和组——Linux基本命令(10)

1.     用户和组的配置文件

Linux用户和组的主要配置文件:

/etc/passwd:用户及其属性信息(名称、UID、主组ID等)

/etc/group:组及其属性信息

/etc/shadow:用户密码及其相关属性

/etc/gshadow:组密码及其相关属性

 

2. /etc/passwd

Linux /etc/passwd文件中每个用户都有一个对应的记录行,它记录了这个用户的一些基本属性。系统管理员经常会接触到这个文件的修改以完成对用户的管理工作。这个文件对所有用户都是可读的。

getent passwd [username] 查看用户passwd的命令

/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段。

使用getent passwd
magedu
可以查看magedupasswd中信息

用户和组——Linux基本命令(10)

其格式和具体含义如下:

用户名:密码:用户标识号UID:组标识号GID:注释性描述:家目录:登录Shell

 

       用户名:

       密码位:x

因为passwd这个文件任何用户都能访问,所以将密码存在里面不安全,一般这一位都是x

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

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

       UID

              每个用户都有一个UIDUID0时,说明是管理员帐户。

             用户和组——Linux基本命令(10)

              CentOS6
1-499
为系统用户,预留

              CentOS7
1-999
为系统用户,预留

       GID

              主要组:每个有且仅有一个主要组,当用户创建时,自动创建一个与用户同名的组作为主要组。

              辅助组:用户可以有零个或多个辅助组。

描述位:

chfn username 设置用户的描述

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

       家目录:

usermod -d /home/magedunew magedu  修改用户家目录

默认的登录Shell

       usermod -s /sbin/nologin
magedu

       chsh -s /sbin/nologin magedu   都可以修改magedushell

       用户和组——Linux基本命令(10)

如果要禁止某个用户登录,可以将它最后一位改为/sbin/nologin

 

 

3. /etc/shadow

只有root能访问

getent shadow [username] 查看用户shadow信息

同样,使用getent shadow magedu可以查看magedushadow中信息

用户和组——Linux基本命令(10)

其各位含义为:

用户名:

密码位:sha512 sha256
md5  $id$salt$password

                            authconfig –passalgo=sha256 –update

              !!:用户被锁定

              用户和组——Linux基本命令(10)

                            usermod -L 锁定用户

                            usermod -U 解锁用户 -p
password

                           用户和组——Linux基本命令(10)

密码上一次的修改日期:(从1970-1-1到修改的时间经过了多少天来表示)

密码最小存活期:(指的是两次修改口令之间所需的最小天数)

密码最大存活期:(指的是口令保持有效的最大天数)

密码过期之前提前多少天提醒用户:(在正确登录时)

密码过期之后多少天帐户过期:(在正确登录时)

帐户过期时间:(自1970-1-1到该天经过了多少天来表示)

保留位:(还没被开发出来)

 

chage -l
username
显示帐户的密码信息

       -d 指定密码的上次修改时间(yyyy-mm-dd)

               -d 0 则强制用户下次登录时必须修改密码

        -E 指定账户的过期时间

        -I 密码过期之后多少天帐户过期

        -m 设置最小存活时间

        -M 设置最大存活时间

        -W 设置密码过期前的提醒时间

chage username 交互式修改用户的密码策略

 

4. /etc/group

getent group [groupname]

用户和组——Linux基本命令(10)

分为以下四位:

       groupname组名

       密码位:x

       gid:

              CentOS6
1-499
为系统组,预留

              CentOS7
1-999
为系统组,预留

       组成员:将该组作为辅助组的成员列表。当成员先把该组当作辅助组,再转成主要组时,不改变。当成员离开该组时,被删除。

   用户和组——Linux基本命令(10)

首先使用groupmems -g group -a username将指定成员加入指定组中。

如图,将lky加入magedu组,使用id可以看到lkylky的主组,magedu为附加组。

使用usermod -g groupname username 修改用户的主组,将lky的主组改成magedu

用户和组——Linux基本命令(10)

组成员没有改变。

用户和组——Linux基本命令(10)

我们再将主组改回lky,删除附加组,此时才消失。因为该成员已经离开该组。

 

5. /etc/gshadow

       getent
gshadow [groupname]

       用户和组——Linux基本命令(10)

       groupname组名

       密码位:

              gpasswd
groupname
设置组密码

              newgrp
groupname(
普通用户)

                     当用户不是该groupname的辅助组成员时,则需要输入密码,成功后临时以主要组的身份加入该组。

                     当用户是该groupname的辅助组成员时,无需输入密码,将临时以主要组的身份加入该组,而其原有的主要组,临时变为辅助组。

       管理员:只能由root任命或撤销,可以同时有多名,以,为间隔。权利:可以修改组密码,可以将用户从该组(辅助组)当中添加或删除。

                      任命  gpasswd -A
username1,username2 groupname

                                         撤消所有管理员:gpasswd
-A “” groupname

                              用户和组——Linux基本命令(10)               


                                  gpasswd
-a libai admin 
往组中增加用户

                                  gpasswd
-d libai admin 
将用户从组中删除

            用户和组——Linux基本命令(10)

    

                                  gpasswd
-r admin
删除组密码

                                  gpasswd
-R admin
限制非辅助组用户可以通过newgrp admin获取主组权限。当前密码被删除替换为!

                                  gpasswd
-M redhat,libai admin 
设置辅助组的成员列表。

 

                                  groupmems
-g admin -a libai 
将指定成员加入指定组中(仅能一次加一个用户到组中)

                                  groupmems
-g admin -d libai 
将指定成员从组中删除

                                  groupmems
-g admin -l
列出指定组的成员列表(辅助组)

                                  groupmems
-p admin
消除指定组的所有成员。

 

       组成员:将该组作为辅助组的成员列表。当成员先把该组当作辅助组,再转成主要组时,不改变。当成员离开该组时,被删除。     

 

6.创建用户删除用户

useradd 创建一个新用户

       -u
uid username
创建用户时指定uid(如不指定则Centos:500-60000, Centos7: 1000-60000)

       -o
-u uid username
创建用户时指定uid(可以与已存在用户的uid相同)

       -g
groupname username
创建用户时指定主组为某个已存在的组。(将不会再创建与用户同名的组)

       -c
…  username 
创建用户时指定描述信息。

              chfn
… username

       -d
path username
指定用户的家目录(确保指定的家目录所在的上级目录要存在,且家目录本身不能存在)

       -s
/sbin/nologin username
指定用户的默认shell

       -G
group1[,group2] username
指定用户的辅助组(附加组)

       -N
username
设置用户的主要组为默认组(users,gid=100)

       -r
username
创建系统用户

   用户和组——Linux基本命令(10)

如图,使用上述方法创建了一个新用户keke

 

创建用户时会有默认值,默认值的信息存放在/etc/default/useradd 文件中。

用户和组——Linux基本命令(10)

由此可以看出,默认组为100,家目录默认在home下,默认shell/bin/csh 等信息。

 

删除用户userdel
[-r] username

        一般都加上-r,可以连同其家目录,mail一同删除

 

7.修改用户信息usermod

usermod -u newuid username    修改用户的UID

       -o
-u newuid username
修改用户的uid(可以与已存在用户的uid相同     

       -aG 加组名,可以追加辅助组而不用覆盖之前的组

       -G
“” username 
usermod -G
primarygroup username
清空用户所有的辅助组

       -g
groupname username
修改用户的主组

       -s
/sbin/nologin username
修改用户的默认shell

       -c
…  username
修改用户时指定描述信息。

              chfn
… username

       -d
/…/path username
修改用户的家目录(不会创建,只修改/etc/passwd当中的家目录信息)

       -m
-d /…/path username
修改用户的家目录信息,并将家目录移动到目的目录并改名。

       用户和组——Linux基本命令(10)

       如图,使用上述方式修改部分信息

 

       -l
newname oldname
修改用户名

       -L 给用户/etc/shadow中的密码位加!使用户被锁定

       -U !拿掉。

       -e
yyyy-mm-dd
设置一个帐户过期时间

       -f
days
指定密码过期之后多少天帐户过期

 

文件编辑:

vipw = vim /etc/passwd 编辑passwd中内容

vipw -s = vim /etc/shadow 编辑shadow中内容

vigr = vim /etc/group 编辑group中内容

vigr -s = vim /etc/gshadow  编辑gshadow中内容

(输入:q退出)

 

pwck 检查用户密码文件的完整性/etc/passwd /etc/shadow

grpck 检查用户组及密码文件的完整性/etc/group /etc/gshadow

 

8.查看用户相关的ID信息

       id username

              -u 显示UID

-un 显示UID名称

              -g 显示GID

              -gn 显示GID名称

              -G 显示用户所数组的ID

              -Gn 显示用户所数组的名称

              用户和组——Linux基本命令(10)


9.用户切换

su switch user用户切换)

       su
username
非登录式切换,即不会读取目标用户的部分配置文件,不改变当前工作目录

       su
– username
登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换

       su
[-] username -c ‘command’
换个身份执行命令,不登录

  用户和组——Linux基本命令(10)

如图,可以直接临时换成natasha用户的身份执行命令

 

10.设置密码

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

passwd: 修改自己的密码

       -l:锁定指定用户

       -u:解锁指定用户

       -e:强制用户下次登录修改密码(或者chage -d 0)

       -n
mindays:
指定最短使用期限

       -x
maxdays
:最大使用期限

       -w
warndays
:提前多少天开始警告

       -i
inactivedays
:非活动期限

       –stdin:从标准输入接收用户密码(就是设置密码时,密码会显示出来)

              echo “PASSWORD” | passwd
–stdin USERNAME
因此也可以使用管道将密码传输过去,如图,将xinmima作为新的密码设置成了natasha的密码。

        用户和组——Linux基本命令(10)


11.

groupadd 创建组

-g gid groupname 创建指定gid的组

       -r groupname 创建系统组

groupmod 修改组

       -n newgrpname oldgrpname  修改组名

       -g newgid groupname 修改gid

groupdel groupname 删除组

groups username 查看指定用户属于哪些组

 

****重点总结****

groupmems -g groupname -l  查看组里有哪些人

groups username  查看一个人属于哪些组

用户和组——Linux基本命令(10)                

****重点总结****

原创文章,作者:T_endless,如若转载,请注明出处:http://www.178linux.com/82190

(0)
上一篇 2017-07-22 16:35
下一篇 2017-07-22 17:04

相关推荐

  • 设计模式(四)原型模式Prototype(创建型)

    1.   概述 我们都知道,创建型模式一般是用来创建一个新的对象,然后我们使用这个对象完成一些对象的操作,我们通过原型模式可以快速的创建一个对象而不需要提供专门的new()操作就可以快速完成对象的创建,这无疑是一种非常有效的方式,快速的创建一个新的对象。 例子1:孙悟空拔下一嘬猴毛,轻轻一吹就会变出好多的孙悟空来。 例子2:寄个快递下面是一个邮寄快…

    Linux干货 2015-06-25
  • CentOS7的启动及Systemd的管理✧

    CentOS7的启动流程     POST–>Boot Sequence–>Bootloader–>kernel+initramfs(initrd)–>rootfs–>/sbin/init    &n…

    Linux干货 2016-09-21
  • CentOS6.9系统上编译安装httpd.2.2.32

    本文所做的所有操作是在一部新安装的CentOS6.9系统上。 1.环境与配置 环境说明:VMware上安装的CentOS6.9系统,两张系统盘做成的yum源 配置:编译生成的所有的文件都存放在/usr/local/httpd22/这个目录下 2.安装GCC编译器 [root@localhost ~]# yum grouplist | grep “Develo…

    2017-04-20
  • IO重定向

    I/O(IN Out)重定向(本来位置被改到别处位置):            指的改变默认输入输出的位置    程序:数据+指令  IO          可用于输入的设备:文件     &nbsp…

    Linux干货 2017-04-03
  • 计算机的组成及功能

    计算机的组成及功能 计算机由CPU、存储器、输入设备、输出设备等部件组成。 CPU:为计算机的中央处理器,是计算机的核心部分,由运算器和控制器组成。 运算器:CPU中用于进行算术运算和逻辑运算的部件。 控制器:整个CPU的指挥中心,控制程序中指令读取、解析并产生相应的操作控制信息保证各程序的有序执行。 存储器:计算机中用来存储数据、程序等信息的部件,并在需要…

    Linux干货 2017-07-02
  • vim文本编辑器和sed用法汇总

    1. Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进 和增加了很多特性。 VIM是纯粹的自由软件。 2. vim的三种工作模式: (1) 编辑模式:也叫命令模式,可以执行个各种快捷键的命令 (2) 插入模式:在文本文件中可以直接输入内容。 (3) 末行模式:红帽官方叫扩展命令行模式vim内置命令行接口  注:vi…

    Linux干货 2016-08-12