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

    目录

    1.系统的启动流程

    2.系统的用户管理及权限

    3.系统的用户(组)命令

    1.系统的启动流程

    centos6

     

    centos7

     

    步骤

    作用

    步骤

    作用

    01. 加电自检

    检查服务器硬件是否正常

    01. 加电自检

    检查服务器硬件是否正常

    02. MBR引导

    读取磁盘的MBR存储记录信息,引导系统启动

    02. MBR引导

    读取磁盘的MBR存储记录信息,引导系统启动

    03. grup菜单

    选择启动的内核/进行单用户模式重置密码

    03. grup菜单

    选择启动的内核/进行单用户模式重置密码

    04. 加载系统内核信息

    可以更好的使用内核控制硬件

    04. 加载系统内核信息

    可以更好的使用内核控制硬件

    05. 系统的第一个进程运行起来 init (串行)

    init进程控制后续各种服务的启动: 启动顺序 网络服务 sshd 

    05. 系统的第一个进程运行起来 systemd (并行)

    服务启动的时候,同时一起启动

    06. 加载系统运行级别文件

    /etc/inittab

    06. 读取系统启动文件

    /etc/systemd/system/default.target

    07. 初始化脚本运行

    初始化系统主机名称 和 网卡信息

    07. 读取系统初始化文件

    /usr/lib/systemd/system/sysinit.target

    08. 运行系统特殊的脚本

    服务运行的脚本 

    08. 使服务可以开机自启动

    /etc/systemd/system 加载此目录中的信息,实现服务开机自动启动

    09. 运行mingetty进程

    显示开机登录信息界面

    09. 运行mingetty进程

    显示开机登录信息界面

    2.系统的用户管理及权限
    1.用户分类

    用户分类

    用户示例

    uid

    权限

    管理员用户

    root

    0

    权利至高无上

    虚拟用户

    nobody

    1-999

    管理进程

    没家目录,不能登录系统

    普通用户

    lbz

    1000+

    权利有限

    2.文件信息

    简写

    全写

    作用

    r

    read

    可以读文件的内容

    w

    write

    可以编辑文件的内容

    x

    execute

    执行这个文件(脚本文件)

    3.目录信息

    简写

    全写

    作用

    r

    read

    读目录中的文件属性信息

    w

    write

    可以在目录中添加或删除文件数据信息

    x

    execute

    是否可以进入到目录中


    4.代码说明

    //用户管理
    1.文件权限
      1)修改属主
      2)修改权限
    2.目录权限
    3.文件权限修改
      1)根据用户信息进行设定 (属主 属组 其他用户)
      2)根据用户进行批量设定
         a) 数值设定
         b) 字符设定
    4.文件默认权限
    5.特殊目录
    6.特殊文件
    1.文件权限
      01. root用户对所有文件有绝对的权限,只要有了执行权限,root用户可以无敌存在
      02. 对于文件来说,写的权限和执行的权限,都需要有读权限配合
      03. 如何想对文件进行操作,必须对文件赋予读的权限
      一个普通文件默认权限: 644 保证属主用户对文件可以编辑 保证其他用户可以读取文件内容
    [root@lbz01 ~]# touch lbz.txt                                //创建环境
    [root@lbz01 ~]# ll lbz.txt
    -rw-r--r--. 1 root root 6 Jan 22 21:36 lbz.txt             
    [root@lbz01 ~]# chown lbz lbz.txt                            1)修改属主为lbz
    [root@lbz01 ~]# ll lbz.txt
    -rw-r--r--. 1 lbz root 6 Jan 22 21:36 lbz.txt
    [root@lbz01 ~]# chmod 000 lbz.txt                            2)修改权限
    [root@lbz01 ~]# ll lbz.txt
    ----------. 1 lbz root 6 Jan 22 21:36 lbz.txt
    2.目录权限
      01. root用户对目录信息有绝对权限
      02. 对于目录来说,写的权限和读的权限,都需要有执行权限配合
      03. 如何想对目录进行操作,必须对目录赋予执行的权限
      一个目录文件默认权限: 755 保证属主用户对目录进行编辑 保证其他用户可以读取目录中的信息,可以进入到目录中
    3.文件权限修改
      1)根据用户信息进行设定 (属主 属组 其他用户)
      属主    -user  u 
      属组    -group g 
      其他用户 -other o 
    [root@lbz01 ~]# touch lsn.txt                                //创建环境
    [root@lbz01 ~]# ll lsn.txt
    -rw-r--r--. 1 root root 0 Jan 22 21:54 lsn.txt
    [root@lbz01 ~]# chmod u-w lsn.txt                            //修改属主权限
    [root@lbz01 ~]# ll lsn.txt
    -r--r--r--. 1 root root 0 Jan 22 21:54 lsn.txt 
    [root@lbz01 ~]# chmod g+w lsn.txt                            //修改属组权限
    [root@lbz01 ~]# ll lsn.txt
    -r--rw-r--. 1 root root 0 Jan 22 21:54 lsn.txt
      2)根据用户进行批量设定
    [root@lbz01 ~]# chmod 761 lsn.txt                            a) 数值设定
    [root@lbz01 ~]# ll lsn.txt
    -rwxrw---x. 1 root root 0 Jan 22 21:54 lsn.txt
    [root@lbz01 ~]# chmod a=x lsn.txt                            b) 字符设定
    [root@lbz01 ~]# ll lsn.txt
    ---x--x--x. 1 root root 0 Jan 22 21:54 lsn.txt
    4.文件默认权限
    [root@lbz01 ~]# umask
    0022
    默认文件权限:   666 - 022 = 644
    umask数值是奇数 666 - 033 = 633 + 11 = 644
    umask数值是偶数 666 - 022 = 644
    
    默认目录权限:   777 - 022 = 755    
    umask数值是奇数 777 - 033 = 744
    umask数值是偶数 777 - 022 = 755
    [root@lbz01 ~]# vim /etc/profile
    if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
    else
    umask 022                                                    //可以永久修改umask数值
    fi    
    #$UID: 显示当前登录系统用户id数值
    判断比较符号
    -gt greater than      >
    -lt less than         <
    -eq equal             ==
    -ge greater && equal  >=
    -le less && equal     <=
    -ne not equal         <>
    5.特殊目录
    [root@lbz01 ~]# ll /etc/skel -a
      01. 目录中可以存储运维操作规范说明文件
      02. 调整命令提示符信息
      目录中的数据内容会参考/etc/skel目录中的信息
    total 24
    drwxr-xr-x.  2 root root   62 Apr 11  2018 .
    drwxr-xr-x. 80 root root 8192 Jan 22 22:06 ..
    -rw-r--r--.  1 root root   18 Apr 11  2018 .bash_logout      //当系统退出登录状态会执行的命令
    -rw-r--r--.  1 root root  193 Apr 11  2018 .bash_profile     //别名和环境变量(只针对某个用户)
    -rw-r--r--.  1 root root  231 Apr 11  2018 .bashrc           //别名和环境变量(只针对某个用户)
    [root@lbz01 ~]# useradd lbz02
    [root@lbz01 ~]# ll /home/lbz02/ -a
    total 12
    drwx------. 2 lbz02 lbz02  62 Jan 22 22:10 .
    drwxr-xr-x. 6 root  root   54 Jan 22 22:10 ..
    -rw-r--r--. 1 lbz02 lbz02  18 Apr 11  2018 .bash_logout
    -rw-r--r--. 1 lbz02 lbz02 193 Apr 11  2018 .bash_profile
    -rw-r--r--. 1 lbz02 lbz02 231 Apr 11  2018 .bashrc
    [root@lbz01 ~]# cd /etc/skel                                 //应用
    [root@lbz01 skel]# touch readme.txrt
    [root@lbz01 skel]# touch readme.txt
    [root@lbz01 skel]# vim readme.txt
    #运维操作规范
    [root@lbz01 skel]# useradd test01
    [root@lbz01 skel]# su - test01 
    [root@lbz01 skel]# su - test01
    [test01@lbz01 ~]$ cat readme.txt
    #运维操作规范
    [root@lbz01 ~]# ll /home/test01/ -a                          //创建环境
    total 16
    drwx------. 2 test01 test01  83 Jan 22 22:18 .
    drwxr-xr-x. 7 root   root    68 Jan 22 22:15 ..
    -rw-------. 1 test01 test01  22 Jan 22 22:16 .bash_history
    -rw-r--r--. 1 test01 test01  18 Apr 11  2018 .bash_logout
    -rw-r--r--. 1 test01 test01 193 Apr 11  2018 .bash_profile
    -rw-r--r--. 1 test01 test01 231 Apr 11  2018 .bashrc
    [root@lbz01 ~]# rm -fr /home/test01/.b*
    [root@lbz01 ~]# ll /home/test01/ -a
    total 0
    drwx------. 2 test01 test01  6 Jan 22 22:20 .
    drwxr-xr-x. 7 root   root   68 Jan 22 22:15 ..
    [root@lbz01 ~]# su - test01
    Last login: Wed Jan 22 22:15:32 CST 2020 on pts/0
    -bash-4.2$                                                    //出现问题
    -bash-4.2$ cp /etc/skel/.b* /home/test01/                     //解决问题
    -bash-4.2$ exit
    [root@lbz01 ~]# su - test01                                   //问题解决
    Last login: Wed Jan 22 22:21:07 CST 2020 on pts/0
    [test01@lbz01 ~]$
    6.特殊文件
    [test01@lbz01 ~]$ ll  .bash_history
    -rw-------. 1 test01 test01 36 Jan 22 22:24 .bash_history     //历史命令记录文件
    #曾经输入的历史命令保存位置:
    01. 保存在内存中 histroy
    history -c
    02. 保存在磁盘文件中: .bash_history 
    补充:
    [root@lbz01 ~]# su - test01
    Last login: Wed Jan 22 22:24:11 CST 2020 on pts/0
    [test01@lbz01 ~]$ /usr/bin/id -gn                             //显示当前用户的组名
    test01
    [test01@lbz01 ~]$ /usr/bin/id -un                             //显示当前用户名称
    test01

    3.系统的用户(组)命令

    //系统的用户(组)命令
    1.用户(组)相关命令
      1)相关文件
      2)用户参数说明
      3)修改用户信息
      4)用户组命令
    2.用户属主属组命令
    3.用户信息查看
    4.用户权限说明
      1)su
      2)sudo
      3)数据文件权限
    5.特殊权限位
    6.粘滞位
    1.用户(组)相关命令
    1)相关文件
    a)/etc/passwd      --- 记录系统用户信息文件 
    b)/etc/shadow      --- 系统用户密码文件
    c)/etc/group       --- 组用户记录文件
    d)/etc/gshadow     --- 组用户密码信息
    [root@lbz01 ~]# head /etc/passwd                                 //记录系统用户信息文件 
    root:x:0:0:root:/root:/bin/bash                                  ///bin/bash --- 通用的解释器
    bin:x:1:1:bin:/bin:/sbin/nologin                                 ///sbin/nologin --- 无法登录系统
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    #第一列: 用户名
     第二列: 用户密码信息
     第三列: 用户的uid信息
     第四列: 用户的gid信息
     第五列: 用户的注释信息 
     第六列: 用户家目录信息
     第七列: 用户登录系统方式
    2)用户参数说明
    #-s 修改用户的登录方式
     -g 修改用户的主要的组信息
     -G 修改用户的附属组信息
     -c 修改用户的注释信息
    [root@lbz01 ~]# useradd lbz03 -M -s /sbin/nologin                        //创建虚拟用户
    #-M 不创建家目录
     -s 指定使用的shell方式
    [root@lbz01 ~]# id lbz03
    uid=1005(lbz03) gid=1005(lbz03) groups=1005(lbz03)
    [root@lbz01 ~]# grep lbz03 /etc/passwd
    lbz03:x:1005:1005::/home/lbz03:/sbin/nologin
    [root@lbz01 ~]# ll /home/lbz03 -d
    ls: cannot access /home/lbz03: No such file or directory
    [root@lbz01 ~]# useradd lbz07 -u 2005 -g lbz02 -G lbz03                   //创建用户
    #-u 指定用户uid数值信息
     -g 指定用户所属的主要组信息
     -G 指定用户所属的附属组信息
    [root@lbz01 ~]# id lbz07
    uid=2005(lbz07) gid=1003(lbz02) groups=1003(lbz02),1005(lbz03)
    [root@lbz01 ~]# useradd mysql -s /sbin/nologin -M -c "manager database"   //创建用户
    #-c 添加指定用户注释说明信息
    [root@lbz01 ~]# grep mysql /etc/passwd
    mysql:x:2006:2006:manager database:/home/mysql:/sbin/nologin
    3)修改用户信息
    [root@lbz01 ~]# usermod lbz02 -s /sbin/nologin                            a)修改用户shell信息
    [root@lbz01 ~]# grep lbz02 /etc/passwd
    lbz02:x:1003:1003::/home/lbz02:/sbin/nologin
    [root@lbz01 ~]# usermod lbz02 -u 3000                                     b)修改用户uid信息
    [root@lbz01 ~]# id lbz02
    uid=3000(lbz02) gid=1003(lbz02) groups=1003(lbz02)
    [root@lbz01 ~]# userdel -r lbz04                                          c)删除用户信息
    #-r 彻底删除用户以及用户的家目录
    userdel: group lbz04 is the primary group of another user and is not removed.
    [root@lbz01 ~]# ll /home/lbz04 -d
    ls: cannot access /home/lbz04: No such file or directory
    [root@lbz01 ~]# echo 123456|passwd --stdin lbz                            d)非交互式用户密码设置方法
    Changing password for user lbz. 
    passwd: all authentication tokens updated successfully.
    [root@lbz01 ~]# passwd lbz01                                              d)交互式设置密码
    补充:企业中设置密码和管理密码的方式
    01. 密码要复杂12位以上字母数字及特殊符号
    02. 保存好密码信息
    keepass
    密码保险柜,本地存储密码
    lastpass
    密码保险柜,在线存储密码
    03. 大企业用户和密码统一管理(相当于活动目录AD)
    openldap域
    用户信息统一保存在一个用户管理服务器中 用户的家目录中的文件 用户密码 用户名称
    04. 动态密码:动态口令,第三方提供自己开发也很简单。
    4)用户组相关命令
    root@lbz01 ~]# groupadd python                                           //创建用户组
    #groupadd 创建用户组
     groupmod 修改用户组信息
     groupdel 删除用户组信息
    [root@lbz01 ~]# useradd python -g python
    [root@lbz01 ~]# id python
    uid=3001(python) gid=2007(python) groups=2007(python)
    2.用户属主属组命令
    [root@lbz01 ~]# chown lbz.lbz lbz_dir                                    //修改属主和属组信息
    [root@lbz01 ~]# ll lbz_dir -d
    drwxr-xr-x. 2 lbz lbz 40 Jan 23 12:23 lbz_dir
    [root@lbz01 ~]# ll lbz_dir/
    total 0
    -rw-r--r--. 1 root root 0 Jan 23 12:23 lbz_dir.txt
    -rw-r--r--. 1 root root 0 Jan 23 12:23 lbz.txt
    [root@lbz01 ~]# chown -R lbz.lbz lbz_dir                                 //递归修改目录属主和属组信息
    [root@lbz01 ~]# ll lbz_dir -d
    drwxr-xr-x. 2 lbz lbz 40 Jan 23 12:23 lbz_dir
    [root@lbz01 ~]# ll lbz_dir/
    total 0
    -rw-r--r--. 1 lbz lbz 0 Jan 23 12:23 lbz_dir.txt
    -rw-r--r--. 1 lbz lbz 0 Jan 23 12:23 lbz.txt
    3.用户信息查看
    [root@lbz01 ~]# id lbz                                                   1)id 显示用户信息命令
    uid=1000(lbz) gid=1000(lbz) groups=1000(lbz)
    [root@lbz01 ~]# w                                                        2)w显示正在登陆系统的用户信息
     12:29:06 up  4:03,  1 user,  load average: 0.00, 0.01, 0.05   
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    10.0.0.1         08:26    2.00s  0.47s  0.02s w
    #01. 什么用户登录到了系统中
     02. 登录的方式 
         pts/x 远程登录系统
         tty1 本地登录
         [root@lbz01 ~]# echo "请不要修改恢复hosts文件配置" >/dev/pts/1 
     03. 从哪连接的服务器 
     04. 登录时间
     05. IDLE 空闲时间
     06. 用户操作系统 消耗的CPU资源时间
     07. 用户在干什么
    4.用户权限说明
    普通用户如何像root用户一些操作管理系统:
    01. 直接切换到root账户下管理系统 
    02. 直接修改要做的数据文件权限    
    03. root用户赋予了普通用户权利 
        sudo-- root用户授权一个能力给普通用户
    1)第一种方法:su 
    #直接切换用户为root
     su    部分环境变量切换用户有变化
     su -  全部环境变量切换用户有变化
    [lbz@lbz01 ~]$ env|grep lbz
    #默认当前登录系统用户为lbz时,环境变量中会体现出lbz用户信息
    HOSTNAME=lbz01
    USER=lbz
    MAIL=/var/spool/mail/lbz
    PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/lbz/.local/bin:/home/lbz/bin
    PWD=/home/lbz
    HOME=/home/lbz
    LOGNAME=lbz
    [lbz@lbz01 ~]$ su root                                                     a)su
    当用户su命令切换用户,系统中环境变量信息部分会变为root,但更多信息为原有lbz用户信息
    Password:
    [root@lbz01 lbz]# env|grep lbz
    HOSTNAME=lbz01
    USER=lbz
    PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/lbz/.local/bin:/home/lbz/bin
    MAIL=/var/spool/mail/lbz
    PWD=/home/lbz
    LOGNAME=lbz
    [root@lbz01 lbz]# env|grep root
    HOME=/root
    [lbz@lbz01 ~]$ su - root                                                  b)su -
    #当用户su -命令切换用户,系统中环境变量信息会全部切换为root
    Password:
    Last login: Thu Jan 23 12:45:15 CST 2020 on pts/0
    [root@lbz01 ~]# env|grep lbz
    HOSTNAME=lbz01
    [root@lbz01 ~]# env|grep root
    USER=root
    MAIL=/var/spool/mail/root
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    PWD=/root
    HOME=/root
    LOGNAME=root
    2)第二种方法:sudo
    [root@lbz01 ~]# visudo                                                    a)进行授权
    #visudo相当于vi /etc/sudoers(需要排除部分特权命令,如/usr/sbin/*,!/usr/sbin/visudo,/usr/bin/*)
    93 lbz ALL=(ALL) /usr/sbin/useradd, /usr/bin/rm
    [root@lbz01 ~]# visudo -c                                                 //配置好的文件语法检查
    [lbz@lbz01 ~]$sudo -l                                                     b)验证lbz已经获取了root用户能力
    [lbz@lbz01 ~]$sudo useradd lbz08                                          c)执行root用户可以执行的命令
    #sudo 授权的命令
    [lbz@lbz01 ~]$sudo rm -f /etc/hosts
    3)第三种方法:修改数据文件权限
    总结:
    01. 直接切换用户 su - (*)
    优势: 简单快捷
    劣势: 风险太高(root权限泛滥)
    02. 采用sudo提权方式
    优势: 可以利用文件编辑指定用户有哪些指定权限 sa运维部门 dev开发人员
    劣势: 配置规划复杂
    02. 修改数据文件权限 
    9位权限位 属主信息
    优势: 只针对某个数据文件进行修改 只针对某个用户进行授权
    劣势: 需要了解权限位功能
    3位权限位
    优势: 设置权限简单方便
    劣势: 设置好的权限所有用户都拥有
    5.特殊权限位
    [root@lbz01 ~]# ll /bin/cat
    -rwxr-xr-x. 1 root root 54080 Apr 11  2018 /bin/cat
    [root@lbz01 ~]# chmod u+s /bin/cat                                        //设置特殊权限位
    #setuid权限位设置,将文件属主拥有的能力,分配给所有人
     说明:系统文件数据的9个权限位 系统中实际应该有12个权限位
    [root@lbz01 ~]# chmod 4755 /bin/cat
    [root@lbz01 ~]# ll /bin/cat
    -rwsr-xr-x. 1 root root 54080 Apr 11  2018 /bin/cat
    [root@lbz01 ~]# chmod g+s /bin/cat                                        //设置特殊权限位
    #setgid权限位设置,将文件属组拥有的能力,分配给所有用户组
    [root@lbz01 ~]# chmod 6755 /bin/cat
    [root@lbz01 ~]# ll /bin/cat
    -rwsr-sr-x. 1 root root 54080 Apr 11  2018 /bin/cat
    补充: setuid权限一般赋予二进制的命令文件或者一些可执行的脚本文件 
    6.粘滞位 #sticky bit:粘滞位: (创建一个共享目录) 作用: 可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但是不可以互相随意修改 语法:chmod o+t 目录信息 chmod 1777 目录信息 [root@lbz01 ~]# ll -d /tmp/ #系统中已经准备好了一个共享目录,权限位1777 drwxrwxrwt. 18 root root 4096 Jan 23 09:39 /tmp/

    问题及反思:

    如何防范系统中的重要文件不被修改(root用户也不能修改)
    解决方法:给文件加上锁头
    目的: 使root用户也不能直接修改相应文件

    [root@lbz01 ~]# chattr +i /etc/passwd            //设置方法
    [root@lbz01 ~]# lsattr /etc/passwd               //检查
    ----i----------- /etc/passwd
    [root@lbz01 ~]# chattr -i /etc/passwd            //解锁方法
    [root@lbz01 ~]# lsattr /etc/passwd               //检查
    ---------------- /etc/passwd

    版权属于:木丫头

    转载必须声明

  • 相关阅读:
    使用树莓派3获取CPU温度
    使用树莓派控制继电器
    Darknet图像训练的步骤
    Faster-Rcnn图像识别训练的步骤
    Centos7中ELK集群安装流程
    近年来较流行的搜索引擎框架
    机器学习中,使用NMS对框取优
    当前Azure中国可使用的虚拟机的Size列表
    汉语词性对照表[北大标准/中科院标准]
    Linux中禁用THP(Transparent Huge Pages)
  • 原文地址:https://www.cnblogs.com/lbzyyy/p/12118495.html
Copyright © 2011-2022 走看看