zoukankan      html  css  js  c++  java
  • 用户管理

    第1章 用户的分类

    root

    皇帝

    UID:0

    虚拟用户

    傀儡

    1.每个程序、服务运行的时候都需要一个用户

    2.傀儡用户不需要用来登录系统

    shell:/sbin/nologin

    UID:1-499

    普通用户

    shell:/bin/bash

    UID:500+

    第2章 与用户相关的配置文件

    /etc/passwd         存放用户的信息

    /etc/shadow         存放用户密码的信息

    /etc/group           存放用户组的信息

    /etc/gshadow        存放用户组密码信息

    [root@dzc ~]# head -2 /etc/passwd

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

    bin:x:1:1:bin:/bin:/sbin/nologin

    第一列

    第二列

    第三列

    第四列

    第五列

    第六列

    第七列

    root:

    x:

    0:

    0:

    root:

    /root:

    /bin/bash

    bin:                  

    x:  

    1:

    1:

    bin:

    /bin:

    /sbin/nologin

    用户名

    密码

    存放密码的位置

    用户的UID

    用户的GID 

    用户的说明信息

    用户的家目录

    用户使用的shell命令解释器

    shell 命令解释器运行命令

      /bin/bash             ##用户的默认的命令解释器

      /sbin/nologin        ## 创建一个傀儡用户 虚拟用户

    第3章 与用户相关的目录 /etc/skel

    3.1 在linux下面添加一个用户

    在添加用户的时候 使用的是用户老家的模板 /etc/skel

    .bash_logout     #用户登出 退出的时候运行 这个文件里面的内容

    .bash_profile     #/etc/profile 环境变量 别名

    .bashrc          #存放用户的别名

    【企业案例】

    登录到某个用户下面 提示 -bash-4.1$

      第一个里程碑 -原因

    这个用户里目录里面 与环境变量有关的文件被删除

    .bash_profile

    .bashrc

      第二个里程碑 -解决从/etc/skel中把丢失的文件 复制回来即可

     #切换到这个用户

    -bash-4.1$ whoami

    lidao

    #重新登录

    -bash-4.1$ cp /etc/skel/.bash*  ~

    -bash-4.1$ logout

    [root@oldboyedu-40 ~]# su - lidao

    [lidao@oldboyedu-40 ~]$

    环境模拟:

    [root@dzc ~]# su - alex

    [alex@dzc ~]$ m -f .bash*

    [alex@dzc ~]$ logout

    [root@dzc ~]# su - alex

    -bash-4.1$ whoami

    alex

    -bash-4.1$ pwd

    /home/alex

    -bash-4.1$ cp /etc/skel/.bash* ~

    -bash-4.1$ logout

    [root@dzc ~]# su - alex

    [alex@dzc ~]$

    第4章 与用户有关的命令

    4.1 添加用户 useradd

         -u指定新用户的uid

    -s指定用户的命令解释器(sell)

    -M表示不创建家目录 一般创建虚拟用户使用

    -g 指定用户属于的组(组的名字) 添加用户的时候 默认创建一个与用户名一样的家庭

    添加一个用户lidao指定uid为888 禁止用户登录系统 不创建家目录
    添加一个虚拟用户/傀儡用户alex888 设置uid为888
    [root@oldboyedu-40 ~]# useradd -u 999  -s /sbin/nologin -M  alex999

    4.2 删除用户 userdel

    1. 删除用户
    2. 注释这个用户 在/etc/passwd 里面这做个用户前面加上个#

    useradd alex888
    su - alex888 

    换另一个窗口
    userdel alex888 
    报错 
    ps -ef |grep 进程号码  
    kill -9 进程号码

        userdel 删除用户的时候不会删除用户的家目录

    userdel -r 删除用户及用户的老家 邮件

    4.3 修改用户的信息 usermod

    修改用户的信息,这个用户已经存在了

    -s 修改用户使用的shell

      -g 修改属于的家庭

      -G属于多个家庭

    4.4 passwd

    --stdin 从管道中获取用户的密码(非交互式设置密码)

    记录密码的工具

    1. keepass----------------把密码记录到你的硬盘中
    2. lastpass----------------在线 把你的密码存放到了别人家

    指纹加密

    [root@dzc data]# echo hello >oldboy.txt

    [root@dzc data]# md5sum oldboy.txt

    b1946ac92492d2347c6235b4d2611184  oldboy.txt

    [root@dzc data]# md5sum oldboy.txt >list.txt

    [root@dzc data]# md5sum -c list.txt

    oldboy.txt: OK

    [root@dzc data]#  >oldboy.txt

     [root@dzc data]# md5sum -c list.txt

    oldboy.txt: FAILED

    md5sum: WARNING: 1 of 1 computed checksum did NOT match

    4.5 【企业面试题】

       批量添加3个用户 stu01,stu02,stu03,并设置密码123456(禁止使用for which等循环)

      第一个里程碑-最后想要的结果 什么样子

    useradd stu01;echo 123456 |passwd --stdin stu01

    useradd stu02;echo 123456 |passwd --stdin stu02

    useradd stu03;echo 123456 |passwd --stdin stu02

      第二个里程碑-生成用户名字

    [root@oldboyedu-40 ~]# echo stu{01..3}

    stu01 stu02 stu03

    [root@oldboyedu-40 ~]# echo stu{01..3}|xargs -n1

    stu01

    stu02

    stu03

    #第三个里程碑-拼接出你想要的形式

    [root@oldboyedu-40 ~]# echo stu{01..3}|xargs -n1|sed -r 's#(.*)#useradd 1;echo 123456|passwd --stdin 1#g'|bash

    Changing password for user stu01.

    passwd: all authentication tokens updated successfully.

    Changing password for user stu02.

    passwd: all authentication tokens updated successfully.

    Changing password for user stu03.

    passwd: all authentication tokens updated successfully.

    第四个里程碑-检查

      tail /etc/passwd

      su - stu1    su - stu2    su - stu3    三个账户之间切换,检测密码是否正确

    批量添加10个用户stu01,stu02....stu10,并设置8位随机密码(禁止使用for,while等循环)

    4.6 添加一个虚拟用户用户 mysql 指定用户的uid gid都是999

    [root@dzc ~]# groupadd -g 999 123

    [root@dzc ~]# useradd -g 999 -M -s /sbin/nologin -u 999 mysql

    [root@dzc ~]# id mysql

    uid=999(mysql) gid=999(123) groups=999(123)

    4.7 用户查询命令

    4.7.1 w

    显示谁远程登录了系统 在干啥

    远程登录-以root用户的身份连接到系统

     

    4.7.2 last

    显示系统用户的登录信息

    4.7.3 lastlog

    显示linux中所有用户最近一次远程登录的信息

    4.8 给开发拥有查看日志的权限

    1. root

    su - root 与su root

    1. 修改文件的权限 加上r
    2. suid tail  chomd +s tail

    suid 运行命令的时候 相当于是命令的所有者(root)

    1. 尚方宝剑-某一个用户可以临时当皇帝--sudo

    给普通用户尚方宝剑 visudo

    alex    ALL=(ALL)       /bin/ls, /bin/touch

    [alex@dzc ~]$ ls /root

    ls: cannot open directory /root: Permission denied

    [alex@dzc ~]$ sudo ls /root

    anaconda-ks.cfg  install.log

    ett.txt           install.log.syslog

    ##授予某个用户sudo 并且不需要输入密码
    #NOPASSWD: 给自己用.
    kaifa   ALL=(ALL)       NOPASSWD: ALL

     

     visudo === vi /etc/sudoers

     crontab -e === vi /var/spool/cron/root

    第5章 记录用户的操作 行为/日志审计

     

  • 相关阅读:
    Volume serial number could associate file existence on certain volume
    分区表收集统计信息
    数据泵导入外键表数据报错
    Oracle备份优化开启块改变跟踪
    Oracle asm lib存储扩容及测试
    ASM_Lib_linux_redhat6.9添加asm磁盘扩容
    ogg清理无法自动清理导致占用大量空间处理
    应用复制进程abend,报错OGG-01163字段列长度不够
    历史备份过多使用delete obsolete方式找不到过期备份信息???
    测试使用块跟踪文件
  • 原文地址:https://www.cnblogs.com/dzc-/p/7929991.html
Copyright © 2011-2022 走看看