Linux基础知识-------用户的管理

一.系统中为什么要有用户?

用户:系统最底层的安全设定.

 

linux操作系统中, 每一个文件和程序必须属于某一个"用户". 每一个用户都有一个唯一的身份标识叫做用户ID (UID).

每一个用户也至少需要属于一个用户分组. 用户分组也有一个唯一的身份标识叫做用户分组ID(GID). 用户可以归属于多个用户分组.

用户组可分为初始组和附加组:   初始组:指用户一登录就立刻拥有改组权限, 每个用户初始化只能有一个, 一般就是和这个用户的用户名作为这个用户的初始组.   附加组: 用户可以加入多个其他组, 并拥有这些组的权限, 附加组可以有多个.

二.用户权限

1.对某个 文件或程序的访问是以它的UID和GID为基础的, 一个执行中的程序继承了调用它的用户的权利和访问权限.

2.每位用户的权限可以被定义为两种:

    普通用户: 只能访问他们拥有的或者有权限执行的文件; 分配给他们这样的权限是因为这个用户或者属于这个文件的用户分组, 或者因为这个文件能够被所有的用户访问.

    超级用户: 能访问系统全部的文件和程序, 不论超级用户是否拥有它们.

三.用户配置文件

/etc/passwd   用户信息文件(七列)

用户名称:密码:用户id:组id:用户说明:用户家目录:用户默认所使用的shell

Linux基础知识-------用户的管理

/etc/group  用户组信息(四列)

组名称:组密码:组id:附加组成员

/home/username 

用户家目录

/etc/skel.* 

用户骨文件(用户环境配置模板, 在用户建立时自动复制到家目录中)

四.用户的查看

whoami    查看当前用户的名称

Linux基础知识-------用户的管理

id   username   查看用户id信息

id    -u    查看用户的uid

id    -g   username  查看用户gid

id    -G  username   查看用户所在的所有组的id

id    -n   username   以名称显示信息

Linux基础知识-------用户的管理

五.用户的建立和删除

groupadd   groupname   建立组

groupadd   -g  groupname   建立组并指定组id

groupdel    groupname   删除组

userdel   username   删除用户身份(但没有删除用户的配置文件)

userdel   -r   username   删除用户身份及系统配置文件

Linux基础知识-------用户的管理

useradd   username    建立用户, 默认使用规则建立用户(规则参看  /etc/login.defs)

Linux基础知识-------用户的管理

/etc/login.defs     在此文件中设置建立用户的默认信息

Linux基础知识-------用户的管理

cat   /etc/shells    查看shell    (/sbin/nlogin和/user/sbin/nologin为系统目录, 用户不能通过shell来操作系统)

Linux基础知识-------用户的管理

#####关于用户建立的基本命令

useradd   -u   username    指定用户的uid

Linux基础知识-------用户的管理

useradd   -g   username    指定用户的初始组id

注意: 必须先建立组, 才能将指定用户所在的初始组和附加组.

Linux基础知识-------用户的管理

Linux基础知识-------用户的管理

useradd   -G   指定用户的附加组

Linux基础知识-------用户的管理

useradd   -c    username    指定用户说明文字

Linux基础知识-------用户的管理

useradd   -d    username    指定用户家目录

Linux基础知识-------用户的管理

useradd   -s    username    指定用户的shell(在 /etc/shells 查看)

Linux基础知识-------用户的管理

监控命令     watch   -n  1  'tail  -n  4  /etc/passwd  /etc/group;ls  -l  /home'  此命令查看实验效果,观察到用户信息和用户组信息

Linux基础知识-------用户的管理

man   useradd  可以查看到useradd  中详细的命令

Linux基础知识-------用户的管理

Linux基础知识-------用户的管理

强制结束某一进程   kill  -9  ^c

六.用户管理

usermod   -l  username   重命名

Linux基础知识-------用户的管理

usermod   -u  username   更改用户uid

Linux基础知识-------用户的管理

usermod   -g   username  更改初始组id

Linux基础知识-------用户的管理

usermod   -G   username   更改附加组

Linux基础知识-------用户的管理

Linux基础知识-------用户的管理

usermod   -aG  username   增加附加组

Linux基础知识-------用户的管理

usermod   -c   username  更改用户说明

Linux基础知识-------用户的管理

usermod   -d   username  更改用户家目录指向

Linux基础知识-------用户的管理

usermod   -md   username  更改用户家目录指向

usermod   -s   username  更改用户shell

Linux基础知识-------用户的管理

### usermod  -aG  username  增加附加组后

       usermod   -aG   ""   username  删除所有附加组

Linux基础知识-------用户的管理

七. 用户切换

su  -   username   切换用户, 高级用户切换到低级用户不需要密码, 低级用户切换到高级用户或者切换到平级用户需要后者密码.

注意:  1.用户切换后及时退出再切换到下一个用户.(退出 exit)

          2. su -    "-"表示切换用户身份及用户环境

              su    表示只切换用户身份, 不切换用户环境.(这种切换方式会造成操作错误)

Linux基础知识-------用户的管理

八.用户的认证信息

/etc/shadow   用户的认证信息

用户名称:用户密码:密码最后一次被修改的时间:密码最短有效期:密码最长有效期:密码过期警告:密码非活跃期:账号到期日:未设定(用户自定义)

###最长有效期:在多长时间内必须修改密码.

###密码最后一次被修改时间:当此位数字为0时, 用户在登录时强制被要求修改密码.

change   -d  0  username

passwd   -e   username

用户密码修改:passwd  username  (只有超级用户才能执行)

passwd   普通用户修改密码

Linux基础知识-------用户的管理

usermod  -L  冻结账号

Linux基础知识-------用户的管理

usermod  -U  解锁

Linux基础知识-------用户的管理

passwd  -l   冻结账号(冻结强度大)

Linux基础知识-------用户的管理

passwd  -U  解锁账号

Linux基础知识-------用户的管理

passwd  -d  清空密码

Linux基础知识-------用户的管理

密码最短有效期:     chage   -m  1   username

                                passwd  -n  3  username

Linux基础知识-------用户的管理

Linux基础知识-------用户的管理

密码最长有效期:     chage   -M   30  username

                                passwd   -X   40  username

Linux基础知识-------用户的管理

Linux基础知识-------用户的管理

密码过期警告:    chage  -W  2  username

Linux基础知识-------用户的管理

密码非活跃期:     chage   -I   2    username   

                            passwd   -i   0   username

Linux基础知识-------用户的管理

Linux基础知识-------用户的管理

账号到期日:    chage   -E   "2018-11-11"

Linux基础知识-------用户的管理

监视命令:    watch  -n  1  tail  -n  1  /etc/shadow

九.用户权利下放

1.配置文件

/etc/sudoers

2.配置命令

visudo   此命令提示语法报错, 输入命令直接回车

Linux基础知识-------用户的管理

-------------------------------------------------------------------------

用户名称   主机名称=(执行程序身份) 命令  ##当执行命令时需要用户验证

linux11    dns-server.example=(root)  /user/sbin/useradd

--------------------------------------------------------------------------

用户名称   主机名称=(执行程序身份)   NOPASSWD: 命令1,命令2    ##执行程序时不需要用户验证

linux11    dns-server.example=(root)  NOPASSWD: /user/sbin/useradd, /user/sbin/userdel

--------------------------------------------------------------------------

测试:    su  -  linux11(切换到用户)

             sudo  useradd   hello (建立用户)

查看主机名称:   hostname

Linux基础知识-------用户的管理