一:主要组和附加组:

 主要组,私有组(primary group):创建用户的时候系统会同时创建一个和这个用户名同名的组,这个组就是主要组,用户必须属于一个且仅有一个主要组。

 辅助组,附加组,公有组(supplementary group):除了主要组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的。一个用户属于零个或多个辅助组。

二:用户和组的配置文件:

1:/etc/passwd和/etc/shadow:

/etc/shadow包含以下内容:分别是用户名,密码位,密码上一次的修改时间,密码的最小存活期,密码的最大存活期,密码过期之前提前多少天提醒用户将会过期,密码过期之后在用户仍不改密码后多少天触发帐户过期,帐户过期时间,保留位。各列之间分别用冒号间隔开。pwconv 将passwd当中的密码映射到了/etc/shadow而pwunconv 取消映射,密码仍然放在/etc/passwd当中。

2:/etc/group和/etc/gshadow

/etc/group文件包含组名:组密码:映射到了/etc/gshadow;GID;组成员:附加组的成员 

/etc/gshadow文件包含组名;组密码;管理员:更改组密码和成员;组成员:功能同/etc/group中的第四列

grpconv 将组密码映射到了/etc/gshadow,grpunconv 取消组密码的映射。

 vipw = vim /etc/passwd

 vipw -s = vim /etc/shadow

 vigr = vim /etc/group

 vigr -s = vim /etc/gshadow

 pwck 检查/etc/passwd语法

 grpck 检查/etc/group语法

三:常用命令:

 1:passwd

    username 指定要修改密码的用户名(仅root运行,普通用户不输入用户名,可直接修改自己的密码)

    -l 锁定用户  实际就是在密码位前加!!

    -u 取消用户锁定 

    -e 强制用户下次登录时更改密码

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

    -x maxdays:最大使用期限

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

    -i inactivedays:非活动期限

    --stdin 从标准输入接收用户密码

 2:chage [OPTION]... LOGIN

          -d LAST_DAY

          -E --expiredate EXPIRE_DATE

          -I --inactive INACTIVE

          -m --mindays MIN_DAYS

          -M --maxdays MAX_DAYS

          -W --warndays WARN_DAYS

          –l 显示密码策略

  3:useradd & adduser

    -u UID 指定uid默认从1000开始往后

    -o 与 -u 配合,不检查UID的唯一性

    -g GID或组名  指定用户的主要组为某个已存在的组,可以指定GID也可以指定组名

    -G 指定附加组 以逗号为间隔可以同时指定多个,组必须事先存在,可以指定GID也可以指定组名。

    -c 注释信息

    -d 指定目录路径 ,如不指定默认在/home下与用户同名。指定时注意,目录名需已存在,基名不存在。

    -s 指定登录shell如下

    useradd -s /sbin/nologin test  创建shell为不可交互式登录的用户

    -N 不创建私用组做主组,使用users组做主组

    -r 创建系统用户 (centos 6及之前的版本 < 500, centos 7 < 1000)

 4: /etc/default/useradd 创建用户的默认配置文件

    GROUP=100 表示使用useradd -N时默认使用的组为GIP为100的组

    HOME=/home 自动创建家目录时,从哪个目录下创建与用户同名的家目录

    INACTIVE=-1 用户是否设置密码过期后,多少天帐户过期,为-1时,不会触发帐户过期

    EXPIRE=  是否指定一个帐户过期时间,为空表示帐户默认永不过期

    SHELL=/bin/bash 使用useradd创建用户时,如不使用-s 指定则默认的用户shell为/bin/bash

    SKEL=/etc/skel  自动创建家目录时,从哪个目录拷贝模板文件

    CREATE_MAIL_SPOOL=yes  创建用户时是否在/var/spool/mail下为用户与用户同名的邮箱文件。

     手工创建家目录的方法:

    (1)mkdir /home/wangkai

    (2)chmod 700 /home/wangkai

    (3)cp -r /etc/skel/.[^.]*  /home/wangkai

    (4)chown -R wangkai:wangkai /home/wangkai

QQ截图20180116203530.png

QQ截图20180116203631.png

    5:usermod(修改用户) 

-u NEWUID 用户名  修改用户的uid

-g NEWGID 用户名  修改用户的主要组  可以指定组名,也可以指定GID

-G GID或组名[,组名]  用户名 设定用户的附加组为哪些组,这前的附加组信息被覆盖

-a 与-G 结合 使用可以增加用户的附加组,而不会影响之前的附加组

-s shell名 用户名   修改用户的Shell

-c "描述信息"  设置用户的描述信息

-d /path  用户名  修改用户的家目录,新家目录不会自动创建;若要创建新家目录并移

动原家数据,同时使用-m选项

-l newname 用户名 修改用户的名称

-L: lock指定用户,在/etc/shadow 密码栏的增加 !   等同于passwd -l

-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉  等同于passwd -u

-e YYYY-MM-DD: 指明用户账号过期日期

-f INACTIVE: 设定非活动期限

       6:userdel 

-r 删除用户名连同家目录及邮箱文件一起删除

       7:id [OPTION]... [USER]

-u: 显示UID

-g: 显示GID

-G: 显示用户所属的组的ID

-n: 显示名称,需配合ugG使用

       8:切换用户:

        su username 表示非登录式切换

su - username 表示登录式切换

su - 表示登录root

当前用户是root时,切换到其他用户不要密码

        chfn 用户名  修改用户的描述信息

chsh  -s  shell 用户名  修改用户的Shell 等同于usermod -s 

        9:groupadd -g GID 组名  创建组

           groupdel 组名  删除组

       10:groupmod(组修改) 

     -n newname 组名  修改组名

     -g newgid 组名 修改组id

        11:gpasswd 组名 设置组密码                              管理员可以执行

-a 用户名 组名   将某用户以附加组方式加入到某组当中  管理员可以执行

-d 用户名 组名   将某用户从指定组当中踢出            管理员可以执行

-M 用户名[,用户名...]  组名 设置某组的用户列表       仅root执行

-A 用户名[,用户名...]  组名 设置某组的管理员列表     仅root执行

组管理员在不是组成员的情况下,仅能修改组密码,和将其他人加入组和踢出组,但并不具有组成员的权限.

        12:newgrp 组名(普通用户执行)  非附加组成员的普通用户在正确输入组密码后可以使用该命令临时变更主要组.

   附加组成员的普通用户无需输入密码可以使用该命令临时变更主要组. 原主要组临时变成附加组

        13:groupmems  仅root执行

-g 组名 -a 用户名 将某用户以附加组方式加入到某组当中  

-g 组名 -d 用户名 将某用户从指定组当中踢出

-g 组名 -p 清空所有组成员

-g 组名 -l 查看指定组有哪些成员(仅显示附加组)

14:groups 用户名 查看指定用户属于哪些组(包含主组和附加组)

        15:chown  仅root才能更改文件的所属人

   用户名 filename

   用户名.组名 filename 或 用户名:组名 filename  同时更改owner和group  如果.或:前省略,则只改group

                 -R 递归

--reference=file1 file2 将file1的group信息复制给file2

         16:chgrp  组名 filename

  文件的owner可以使用Chgrp修改文件的group,但该owner一定要属于目标group

    -R  递归

    --reference=file1 file2 将file1的group信息复制给file2

     四: 权限设置

当仅r权限作用在文件上的时候,用户可以读取该文件的内容:cat less more head tail

当仅w权限作用在文件上的时候,用户可以修改文件的内容:>>

当仅x权限作用在文件上的时候,无作为.

当rw权限作用在文件上的时候,用户即能读与能修改:cat less more head tail vim nano > >>

当rx权限作用在文件上的时候,用户可以执行该文件

当wx权限作用在文件上的时候,权限等同于仅w权限.

        文件的常见权限是r--  rw-   rwx

当仅r权限作用在目录上的时候,用户可以短列出目录下的文件名.

当仅w权限作用在目录上的时候,无作为.

当仅x权限作用在目录上的时候,用户可以进入该目录,并且在知道具体文件名且具有相关权限的情况下,可以访问子文件.

当rw权限作用在目录上的时候,权限等同于仅r权限

当rx权限作用在目录上的时候,用户进入,长列出.

当wx权限作用在目录上的时候,用户可以进入且可以创建及删除文件.但不能使用文件名通配符

目录的常见权限r-x  rwx

        chmod 

符号方法

ugo/a +/-/=  rwx

-R 递归

--reference file1 file2 将file1的权限复制给file2

            X:只给目录及已有部分x权限的文件加上x权限,不给三个权限位完全没有x的文件加x