<--目录-->

1、理论知识

2、用户和用户组管理

3、源码包安装


【理论知识】

一.用户账户管理

AAA

A:Authentication  认证 --> 你是谁?

A:Authorization   授权 --> 你能干什么?

A:Audit           审计 --> 你干了什么?


二。用户账号UID范围 命令查看 id root 

0 ->root

1-499 ->系统用户

>=500 ->普通用户



四.passwd文件格式

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

1    2 3 4  5       6    7

1.用户账户的名称

2.密码字患或占位符

3.用户账户的UID号

4.所属基本组的GID号

5.用户全名

6.宿主目录

7.登陆Shell程序的路径




五.shadow文件格式

root:$1$8C2tU7Sa$bdKQUIfwsz9KtVTtn/eTB0:16274:0:99999:7:::

  1                  2                    3   4   5   6 7 8 9

1.用户账户的名称

2.加密后的密码字符串

3.上次修改密码的时间  (自1940年1月1日到最近一次修改密码那天之间的天数)

4.密码的最短有效天数,默认0   (使用多少天才可能改密码,0表示随时都可以改密码)

5.密码的最长有效天数,默认99999  (密码使用的有效期)

6.密码过期前的警告天数,默认7

7.密码过期后多少天禁用此用户账号

8.账号失效时间,默认值为空

9.保留字段(未使用)

查看用户相关密码信息的命令 


十九.组管理

   etc/group 保存组账号的基本信息

      - 每个组记录一行 以:分割为4个字段

          字段1 组账号的名称

          字段2 密码占位符x

          字段3 组账号的GID号

          字段4  本组的成员用户列表

   etc/gshadow 保存组账号的管理信息

字段1:组账号的名称

字段2: 加密号的密码字符串

        字段3:本组的管理员列表

字段4:本组的成员用户列表


MAIL_DIR        /var/spool/mail

PASS_MAX_DAYS   99999           //密码的最长使用时间

PASS_MIN_DAYS   0//密码最短使用时间 

PASS_MIN_LEN    5//密码的最短长度

PASS_WARN_AGE   7 //密码警告时间

UID_MIN                   500

UID_MAX                 60000

GID_MIN                   500

GID_MAX                 60000

CREATE_HOME     yes

UMASK           077

USERGROUPS_ENAB yes

MD5_CRYPT_ENAB yes

ENCRYPT_METHOD MD5


/etc/skel          //新建账户模板文件

~/.bash_profile    //每次登陆时执行

~/bashrc           //每次进入新的Bash环境时执行

全局

/etc/bashrc

/etc/profile



【用户和用户组管理】

三.创建用户的时候,默认会影响这几个文件

/etc/passwd:  存储用户相关信息

/etc/shadow:  存储密码相关信息

/etc/group:   存储组成员相关信息

/etc/gshadow:存储组密码相关信息


chage -l root 查看tom用户密码修改时间 或 grep root /etc/shadow

chage abc  修改abc的安全设置

useradd命令

 -格式 useradd [选项]... 用户名

常用命令选项

 -u 指定UID标记号

 -d 指定宿住目录 ,缺省为/home/用户名

 -e 指定账户的失效时间

 -g 指定所属的基本组 (组名或GID)

 -G 指定所附属的附加组 (组名或GID)

 -M 不为用户建立并初始化蓿主目录

 -s 指定用户的登陆Shell


六,创建用户

创建用户alice,UIDj是800,家目录是/home/sum,他除了在自已的主组,还在jack组中(附加组)

他没有可用的shell(无法登陆系统)

useradd -u 800 -d /home/sum -G jack -s /sbin/nologin alice 

vim etc/logon.按tab健


九.设置密码

1.只用root用户才能为其他用户设置密码

2.普通用户只能改变自已的密码,而且在改变自已的密码前,要输入老密码

  passwd密令

     -格式:passwd [选项]... 用户名      改密码:(passwd 用户名)

  常用命令选项

     -d:清空用户的密码,使之无需密码即可登陆

     -S:查看用户账号的状态(是否被锁定)

     -l:锁定用户账号

     -u: 解锁用户账号

     

echo 密码 | passwd --stdin 用户名


echo 111  | passwd --stdin tom



锁定jack用户

  passwd -l jack

查看用户状态

  passwd -S jack

解锁用户

  passwd -u jack

 

十.改变用户信息

   格式: usermod [选项]... 用户名

   常用命令选项

   -l 更改用户账号的登陆名称

   -u  -d  -g  -G -s  与 useradd 相同

1.把jack的登陆名改为slina

  usermod -l slina jack

4.改变用户的登陆shell

  usermod -s /sbin/nologin slina (不允许登陆)

  usermod -s /bin/bash slina  (允许登陆)


十一.删除用户

1.简单地将用户tom删除

  userdel tom  -> 只是把用户删除,用户的家目录仍然存在

2.删除用户tom的同时,把bob的家目录也删掉

  userdel -r tom


下午



chage -m 1 tom    //设置tom用户密码最短使用时间1天


注 (用 chage -l 查看时间) 



chage -M 90 tom  //设置tom用户密码最长使用时间90天


十五.设置密码策略

grep -vE "^#|^$" /etc/login.defs (查看login.defs文件中不以#号开头不是空行的行)

vim /etc/login.defs


十六.设置用户密码在2014年1月1日失效

chage -E 2019-1-1 tom


十七.chage语法格式

 管理工具chage命令

   -格式 chage [选项] 用户名

 常用命令选项

   -l 列出密码有效期信息

   -E 指定账户过期时间 YYYY-MM-DD

   -I 指定密码失效后多少天锁定

   -m 指定密码的最小天数

   -M 指定密码的最大天数 

   chage 用户名  直接修改密码

强制用户帐号过期chage -d 0 username


十八.id命令

1.直接使用id命令,查看是当前用户的信息

2.id 用户名 ->查看指定用户的信息 //id 空格

id - u tom   tom的UID

     G            GID

     G root  root属于哪些组,这些组的ID号是什么

     Gn      root属于哪些组,组的名字是什么




创建组

groupadd -g 1000 hr  //创建组 组id号为1000

grep hr /etc/group   //查看组

        grep hr /etc/gshadow   

        usermod -aG hr tom   //a表示追加,G表示附加组

        gpasswd -a bob hr  //将用户bob加入到hr组中

         id bob 

       进入到vim etc/group 找到相应的组修改

       gpasswd -d bob hr  //把bob从hr组中移除 

       id bob

       gpasswd -M bob,alice,jerry hr //同时把多个用户一次性的加入到hr组中

       grep hr etc/group

       gpasswd -A bob hr     //设置hr组的管理员是bob 

       grep /hr /etc/gshadow


usermod (-l -u  -d  -g  -G -s )属性修改

chage (-l -I -m -M -E)安全修改

passwd (-l -u -S -d)用户

gpasswd (-a -A -M -d)组


gpasswd market           //修改密码

grep maket /etc/gshadow  //查看密码

gpasswd -r market //删除密码


market某一个目录有访问权限,tom用户不属于market组,也就不能访问这个目录。

tom可以临时改变自已的组员身份到market,实现对这个目录的访问,

临时改变自已组成员身份,就用到了组密码

su - tom     

id -Gn          查看tom属于哪个组

newgrp market   临时把自已加入到market组中,需要知道market密码

id -Gn  再次查看自已属于哪个组

exit 退出market组

id -Gn


groupdel tom  删除组


groups tom 查看用户在哪些组




最后.相关命令

su - tom 切换到tom用户

ls ~当前用户家目录 

ls -a ~tom 或 ls -a /home/tom tom为用户名 这两条命令意思为指定家目录

chsh -l 查看用什么sh linux用bash



【源码包安装】

vim hello.c

#include


int main(viod)

{

  printf ("hello world\n");

}

gcc hello.c  //生成一个文件 a.out

./a.out      //执行a.out


二.安装相关的编译环境

yum install -y gcc gcc-c++


三.安装apache web服务器

 tar jxf httpd.xxx.tar.bz

 cd httpd-x.xx

 vim INSTALL //查看安装文件 

 ./configure --prefix=/usr/local/apache   //指定安装目录

 make

 make istall


四.启动Web服务器

 cd /usr/local/apache/bin

 ./apachectl start

 firefox &   //打开火狐浏览器 输入入地址127.0.0.1

 Web服务器的网页存放目录是/usr/local/apache/htdocs


 ./configure 出问题就安装gcc,gcc-c++,openssl-devel