linux用户管理(二)

用户信息的更改

方式:

usermod 参数 用户

-l 新用户名 原用户名 更改用户名

-u 更改用户uid

-g 更改用户gid

-G 更改用户附加组

-aG 添加多个用户附加组(系统默认只能有一个附加组)

-c 更改用户说明

-d 更改用户家目录

-s 更改用户shell

-L 冻结帐号(冻结后其他用户不能切换到被冻结的帐号)

-U 解锁帐号

实践:

新建用户userli

linux用户管理(二)_第1张图片

将用户名userli修改为studnet

[root@foundation74 kiosk]# usermod -l student userli

//在/etc/passwd下查看用户信息

student:x:1001:1001::/home/userli:/bin/bash    ##用户名被修改


将用户id改为1002

[root@foundation74 kiosk]# usermod -u 1002 student

//在/etc/passwd下查看用户信息

student:x:1002:1001::/home/userli:/bin/bash    ##用户id被修改

将用户组id修改为1000

[root@foundation74 kiosk]# usermod -g 1000 student

//在/etc/passwd下查看用户信息

student:x:1002:1000::/home/userli:/bin/bash    ##用户组id被修改

修改附加组id为1234

[root@foundation74 kiosk]# usermod -G 1234 student

//在/etc/group下查看用户组信息

groupli:x:1234:student    ##在1234的附加组下看到了student

为用户体添加多个附加组

[root@foundation74 kiosk]# usermod -G 1001 student    ##直接使用-g命令,会覆盖前面的附加组

[root@foundation74 kiosk]# id student

uid=1002(student) gid=1000(kiosk) groups=1000(kiosk),1001(userli)   ##1234被覆盖

使用 -aG 命令

[root@foundation74 kiosk]# usermod -aG 1234 student

[root@foundation74 kiosk]# id student

uid=1002(student) gid=1000(kiosk) groups=1000(kiosk),1234(groupli),1001(userli)  ##添加多个附加组成功

更改用户说明

[root@foundation74 kiosk]# usermod -c "hello world" student

//在/etc/passwd下查看用户信息

student:x:1002:1000:hello world:/home/userli:/bin/bash

修改用户家目录

[root@foundation74 kiosk]# usermod -d /home/userlee student

//在/etc/passwd下查看用户信息

student:x:1002:1000:hello world:/home/userlee:/bin/bash

修改用户shell

[root@foundation74 kiosk]# cat /etc/shells     ##首先查看用户shell

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

修改shell

[root@foundation74 kiosk]# usermod -s /bin/sh student

student:x:1002:1000:hello world:/home/userlee:/bin/sh



2.给用户授权

意义:管理员作为特权用户,很容易误操作造成不必要的损失。所以健康的管理方法是在Linux服务架构好后,可授权普通用户协助完成日常管理。

过程:

1.以useradd命令为例,首先找到which useradd 命令在系统中的位置

2.在系统中超级用户可以下放给普通用户不能执行的操作给普通用户

下放权力的配置文件:/etc/sudoers

3.超级用户执行visudo进入编辑/etc/sudoers模式

## Allow root to run any commands anywhere

root    ALL=(ALL)      ALL                            ##找到root这一行

## Allows members of the 'sys' group to run networking, software,

## service management apps and more.

# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

//在root    ALL=(ALL)      ALL  后添加

kiosk foundation74.ilt.example.com = (root) NOPASSWD: /usr/sbin/useradd

1                                  2                                       3                                   4

字段1:获得权限的用户

字段2: 主机名= (获得到的用户身份)命名

字段3:NOPASSWD表示用户调用sudo命令是不需要自己的密码

字段4:赋予给用户的命令(命令的绝对路径)

配置完毕后,如果想知道哪些命令是你当前用户能够执行或禁止的,可以切换至该用户身份,然后通过sudo -l查看,切换到kiosk用户

[kiosk@foundation74 ~]$ sudo -l

Matching Defaults entries for kiosk on this host:

...

User kiosk may run the following commands on this host:

    (root) NOPASSWD: /usr/sbin/useradd    ##可以使用useradd命令

...

    /usr/local/bin/rht-vmctl, /usr/local/bin/rht-vmsetkeyboard

下面以kiosk身份执行useradd

[kiosk@foundation74 ~]$ sudo useradd newli           ##以kiosk的身份执行useradd

[kiosk@foundation74 ~]$ tail -n 1 /etc/passwd

newli:x:1006:1006::/home/newli:/bin/bash         ##成功Amazing!


3.用户认证信息的控制

1.查看用户认证信息:

cat /etc/shadow

2./etc/shadow 的内容分析:

以我的一个kiosk用户为例:

kiosk:$6$muzBVJVz$F8SHsxbuBAtgywfyrxyLogLzl9xeEc7v4GQvc6.WtjWv0/tuRpiHUBd6s9axR/FdZiWvC5oW0PwI2cR8KHwym.:17888:0:99999:7:::

/etc/shadow 文件的内容包括9个段位,每个段位之间用:号分割;我们以如下的例子说明:

第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;

第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;

第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;

第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;

第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;

第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;

第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;

第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;

第九字段:保留字段,目前为空,以备将来Linux发展之用;

3.修改/etc/shadow的信息

方式:通过 chage 命令可以查看和修改 /etc/shadow 文件的第三个字段到第八个字段的密码状态

chage -m 6 username 最短有效期

chage -M 10 username 最长有效期

chage -W 2 username 警告期

chage -I 3 username 非活跃天数

chage -E '2018-1-1' username 帐号到期日期

chage -d 0 username 最后一次密码修改的时间

实践:

分别执行以下命令,并查看/etc/shadow文件

175 cat /etc/shadow

  176  chage -m 6 studnet              ## 修改最短有效期为6

  177  chage -m 6 student           

  178  chage -M 10000 student   ##修改最长有效期为10000

  179  chage -W 10 student          ##修改警告期为10天

  180  chage -I 3 student                ##修改非活跃天数为3天

  181  chage -E '2019-12-30' student       ##修改帐号到期日期为2019-12-30

  182  chage -d 0 student                ##修改最后一次密码修改的时间


//查看/etc/shadow文件

student:$6$N.Z7zZ10$BtzsxNmtPcw4mGf3keoybZYToqE/x3BGH9g1Gn5zqJGgR780OPbI/a.dSsF/

TAjFo.J0oGsx86x0l8Ww1z3MC1:17900:6:10000:10:3:18260:       ##对应信息都被改变

                                                              1       2     3         4  5    6

标注字段说明:

标注字段1(17900):从1970年01月01日算起至修改的天数间隔

标注字段2(6):修改最短有效期为6

标注字段3(10000):改最长有效期为10000

标注字段4(10):修改警告期为10天

标注字段5(3):修改非活跃天数为3天

标注字段6(18260):从1970年的1月1日开始至2019-12-30的天数


重点注意:chage -d 0 student 命令

##这个命令主要用于强制用户在第一次登录时必须修改密码。

从普通用户登陆该用户时,先输入之前的密码,系统在提示要修改密码,修改8为位密码,再次输入

[kiosk@foundation74 ~]$ su - student

Password:

You are required to change your password immediately (root enforced)   ##强制修改密码

Changing password for student.

(current) UNIX password:                          ##输入之前的密码

New password:                             ##输入新密码

Retype new password:

Last login: Fri Jan  4 11:13:36 CST 2019 on pts/3          

[student@foundation74 ~]$   ##切换成功

你可能感兴趣的:(linux用户管理(二))