linux系统基础指令-用户管理(三)

系统用户权限管理是系统管理比较重要的一个事情,因此,本章把用户权限管理单独记录

一:与用户,用户组和密码相关的文件有下面几个
/etc/passwd    –用户表
/etc/shadow    –用户密码表(用户信息和密码分开存放)
/etc/group    –用户组表
/etc/gshadow   –用户组密码表(用户组密码与组,名分开)

passwd文件格式
用户表passwd每条记录分为7个字段,每个字段之间用 ‘ :’ 隔开, 格式内容如下
login name:passwd:UID:GID:GECOS(备注信息):home directory:shell
【passwd信息已经不在该表中存放】

shadow文件格式:
用户密码表分8个字段,同样用 : 隔开,
username:
用户密码:    (加密存放)
最近一次修改密码时间:
密码最少使用天数:(0表示随时可以被更改)
密码最多使用天数: (99999表示永不过期)
密码过期前多少天提醒用户修改密码:(默认一周)
密码过期后多少天锁定账户:
账户失效时间:

group表格式,group中的密码存放在gshadow中,该表中不放密码信息
组名称:组密码:GID:组中的用户

gshadow表格式

组名称:组密码:组管理员:组中的用户

用户和组的管理命令
用户管理
useradd
userdel
usermod
组管理
groupadd
groupdel
groupmod

useradd指令选项

默认设定值:/etc/default/useradd中-u UID
-o 配合-u 选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID
-c “COMMENT”:用户的注释信息
-d HOME_DIR: 以指定的路径(不存在)为家目录
-s SHELL: 指明用户的默认shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,…]:为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户

几个简单的例子

#创建一个用户yufu,指定附加组为 feng,禁止yufu系统登录

[root@localhost ~]#useradd -G feng yufu -s /sbin/nologin
[root@localhost ~]#id yufu
uid=1003(yufu) gid=1004(yufu) groups=1004(yufu),1000(feng)

      #创建一个用户组xiaoming,组ID为1222,并创建一个用户xiaoming属于该组。指定该用户家目录/opt/xiaoming,设置密码为123456,设置该用户密码最小使用天数10天,最大使用天数90天,密码到期前7天提醒。

<br />

groupadd -g 1222 xiaoming
useradd -g xiaoming xiaoming -d /opt/xiaoming 
echo 123456 | passwd --stdin xiaoming
[root@localhost ~]#chage xiaoming
Changing the aging information for xiaoming
Enter the new value, or press ENTER for the default

    Minimum Password Age [0]: 10
    Maximum Password Age [99999]: 90
    Last Password Change (YYYY-MM-DD) [2018-04-02]: 
    Password Expiration Warning [7]: 7
    Password Inactive [-1]: 5
    Account Expiration Date (YYYY-MM-DD) [-1]:
<br />

  •  修改密码属性使用chage指令
<br />

删除家目录

[root@localhost ~]#userdel yufu -r    :-r 连同家目录删除
<br />

usermod 修改用户信息

     常用选项
       -u :修改用户ID

-g : 修改用户组

-G:更改新的附加组,默认原附加组会被覆盖,要保留原来的附加组要加-a选项

    -a :保留原来的附加组
    -l ;修改用户名

#修改小明的UID
[root@localhost ~]#usermod -u 1225 xiaoming
[root@localhost ~]#id xiaoming
uid=1225(xiaoming) gid=1222(xiaoming) groups=1222(xiaoming)

  修改xiaoming的附加组为nignx

[root@localhost ~]#id xiaoming
uid=1225(xiaoming) gid=1222(xiaoming) groups=1222(xiaoming),1003(nginx)

将xiaoming的用户名改成 wangxiaoming

注意:这里用户名发生改变,但用户的家目录,用户的权限都不会发生改变,系统是根据UID来识别一个用户的

[root@localhost ~]#usermod -l wangxiaoming xiaoming
[root@localhost ~]#id wangxiaoming
uid=1225(wangxiaoming) gid=1222(xiaoming) groups=1222(xiaoming),1003(nginx)

passwd:设置密码指令 

常用选项:
    -d:删除指定用户密码
    -l:锁定指定用户
    -u:解锁指定用户
    -e:强制用户下次登录修改密码
    -f: 强制操作
    -n mindays: 指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天开始警告
    –stdin:从标准输入接收用户密码
    echo “PASSWORD” | passwd –stdin  username

#锁定yufu账号
passwd -l yufu
#将账号解锁
passwd -u yufu
<br />

强制用户下次登录修改密码

[root@localhost ~]#passwd -e yufu

#yufu重新登录后
Last login: Tue Apr  3 05:29:46 2018 from 192.168.214.1
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user yufu.
Changing password for yufu.
(current) UNIX password: 
New password: 
<br />

chfn :修改用户描述信息

指令选项
-f:用户姓名
-p: 用户电话
-o: 办公室电话
-h:家庭电话

[root@localhost ~]#chfn -f 'xiaoming' wangxiaoming

wangxiaoming:x:1225:1222:xiaoming:/opt/xiaoming:/bin/bash

  
    gpasswd:组密码设置

[root@localhost ~]#gpasswd feng
Changing the password for group feng
New Password:
<br />

newgrp:修改用户主组

[nginx@localhost ~]$newgrp feng
[nginx@localhost ~]$id
uid=1002(nginx) gid=1000(feng) groups=1000(feng),1223(nginx)
<br />

id:查看用户组信息指令

常用选项:
    -u:  直接加参数显示当前用户id,加用户名显示指令用户id
    -g:  同-g 一样作用
    -G:  显示用户附加组信息id
    -n:  显示用户,所属群组或附加群组的名称
<br />

[root@localhost ~]#id
uid=0(root) gid=0(root) groups=0(root),1000(feng),1001(suzhou)
[root@localhost ~]#id nginx
uid=1002(nginx) gid=1223(nginx) groups=1223(nginx),1000(feng)
[root@localhost ~]#id -u feng
1000
[root@localhost ~]#id -g feng
1000
[root@localhost ~]#id -G -n  feng
feng
[root@localhost ~]#id -G -n nginx
nginx feng
[root@localhost ~]#id -G nginx
1223 1000
<br />

<

p style=”text-indent:2em;”>

点赞