linux用户管理(1)

1 Linux用户分三种:

  超级用户(root UID=0)

  普通用户(UID  500-60000) 注意只要修改了UID=0,此普通用户可以变为超级用户

  伪用户( UID 1-499 ),一般与linux系统和服务相关,无法登陆和没有宿主目录

 

2 用户组

  1 每个用户至少属于一个组

  2 每个用户组可以包括多个用户

  3 同一用户组的用户共享有该组共有的权限

 

3 配置文件

   (1)  用户信息文件:/etc/passwd

  查看passwd文件会发现有以下内容

 

 root     :x                                 :0                            :0                               :root        :/root        :/bin/bash

 用户名:密码位(并不存放密码):UID(用户标示符号):GID(缺省组标识号)   :描述信息:宿主目录:命令解释器(默认为bash)

 

 (2) 密码文件:/etc/shadow

      查看shadow文件会发现有以下内容:

      

 

     root     :$1$.4oUiqmJ$5/KdcH8wSp4yVq7DyEzM/.  :16281                              :   0                                         :99999                              :       7     :::

     用户名:加密后的密码                                                :最后一次修改密码的时间:两次修改密码之间的最小天数:密码保持有效的最大天数:警告时间:

 

 注意密码一般是先写到passwd中,然后再转到shadow中

 

(3) 新用户信息文件:/etc/skel

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

 

每次创建一个用户,会把/etc/skel目录下面的所有文件拷贝到自己的宿主目录下

 

(4)用户配置文件:/etc/login.defs,/etc/defaule/useradd(定义了一些添加用户的缺省的设置信息),/

 

(5)登陆信息:/etc/motd

 

 

普通用户为什么能修改密码?

如下图可以看出普通用户是没有更改自己密码的权限的:

 

看到普通用户对于passwd文件只有读的权限,对于shadow文件没有任何权限,普通用户应该是修改不了密码的,可是为啥普通用户还可以修改密码了?

密码不在于更改文件的权限上面,而在passwd命令的权限上面,看到passwd命令第三个位置是s而不是常用的x。这个就是普通用户可以更改密码的根本原因,这个从而引出了SetUID。

 

SetUID定义:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序所有者的身份执行。

设置一个命令为SetUID:

          chmod  u+s 

          chomd  4755

 

取消:

          chmod  u-s 

          chomd  755

 

例子 将touch命令授予SetUID权限

   

 

看到原始的touch命令是谁使用,所有者就是谁,修改touch命令的所有者权限,令其权限为s

 

 再次用touch命令创建文件,会发现所有者变为root了,如下图。

 

 

SetGID定义:当一个可执行程序具有SetGID权限,用户执行这个程序时,将以这个程序所有组的身份执行。

设置一个命令为SetGD:

          chmod  g+s 

          chomd  2755

 

取消:

          chmod  g-s 

          chomd  755

 

 

粘着位:如果一个权限为777的目录,被设置了粘着位,每个用户都可以在目录下面创建文件,但是只可以删除自己是所有者的文件。

设置

          chmod  o+t

          chomd  17777

 

 

 添加用户

 命令名称:useradd

 选项含义:

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

 

 用户组命令

 

1 添加组

命令名称:groupadd

用法:group  -g 999  admin

创建用户组 admin  GID是999

 

 

2 删除组:

  命令名称:groupdel  组名

  用法  groupdel  admin

 

3 修改用户组信息:

   命令名称:groupmod

   用法:groupmod   -n  apache  admin

   修改admin 组名apache

 

4 把用户加入到组

 1  命令名称:usermod

   usermod  -G  组名  用户名

 

  2  命令名称:gpasswd

     gpasswd  -a  用户名  组名

 

5 切换到缺省的组

 命令名称:newgrp 

 用法: newgrp   webadmin

 

6 禁止用户切换到该组

 用法:gpasswd  -R  webadmin

 

7  查看用户属于哪个组

    命令名称:groups

     用法:groups

 

 

 

你可能感兴趣的:(linux)