linux老男孩 基础部分章节10-----用户管理、用户权限

 

1. 常见面试题

系统的启动流程:

centos6

    01. 加电自检
        检查服务器硬件是否正常
    02. MBR引导
        读取磁盘的MBR存储记录信息,引导系统启动
    03. grup菜单
        选择启动的内核/进行单用户模式重置密码
    04. 加载系统内核信息
        可以更好的使用内核控制硬件
    05. 系统的第一个进程运行起来 init (串行)
        init进程控制后续各种服务的启动: 启动顺序 网络服务 sshd 
    06. 加载系统运行级别文件/etc/inittab
    07. 初始化脚本运行
        初始化系统主机名称 和 网卡信息
    08. 运行系统特殊的脚本
        服务运行的脚本 
    09. 运行mingetty进程
        显示开机登录信息界面  

  centos7    

    01. 加电自检
        检查服务器硬件是否正常
    02. MBR引导
        读取磁盘的MBR存储记录信息,引导系统启动
    03. grup菜单
        选择启动的内核/进行单用户模式重置密码
    04. 加载系统内核信息
        可以更好的使用内核控制硬件    
    05. 系统的第一个进程运行起来 systemd (并行)
        服务启动的时候,同时一起启动
    06. 读取系统启动文件
        /etc/systemd/system/default.target

[xuezy@xue~]$ ll /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 37 Nov 11 23:14 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target


    07. 读取系统初始化文件
        /usr/lib/systemd/system/sysinit.target
    08. 使服务可以开机自启动
        /etc/systemd/system 加载此目录中的信息,实现服务开机自动启动
    09. 运行mingetty进程
        显示开机登录信息界面

2. 用户管理章节

用户概念介绍

    管理员用户  root    0          权利至高无上
    虚拟用户    nobody  1-999     管理进程  没家目录 不能登录系统
    普通用户    oldboy    1000+   权利有限
    r read ----------w write ----------x execute

文件信息

    r     可以读文件的内容
    w   可以编辑文件的内容
    x    执行这个文件(脚本文件)

文件环境准备

oldboy_root.txt -- 属主是root
oldboy.txt -- 属主是oldboy

    [root@oldboyedu ~]# touch oldboy_root.txt
    [root@oldboyedu ~]# ll oldboy_root.txt 
    -rw-r--r--. 1 root root 0 Apr 23 10:02 oldboy_root.txt
    [root@oldboyedu ~]# touch oldboy.txt
    [root@oldboyedu ~]# ll oldboy.txt 
    -rw-r--r--. 1 root root 51 Apr 23 10:02 oldboy.txt
    [root@oldboyedu ~]# chown oldboy oldboy.txt
    [root@oldboyedu ~]# ll oldboy.txt 
    -rw-r--r--. 1 oldboy root 51 Apr 23 10:02 oldboy.txt
    [root@oldboyedu ~]# chmod 000 oldboy_root.txt 
    [root@oldboyedu ~]# chmod 000 oldboy.txt 


    [root@oldboyedu ~]# ll oldboy_root.txt 
    ----------. 1 root root 0 Apr 23 10:02 oldboy_root.txt
    [root@oldboyedu ~]# ll oldboy.txt 
    ----------. 1 oldboy root 51 Apr 23 10:02 oldboy.txt

1.1oldboy_root.txt   ----------.  没有权限

属主root:可以读写,但不能执行

1.2oldboy.txt   ----------.  没有权限

属主普通用户:不能读、执行  能写但会覆盖之前的

用root用户来读:会覆盖之前的内容

1.3oldboy.txt   ----------.  没有权限

其它用户oldgirl: 不能读、执行 ;可以通过vim来写,但会覆盖之前的内容

用root用户来查看:

2.oldboy.txt、oldboy_root.txt都具有读的权限

2.1. root用户可以直接对oldboy_root.txt进行读写 ;但是不能执行

2.2. oldboy属主用户可以直接对oldboy.txt进行读写 

2.3其它用户oldgirl:能读 ; 能通过Vim来强制写

3.只有写的权限

3.1oldboy属主:能写,但不能读

通过root用户可以读

其它用户也是如此

4.只有写的权限

4.1root属主,可以执行

4.2oldboy属主,不能读写,不能执行

oldgirl其它用户,也是这样

5.属主oldboy :有读和执行权限

oldboy.txt 就可以执行


 

环境准备:
[root@xue/home/xuezy]# useradd oldboy
[root@xue/home/xuezy]# useradd oldgirl
[root@xue/home/xuezy/oldtest]# touch oldboy.txt
[root@xue/home/xuezy/oldtest]# touch oldboy_root.txt
[root@xue/home/xuezy/oldtest]# ll oldboy.txt
-rw-r--r--. 1 root root 0 May  7 10:46 oldboy.txt
[root@xue/home/xuezy/oldtest]# ll oldboy_root.txt
-rw-r--r--. 1 root root 0 May  7 10:46 oldboy_root.txt
[root@xue/home/xuezy/oldtest]# chmod 000 ./oldboy.txt 
[root@xue/home/xuezy/oldtest]# chmod 000 ./oldboy_root.txt 
[root@xue/home/xuezy/oldtest]# chown oldboy ./oldboy.txt 

[root@xue/home]# cp  /home/xuezy/oldtest/oldboy.txt /home/oldboy
[root@xue/home]# cp /home/xuezy/oldtest/oldboy.txt  /home/oldgirl/


[root@xue/home/xuezy/oldtest]# ll
total 8
----------. 1 root   root  6 May  7 11:08 oldboy_root.txt
----------. 1 oldboy root 12 May  7 11:27 oldboy.txt


[oldboy@xue~]$ ll
total 4
----------. 1 root root 12 May  7 13:58 oldboy.txt

[oldgirl@xue~]$ ll
total 4
----------. 1 oldgirl oldgirl 6 May  7 13:55 oldboy.txt
无任何权限

[root]
[root@xue/home/xuezy/oldtest]# ll
total 4
----------. 1 root   root 6 May  7 11:08 oldboy_root.txt
----------. 1 oldboy root 0 May  7 10:46 oldboy.txt
[root@xue/home/xuezy/oldtest]# echo "hello" > ./oldboy_root.txt
[root@xue/home/xuezy/oldtest]# cat ./oldboy_root.txt
hello
[root@xue/home/xuezy/oldtest]# ./oldboy_root.txt
bash: ./oldboy_root.txt: Permission denied

[oldboy]
[oldboy@xue/home/xuezy/oldtest]$ cat ./oldboy.txt
cat: ./oldboy.txt: Permission denied
[oldboy@xue/home/xuezy/oldtest]$ echo "hello world" > ./oldboy.txt 
bash: ./oldboy.txt: Permission denied
[oldboy@xue/home/xuezy/oldtest]$ ./oldboy.txt
bash: ./oldboy.txt: Permission denied

但是可以通过Vim来强制写, 这样会覆盖之前的内容为空的内容
[root@xue/home/xuezy/oldtest]# cat ./oldboy.txt 
hello

[oldgirl]
[oldgirl@xue~]$ cat ./oldboy.txt 
cat: ./oldboy.txt: Permission denied
[oldgirl@xue~]$ echo "hello" > ./oldboy.txt 
bash: ./oldboy.txt: Permission denied
[oldgirl@xue~]$ ./oldboy.txt
bash: ./oldboy.txt: Permission denied
[oldgirl@xue~]$ vim ./oldboy.txt
只有读的权限
[root@xue/home/oldboy]# chmod 444 /home/xuezy/oldtest/oldboy_root.txt 
[root@xue/home/oldboy]# chmod 444 /home/xuezy/oldtest/oldboy.txt 
[root@xue/home/oldboy]# chmod 444 /home/oldboy/oldboy.txt 
[root@xue/home/oldboy]# chmod 444 /home/oldgirl/oldboy.txt

[root@xue/home/oldboy]# ll /home/oldgirl/oldboy.txt
-r--r--r--. 1 oldgirl oldgirl 6 May  7 13:55 /home/oldgirl/oldboy.txt
[root@xue/home/oldboy]# ll /home/oldboy/oldboy.txt 
-r--r--r--. 1 oldboy oldboy 2 May  7 14:10 /home/oldboy/oldboy.txt
[root@xue/home/oldboy]# ll /home/xuezy/oldtest/oldboy_root.txt 
-r--r--r--. 1 root root 6 May  7 11:08 /home/xuezy/oldtest/oldboy_root.txt
[root@xue/home/oldboy]# ll /home/xuezy/oldtest/oldboy.txt 
-r--r--r--. 1 oldboy root 12 May  7 11:27 /home/xuezy/oldtest/oldboy.txt

[root]
[root@xue/home/xuezy/oldtest]# cat ./oldboy_root.txt 
hello
[root@xue/home/xuezy/oldtest]# echo "test2" > ./oldboy_root.txt
[root@xue/home/xuezy/oldtest]# ./oldboy_root.txt 
bash: ./oldboy_root.txt: Permission denied
[root@xue/home/xuezy/oldtest]# cat ./oldboy_root.txt 
test2

[oldboy]
[oldboy@xue~]$ cat ./oldboy.txt 
k
[oldboy@xue~]$ echo "test2" > ./oldboy.txt 
bash: ./oldboy.txt: Permission denied
[oldboy@xue~]$ ./oldboy.txt 
bash: ./oldboy.txt: Permission denied
[oldboy@xue~]$ vim ./oldboy.txt
[oldboy@xue~]$ cat ./oldboy.txt 
test2

[oldgirl]
[oldgirl@xue~]$ cat ./oldboy.txt 
hello
[oldgirl@xue~]$ echo "test2" > ./oldboy.txt 
bash: ./oldboy.txt: Permission denied
[oldgirl@xue~]$ ./oldboy.txt
bash: ./oldboy.txt: Permission denied
[oldgirl@xue~]$ vim ./oldboy.txt
[oldgirl@xue~]$ cat ./oldboy.txt 
test2

只有写的权限
[root@xue/home/xuezy/oldtest]# chmod 222  /home/oldboy/oldboy.txt 
[root@xue/home/xuezy/oldtest]# chmod 222  /home/xuezy/oldtest/oldboy.txt 
[root@xue/home/xuezy/oldtest]# chmod 222  /home/xuezy/oldtest/oldboy_root.txt 
[root@xue/home/xuezy/oldtest]# chmod 222  /home/oldgirl/oldboy.txt 
[root@xue/home/xuezy/oldtest]# ll
total 8
--w--w--w-. 1 root   root  6 May  7 14:38 oldboy_root.txt
--w--w--w-. 1 oldboy root 12 May  7 11:27 oldboy.txt
[oldboy@xue~]$ ll
total 4
--w--w--w-. 1 oldboy oldboy 6 May  7 14:39 oldboy.txt
[oldboy@xue~]$ ll
total 4
--w--w--w-. 1 oldboy oldboy 6 May  7 14:39 oldboy.txt

[root]
[root@xue/home/xuezy/oldtest]# cat ./oldboy_root.txt 
test2
[root@xue/home/xuezy/oldtest]# echo "test3" > ./oldboy_root.txt 
[root@xue/home/xuezy/oldtest]# cat ./oldboy_root.txt 
test3
[root@xue/home/xuezy/oldtest]# ./oldboy_root.txt
bash: ./oldboy_root.txt: Permission denied

[oldboy]
[oldboy@xue~]$ cat ./oldboy.txt 
cat: ./oldboy.txt: Permission denied
[oldboy@xue~]$ echo "test3" > ./oldboy.txt
[root@xue/home/xuezy/oldtest]# cat /home/oldboy/oldboy.txt 
test3

只有执行权限
[root@xue/home/xuezy/oldtest]# chmod 111  /home/oldgirl/oldboy.txt 
[root@xue/home/xuezy/oldtest]# chmod 111  /home/xuezy/oldtest/oldboy_root.txt 
[root@xue/home/xuezy/oldtest]# chmod 111  /home/oldboy/oldboy.txt 
[root@xue/home/xuezy/oldtest]# chmod 111  /home/xuezy/oldtest/oldboy.txt 
[root@xue/home/xuezy/oldtest]# 
[root@xue/home/xuezy/oldtest]# ll
total 8
---x--x--x. 1 root   root  6 May  7 15:03 oldboy_root.txt
---x--x--x. 1 oldboy root 12 May  7 11:27 oldboy.txt
[oldboy@xue~]$ ll
total 4
---x--x--x. 1 oldboy oldboy 6 May  7 15:15 oldboy.txt
[oldgirl@xue~]$ ll
total 8
---x--x--x. 1 oldgirl oldgirl 6 May  7 15:18 oldboy.txt

[root]
[root@xue/home/xuezy/oldtest]# ./oldboy_root.txt 
./oldboy_root.txt: line 1: test3: command not found

[oldboy]
[oldboy@xue~]$ cat ./oldboy.txt
cat: ./oldboy.txt: Permission denied
[oldboy@xue~]$ echo "hello" > ./oldboy.txt
bash: ./oldboy.txt: Permission denied

[oldgirl]
同理

6.文件权限配置的结论:
    01. root用户对所有文件有绝对的权限,只要有了执行权限,root用户可以无敌存在(也就是说无论有没有读、写的权限,root用户可以对任何文件进行读写,但是只有拥有了执行的权限,才可以执行文件)
    02. 对于文件来说,写的权限和执行的权限,都需要有读权限配合
    03. 如何想对文件进行操作,必须对文件赋予读的权限

    

目录信息

    r  读目录中的文件属性信息
    w  可以在目录中添加或删除文件数据信息
    x  是否可以进入到目录中
 1.对于root用户来说,目录没有任何权限,仍然可以读、写、执行

[root@xue/home/xuezy]# mkdir oldboy_root
[root@xue/home/xuezy]# ll -d oldboy_root
drwxr-xr-x. 2 root root 6 May  8 10:12 oldboy_root
[root@xue/home/xuezy]# chmod 0  oldboy_root
[root@xue/home/xuezy]# ll -d oldboy_root
d---------. 2 root root 6 May  8 10:12 oldboy_root
[root@xue/home/xuezy]# touch oldboy_root/root.txt
[root@xue/home/xuezy]# ll oldboy_root
total 0
-rw-r--r--. 1 root root 0 May  8 10:12 root.txt
[root@xue/home/xuezy]# cd oldboy_root 
[root@xue/home/xuezy/oldboy_root]# ll
total 0
-rw-r--r--. 1 root root 0 May  8 10:12 root.txt

1.1oldboy操作没有任何权限的目录

[root@xue/home/xuezy/oldboy_root]# chmod 000 /home/oldboy/oldboy_dir
[root@xue/home/xuezy/oldboy_root]# ll -d /home/oldboy/oldboy_dir
d---------. 2 oldboy oldboy 6 May  8 10:19 /home/oldboy/oldboy_dir

[oldboy@xue~]$ ll -d oldboy_dir/
d---------. 2 oldboy oldboy 6 May  8 10:19 oldboy_dir/
[oldboy@xue~]$ ll oldboy_dir/
ls: cannot open directory oldboy_dir/: Permission denied
[oldboy@xue~]$ touch oldboy_dir/oldboy.txt
touch: cannot touch ‘oldboy_dir/oldboy.txt’: Permission denied
[oldboy@xue~]$ cd oldboy_dir/
bash: cd: oldboy_dir/: Permission denied

2.当目录赋予读的权限

[root@xue/home/xuezy/oldboy_root]# chmod 444  /home/oldboy/oldboy_dir
[root@xue/home/xuezy/oldboy_root]# ll -d /home/oldboy/oldboy_dir
dr--r--r--. 2 oldboy oldboy 6 May  8 10:19 /home/oldboy/oldboy_dir
[root@xue/home/xuezy/oldboy_root]# ll /home/oldboy/oldboy_dir
total 0
[root@xue/home/xuezy/oldboy_root]# touch /home/oldboy/oldboy_dir/oldboy.txt
[oldboy@xue~]$ ll oldboy_dir/
ls: cannot access oldboy_dir/oldboy.txt: Permission denied
total 0
-????????? ? ? ? ?            ? oldboy.txt


[oldboy@xue~]$ touch oldboy_dir/oldboy2.txt
touch: cannot touch ‘oldboy_dir/oldboy2.txt’: Permission denied
[oldboy@xue~]$ cd /oldboy_dir
bash: cd: /oldboy_dir: No such file or directory

3.只有写的权限

[root@xue/home/oldboy]# chmod 222 /home/oldboy/oldboy_dir
[root@xue/home/oldboy]# ll
total 4
d-w--w--w-. 2 oldboy oldboy 24 May  8 11:03 oldboy_dir
---x--x--x. 1 oldboy oldboy  9 May  7 16:04 oldboy.txt


[oldboy@xue~]$ touch oldboy_dir/oldboy2.txt
touch: cannot touch ‘oldboy_dir/oldboy2.txt’: Permission denied
[oldboy@xue~]$ ll oldboy_dir/
ls: cannot open directory oldboy_dir/: Permission denied
[oldboy@xue~]$ cd oldboy_dir/
bash: cd: oldboy_dir/: Permission denied

4.只有执行的权限

[root@xue/home/oldboy]# chmod 111  /home/oldboy/oldboy_dir
[root@xue/home/oldboy]# ll -d /home/oldboy/oldboy_dir
d--x--x--x. 2 oldboy oldboy 24 May  8 11:03 /home/oldboy/oldboy_dir


[oldboy@xue~]$ touch  oldboy_dir/oldboy.txt
touch: cannot touch ‘oldboy_dir/oldboy.txt’: Permission denied
[oldboy@xue~]$ ll oldboy_dir/
ls: cannot open directory oldboy_dir/: Permission denied
[oldboy@xue~]$ cd oldboy_dir/
[oldboy@xue~/oldboy_dir]$ ll -al
ls: cannot open directory .: Permission denied

    目录权限配置的结论:

    01. root用户对目录信息有绝对权限
    02. 对于目录来说,写的权限和读的权限,都需要有执行权限配合
    03. 如何想对目录进行操作,必须对目录赋予执行的权限

    一个普通文件默认权限: 644  保证属主用户对文件可以编辑  保证其他用户可以读取文件内容
    一个目录文件默认权限: 755  保证属主用户对目录进行编辑  保证其他用户可以读取目录中的信息,可以进入到目录中

问题:

	[oldboy@oldboyedu ~]$ ll /home/oldboy/oldboy_dir/文件 
    ls: cannot access oldboy_dir/oldboy.txt: Permission denied
    total 0
    -????????? ? ? ? ?            ? oldboy.txt

   /           inode (5 r_x) -- block (home)
    home        inode (5 r_x) -- block (oldboy)
    oldboy       inode (7 rwx) -- block (oldboy_dir)
    oldboy_dir  inode (4 r--) -- block (目录中文件名称)
    无法进入目录
    oldboy.txt  inode 目录中的文件inode信息无法获取,会显示文件属性信息为??? 

3.文件目录数据设置权限

    1) 根据用户信息进行设定 (属主 属组 其他用户)
       属主-user       u  
       属组-group      g 
       其他用户-other  o 
       chmod u+r/w/x u-r/w/x u=rw
       chmod g+r/w/x u-r/w/x u=rw
       chmod o+r/w/x u-r/w/x u=rw
    2) 根据用户进行批量设定
       数值设定:
       [root@oldboyedu ~]# chmod 761 oldboy.txt
       [root@oldboyedu ~]# ll oldboy.txt
       -rwxrw---x. 1 root root 0 Apr 23 11:42 oldboy.txt

       字符设定:
       [root@oldboyedu ~]# chmod a=x oldboy.txt
       [root@oldboyedu ~]# ll oldboy.txt
       ---x--x--x. 1 root root 0 Apr 23 11:42 oldboy.txt

    问题一: 为什么创建的文件和目录权限一致

     目录权限都是 755
     文件权限都是 644 

[xuezy@xue~]$ umask
0002

    默认文件权限: 666 - 022 = 644
    umask数值是奇数  666 - 033 = 633 + 11 = 644
    umask数值是偶数  666 - 022 = 644
    
    默认目录权限: 777 - 022 = 755    
    umask数值是奇数  777 - 033 = 744
    umask数值是偶数  777 - 022 = 755    

临时修改umask:
[xuezy@xue~]$ umask 033   

       umask(内置命令): 可以影响系统数据默认权限

   问题二: 如何永久修改umask信息

    vim /etc/profile
    if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
      umask 002
    else
      umask 022  --- 可以永久修改umask数值
    fi


UID>199  而且  用户的组名、当前用户的名称 相同
umask 002 
默认文件权限666-002 = 664 rw-rw-r--
默认目录权限777-002 = 775 rwxrwxr-x
umask 022 
默认文件权限666-022 = 644 rw-r--r--
默认目录权限777-022 = 755 rwxr-xr-x

  $UID: 显示当前登录系统用户id数值
       判断比较符号
       -gt greater than  >
       -lt less than     <
       -eq equal         ==
       -ge greater && equal >=
       -le less && equal    <=
       -ne not equal     <>
       /usr/bin/id -gn  -- 显示当前用户的组名
       /usr/bin/id -un  -- 显示当前用户名称

   系统中的一个特殊的目录: /etc/skel  样板房 

    [root@oldboyedu ~]# ll /etc/skel/ -a
    total 24
    drwxr-xr-x.  2 root root   62 Apr 11  2018 .
    drwxr-xr-x. 81 root root 8192 Apr 23 12:11 ..
    -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        别名和环境变量(只针对某个用户)  家规

    -rw-------.  1 oldboy oldgirl 1454 Apr 24 09:12 .bash_history   --- 历史命令记录文件
    曾经输入的历史命令保存位置:
    01. 保存在内存中      histroy
         history -c
    02. 保存在磁盘文件中: .bash_history 
      Ctrl+r 可以搜索使用过的命令
    -rw-------.  1 oldboy oldgirl  651 Apr 23 10:16 .viminfo        --- vim样式设置
    自动加载文件样式信息
    #!/bin/bash
    # 编写人: oldboy
    # 编写时间: 2019
    # 脚本作用: 

  useradd oldgirl --> /home/oldgirl/ --> 目录中的数据内容会参考/etc/skel目录中的信息
    
    /etc/skel目录作用:
    01. 目录中可以存储运维操作规范说明文件

新用户new01:


    02. 调整命令提示符信息


 全部删除后, 出现问题: 命令提示符: -bash-4.2$ 



恢复:

    -bash-4.2$ cp /etc/skel/.b* /home/new01/

作业:
01. chmod命令使用方法进行总结

4. 系统中和用户相关的文件

4.1/etc/passwd*****  --- 记录系统用户信息文件 

 [root@oldboyedu oldboy]# head /etc/passwd
    root    :x  :0  :0  :root    :/root            :/bin/bash
    bin     :x  :1  :1  :bin     :/bin             :/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
    01      02  03  04  05       06                 07
   用户名   密码 uid gid 注释     家目录              用户登录系统方式

 第五列: 用户的注释信息 
            mysql(manager database user)
            www  (manager web server)
第七列: 用户登录系统方式
            /bin/bash       --- 通用的解释器
            /usr/bin/sh     --- 等价于/bin/bash
            /usr/bin/bash
            /sbin/nologin       --- 无法登录系统
            /usr/sbin/nologin、

4.2 /etc/shadow*      --- 系统用户密码文件

4.3 /etc/group*       --- 组用户记录文件

4.4 /etc/gshadow*     --- 组用户密码信息

5. 系统用户相关命令

 a.创建用户命令

      useradd oldboy   普通用户被创建出来
      useradd oldboy01 -M -s /sbin/nologin 虚拟用户被创建出来
      -M 不创建家目录
      -s 指定使用的shell方式

[root@xue/home/xuezy]# useradd Alex -M -s /sbin/nologin
[root@xue/home/xuezy]# id Alex
uid=1004(Alex) gid=1004(Alex) groups=1004(Alex)
[root@xue/home/xuezy]# grep Alex /etc/passwd
Alex:x:1004:1004::/home/Alex:/sbin/nologin
[root@xue/home/xuezy]# ll /home/Alex -d
ls: cannot access /home/Alex: No such file or directory

      useradd Alex03 -u 2000
      -u 指定用户uid数值信息

[root@xue/home/xuezy]# useradd Alex03 -u 2000
[root@xue/home/xuezy]# id Alex03
uid=2000(Alex03) gid=2000(Alex03) groups=2000(Alex03)

       useradd Alex04 -u 2001 -g Alex02
      -g 指定用户所属的主要组信息

[root@oldboyedu oldboy]# id Alex04
uid=2001(Alex04) gid=1068(Alex02) groups=1068(Alex02)
[root@oldboyedu oldboy]# useradd Alex05 -u 2002 -g 1068
[root@oldboyedu oldboy]# id Alex05
uid=2002(Alex05) gid=1068(Alex02) groups=1068(Alex02)

      [root@oldboyedu oldboy]# useradd Alex07 -u 2004 -g Alex02 -G Alex03
      -G 指定用户所属的附属组信息

[root@oldboyedu oldboy]# id Alex07
uid=2004(Alex07) gid=1068(Alex02) groups=1068(Alex02),2000(Alex03)

      useradd mysql -s /sbin/nologin -M -c "manager database"
      -c 添加指定用户注释说明信息

[root@oldboyedu oldboy]# grep mysql /etc/passwd
mysql:x:2005:2005:manager database:/home/mysql:/sbin/nologin

b 修改用户信息

      usermod
      -s    修改用户的登录方式
      -g    修改用户的主要的组信息
      -G    修改用户的附属组信息
      -c    修改用户的注释信息
      -u    修改用户uid信息

      修改用户shell信息
      [root@oldboyedu oldboy]# usermod Alex02 -s /sbin/nologin
      [root@oldboyedu oldboy]# grep Alex02 /etc/passwd
      Alex02:x:1068:1068::/home/Alex02:/sbin/nologin

      修改用户uid信息
      [root@oldboyedu oldboy]# usermod Alex02 -u 3000
      [root@oldboyedu oldboy]# id Alex02
      uid=3000(Alex02) gid=1068(Alex02) groups=1068(Alex02)

c 删除用户信息

      userdel
      userdel -r Alex04
      -r 彻底删除用户以及用户的家目录

[root@oldboyedu oldboy]# ll /home/Alex04 -d
ls: cannot access /home/Alex04: No such file or directory
[root@oldboyedu oldboy]# useradd Alex04

d 用户密码设置方法

      交互式设置密码
      passwd oldboy 
      非交互设置密码
      echo 123456|passwd --stdin oldboy
      现在都在使用
      企业中设置密码和管理密码的方式

      01. 密码要复杂12位以上字母数字及特殊符号
      02. 保存好密码信息
          keepass
          密码保险柜,本地存储密码
          lastpass
          密码保险柜,在线存储密码
      03. 大企业用户和密码统一管理(相当于活动目录AD)
          openldap域
          用户信息统一保存在一个用户管理服务器中 用户的家目录中的文件 用户密码 用户名称
      04. 动态密码:动态口令,第三方提供自己开发也很简单。

6. 用户组相关命令

   # groupadd 创建用户组

    [root@oldboyedu oldboy]# groupadd python
    [root@oldboyedu oldboy]# useradd python -g python
    [root@oldboyedu oldboy]# id python
    uid=3003(python) gid=3003(python) groups=3003(python)   

# groupmod 修改用户组信息
# groupdel 删除用户组信息

7. 用户属主属组设置命令

    chown  修改属主和属组信息

    [root@oldboyedu oldboy]# ll /etc/hosts
    -rw-r--r--. 2 root root 192 Apr 15 12:19 /etc/hosts
    [root@oldboyedu oldboy]# chown oldboy.root /etc/hosts
    [root@oldboyedu oldboy]# ll /etc/hosts
    -rw-r--r--. 2 oldboy root 192 Apr 15 12:19 /etc/hosts

    chown -R  递归修改目录属主和属组信息   

    [root@oldboyedu oldboy]# ll oldboy_dir -d
    dr-xr-xr-x. 2 oldboy oldgirl 24 Apr 23 10:36 oldboy_dir
    [root@oldboyedu oldboy]# touch oldboy_dir/root.txt
    [root@oldboyedu oldboy]# ll oldboy_dir/root.txt
    -rw-r--r--. 1 root root 0 Apr 24 11:29 oldboy_dir/root.txt
    [root@oldboyedu oldboy]# id Alex01
    uid=1067(Alex01) gid=1067(Alex01) groups=1067(Alex01)
    [root@oldboyedu oldboy]# chown Alex01.Alex01 oldboy_dir
    [root@oldboyedu oldboy]# ll oldboy_dir -d
    dr-xr-xr-x. 2 Alex01 Alex01 40 Apr 24 11:29 oldboy_dir
    [root@oldboyedu oldboy]# ll oldboy_dir/
    total 0
    -rw-r--r--. 1 root root 0 Apr 23 10:36 oldboy.txt
    -rw-r--r--. 1 root root 0 Apr 24 11:29 root.txt
    [root@oldboyedu oldboy]# chown -R Alex01.Alex01 oldboy_dir
    [root@oldboyedu oldboy]# ll oldboy_dir -d
    dr-xr-xr-x. 2 Alex01 Alex01 40 Apr 24 11:29 oldboy_dir
    [root@oldboyedu oldboy]# ll oldboy_dir/
    total 0
    -rw-r--r--. 1 Alex01 Alex01 0 Apr 23 10:36 oldboy.txt
    -rw-r--r--. 1 Alex01 Alex01 0 Apr 24 11:29 root.txt

8. 用户信息查看命令

    a id  显示用户信息命令 (uid gid)

[root@xue/home/xuezy]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

   b w   显示正在登陆系统的用户信息

[root@xue/home/xuezy]# w
 10:13:38 up 42 min,  1 user,  load average: 0.00, 0.01, 0.03
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
xuezy    pts/0    192.168.144.19   09:31    2.00s  0.13s  0.34s sshd: xuezy [priv] 
 01      02       03               04       05     06     07

      01. 什么用户登录到了系统中
      02. 登录的方式  
          pts/x 远程登录系统
          tty1  本地登录
          [root@oldboyedu oldboy]# echo "请不要修改恢复hosts文件配置" >/dev/pts/1 
      03. 从哪连接的服务器 
      04. 登录时间
      05. IDLE 空闲时间
      06. 用户操作系统 消耗的CPU资源时间
      07. 用户在干什么

last 哪个用户在什么时候从哪里远程登录你的系统 用户登录的信息

[xuezy@xue~]$ last
xuezy    pts/0        192.168.144.19   Fri May 28 13:58   still logged in   
reboot   system boot  3.10.0-1160.11.1 Fri May 28 12:10 - 13:58  (01:47)    
xuezy    pts/0        192.168.144.19   Mon May 24 15:53 - crash (3+20:17)   
reboot   system boot  3.10.0-1160.11.1 Mon May 24 15:52 - 13:58 (3+22:05)   
xuezy    pts/0        192.168.144.19   Fri May 21 15:42 - crash (3+00:09)   

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

[xuezy@xue~]$ lastlog 
Username         Port     From             Latest
root             pts/0                     Mon May 24 15:54:40 +0800 2021
bin                                        **Never logged in**
xuezy            pts/0    192.168.144.19   Fri May 28 13:58:21 +0800 2021
test             pts/0                     Tue Feb  2 14:20:44 +0800 2021
ntp                                        **Never logged in**
oldboy           pts/1                     Wed May 12 19:14:57 +0800 2021

 

9. 用户权限说明

普通用户如何像root用户一些操作管理系统:
    01. 直接切换到root账户下管理系统   篡权夺位
    02. 直接修改要做的数据文件权限    
    03. root用户赋予了普通用户权利     大宝剑--sudo

sudo root用户授权一个能力给普通用户
a 怎么进行授权:

          visudo
          93 oldboy  ALL=(ALL)       /usr/sbin/useradd, /usr/bin/rm

b 如何验证oldboy已经获取了root用户能力

  [oldboy@oldboyedu ~]$ sudo -l 
          We trust you have received the usual lecture from the local System
          Administrator. It usually boils down to these three things:
          
              #1) Respect the privacy of others.
              #2) Think before you type.
              #3) With great power comes great responsibility.
          [sudo] password for oldboy: 
          User oldboy may run the following commands on oldboyedu:
              (ALL) /usr/sbin/useradd, /usr/bin/rm

c 执行root用户可以执行的命令

          [oldboy@oldboyedu ~]$ sudo useradd Alex06
          useradd: user 'Alex06' already exists
          [oldboy@oldboyedu ~]$ sudo useradd Alex07
          useradd: user 'Alex07' already exists
          [oldboy@oldboyedu ~]$ sudo useradd Alex08
          [oldboy@oldboyedu ~]$ sudo rm -f /etc/hosts

直接切换用户为root    su - 
          su - /su 有什么区别
          su    部分环境变量切换用户有变化
          su -  全部环境变量切换用户有变化

          演示说明:

[oldboy@oldboyedu ~]$ env|grep oldboy
          HOSTNAME=oldboyedu.com
          USER=oldboy
          MAIL=/var/spool/mail/oldboy
          PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oldboy/.local/bin:/home/oldboy/bin
          PWD=/home/oldboy
          HOME=/home/oldboy
          LOGNAME=oldboy
          说明: 默认当前登录系统用户为oldboy时,环境变量中会体现出oldboy用户信息
          [oldboy@oldboyedu ~]$ su root
          Password: 
          [root@oldboyedu oldboy]# env|grep root
          HOME=/root
          [root@oldboyedu oldboy]# env|grep oldboy
          HOSTNAME=oldboyedu.com
          USER=oldboy
          PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oldboy/.local/bin:/home/oldboy/bin
          MAIL=/var/spool/mail/oldboy
          PWD=/home/oldboy
          LOGNAME=oldboy
          说明: 当用户su命令切换用户,系统中环境变量信息部分会变为root,但更多信息为原有oldboy用户信息
          [oldboy@oldboyedu ~]$ su - root
          Password: 
          Last login: Thu Apr 25 08:51:40 CST 2019 on pts/0
          [root@oldboyedu ~]# 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
          说明: 当用户su -命令切换用户,系统中环境变量信息会全部切换为root

sudo功能配置说明
    a 如何配置sudo权限信息:
      visudo(推荐使用:语法检查功能) == vi /etc/sudoers

      [root@oldboyedu ~]# visudo -c   --- 配置好的文件语法检查
      /etc/sudoers: parsed OK

扩展配置方法:
      1) 授权单个命令或多个命令
         /usr/sbin/useradd, /usr/bin/rm, ,
      2) 授权单个命令目录或多个命令目录 (需要排除部分特权命令)
         /usr/sbin/*, !/usr/sbin/visudo , /usr/bin/*
      3) 不需要输入用户密码,可以直接sudo方式执行命令
         NOPASSWD: /usr/sbin/*, !/usr/sbin/visudo , /usr/bin/*
      

10. 设置特殊权限位

    rwx -w- --x  系统文件数据的9个权限位  系统中实际应该有12个权限位

setuid: 4

    权限设置方法:
    chmod u+s  文件信息
    chmod 4755 文件信息 
    [root@oldboyedu ~]# ll /bin/cat
    -rwsr-xr-x. 1 root root 54080 Apr 11  2018 /bin/cat
    在属主权限位多出s信息
    总结: setuid权限位设置,将文件属主拥有的能力,分配给所有人

  •          setuid: (4XXX)将文件数据的属主权限,赋予其他所有的用户
  •          setuid权限一般赋予二进制的命令文件或者一些可执行的脚本文件 

setgid: 2

    [root@oldboyedu ~]# chmod g+s /bin/cat
    [root@oldboyedu ~]# ll /bin/cat
    -rwsr-sr-x. 1 root root 54080 Apr 11  2018 /bin/cat
    [root@oldboyedu ~]# chmod 2755 /bin/cat
    [root@oldboyedu ~]# ll /bin/cat
    -rwxr-sr-x. 1 root root 54080 Apr 11  2018 /bin/cat
    [root@oldboyedu ~]# chmod 6755 /bin/cat
    [root@oldboyedu ~]# ll /bin/cat
    -rwsr-sr-x. 1 root root 54080 Apr 11  2018 /bin/cat
    总结: setgid权限位设置,将文件属组拥有的能力,分配给所有用户组  

sticky bit:粘滞位: (创建一个共享目录) 1

    作用: 
    可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但是不可以互相随意修改
    设置方法: 
    chmod o+t  目录信息
    chmod 1777 目录信息
    系统中已经准备好了一个共享目录,权限位1777
    [root@oldboyedu ~]# ll -d /tmp/
    drwxrwxrwt. 10 root root 4096 Apr 25 09:35 /tmp/

11. 如何防范系统中的重要文件不被修改(root用户也不能修改)

给文件加上锁头: 
    目的: 使root用户也不能直接修改相应文件
    设置方法: 

    chattr +i /etc/passwd

    解锁方法:

    chattr -i /etc/passwd

    检查方法

    [root@oldboyedu ~]# lsattr /etc/passwd
    ----i----------- /etc/passwd

为保安全,可以修改路径,修改名称

总结: 普通用户拥有root用户能力

    01. 直接切换用户 su - (*)
        优势: 简单快捷
        劣势: 风险太高(root权限泛滥)
        
    02. 修改数据文件权限  9位权限位 属主信息
        优势: 只针对某个数据文件进行修改 只针对某个用户进行授权
        劣势: 需要了解权限位功能 

    03. 采用sudo提权方式
        优势: 可以利用文件编辑指定用户有哪些指定权限  sa运维部门 dev开发人员
        劣势: 配置规划复杂
    
    04. 修改数据文件权限  3位权限位
        优势: 设置权限简单方便
        劣势: 设置好的权限所有用户都拥有

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值