用户锁定与权限管理

权限管理

用户锁定与权限管理

文章目录

    • 权限管理
      • 用户锁定与权限管理
        • 1.用户锁定
          • 1.1 锁定账号 /-L
          • 1.2 解锁账号 /-U
        • 2.权限管理 设置权限 chmod --- change mode
        • 文件的权限针对**属主**(u-,第一个root,拥有者),**属组**(g,第二个root,组的成员)和**其他**(o),除了属主和属组之外)进行定义
          • 2.1 权限只针对普通用户,Read 读 Write 写 eXecute 执行 ---程序和脚本
          • 2.2 针对文件 普通文件没有执行权限 x
          • 2.3 文件 脚本文件执行权限
          • 2.4 目录必须跟执行权限配合
          • 2.5 用数字代替 --- r 4 w 2 x 1
          • 2.6 修改文件属主,属组的命令chown---change owner(改变拥有者),只能管理员能用
          • 2.7 遮罩码 ---umask
          • **文件默认是不能具有执行权限的,如果算得的结果有执行权限则将其权限整体加1。**
        • 3.linux上下文
        • 4.特殊权限
        • 5.文件系统访问列表 --- face 利用文件扩展保存额外的访问控制权限
        • 6.sudo可以实现某个用户能够以另外哪一个用户的身份通过哪些主机执行什么命令(权限委派)
        • 7.管理命令
          • 7.1 sleep s:秒,默认 m:分 h:小时 d:天

1.用户锁定

1.1 锁定账号 /-L
[root@SYL2 ~]# echo 'run123' | passwd --stdin buliangren  //设密码
Changing password for user buliangren.
passwd: all authentication tokens updated successfully.
[root@SYL2 ~]# tail /etc/shadow
tom:$6$AWT07jr1LJ4NICve$b9mFSqRNEfsMQttsmF0weIqitnSygAAWhCWB1/JPOcoad3JvrFPlv9IyngBH6oOsn4khPA.8Ph60ZH7RhHhne/:19081:0:99999:7:::
timi:$6$Ol6bKJygBe/rSQAm$m.TyIj2FZT21oNwvlmS/xIxVKuoC6fkF8wAYdahBCBdW54AaZCuldyanQ.yZtqOWeXutpmMZb7UhWWyw9s/5y1:19081:0:99999:7:::
buliangren:$6$Ksm6sr6QFB1s.19J$zOuvZWyEg9QiPi/yVcc4RdPNW3XnVkbPLg29Y9kEnzwtMUU0LFLJ8KZOhniT2eKEEKQGmNZne9CtL92.Gm7tX.:19081:0:99999:7:::
[root@SYL2 ~]# usermod -L buliangren  //锁定账号
[root@SYL2 ~]# tail /etc/shadow
buliangren:!$6$Ksm6sr6QFB1s.19J$zOuvZWyEg9QiPi/yVcc4RdPNW3XnVkbPLg29Y9kEnzwtMUU0LFLJ8KZOhniT2eKEEKQGmNZne9CtL92.Gm7tX.:19081:0:99999:7:::  //密码前有个!
1.2 解锁账号 /-U
[root@SYL2 ~]# usermod -U buliangren   //解锁账号
[root@SYL2 ~]# tail /etc/shadow
buliangren:$6$Ksm6sr6QFB1s.19J$zOuvZWyEg9QiPi/yVcc4RdPNW3XnVkbPLg29Y9kEnzwtMUU0LFLJ8KZOhniT2eKEEKQGmNZne9CtL92.Gm7tX.:19081:0:99999:7:::  //密码前没有!代表解锁

2.权限管理 设置权限 chmod — change mode

文件的权限针对属主(u-,第一个root,拥有者),属组(g,第二个root,组的成员)和其他(o),除了属主和属组之外)进行定义

2.1 权限只针对普通用户,Read 读 Write 写 eXecute 执行 —程序和脚本
    r  w  x
    4  2  1
  • 权限 操作对象 说明
    r 文件 读,可以使用类似cat等命令查看文件内容
    w 文件 写,可以编辑或删除此文件
    x 文件 执行,程序文件,脚本文件
    r 目录 可以对此目录执行ls以列出内部
    w 目录 可以在此目录中创建文件,也可删除此目录中的文件
    x 目录 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息必须有
2.2 针对文件 普通文件没有执行权限 x
  • 进入管理员root写入一个文件

  • [root@SYL2 ~]# echo 'hello hello' > ~timi/abc
    
  • 在timi用户查看

  • [timi@SYL2 ~]$ ll
    total 4
    -rw-r--r--. 1 root root 12 Mar 30 15:40 abc  //可以看出abc的拥有者root可以读写,这个组可以读,timi这个用户只能读也能删(在timi家中)
    [timi@SYL2 ~]$ cat abc
    hello hello
    [timi@SYL2 ~]$ rm -f abc
    [timi@SYL2 ~]$ ll
    total 0
      
    
  • 设置权限,timi权限为空

  • [root@SYL2 ~]# chmod o= ~timi/abc
    [root@SYL2 ~]# 
    [timi@SYL2 ~]$ ll
    total 4
    -rw-r-----. 1 root root 12 Mar 30 15:56 abc
    
    [timi@SYL2 ~]$ cat abc  //切换账号,不能读,只能删,在timi家中
    cat: abc: Permission denied
    [timi@SYL2 ~]$ rm -f abc
    [timi@SYL2 ~]$ ll
    total 0
    [timi@SYL2 ~]$ 
    
    
  • 创建在opt目录下,timi用户下时把权限改成r,timi没有删除和写看等权限,权限改为w,timi则没有看和删除。因为创建在目录下的文件属于root这个主和组中

  • [root@SYL2 ~]# echo 'hello hello' > /opt/abc
    [root@SYL2 ~]# 
    
    [timi@SYL2 ~]$ cd /opt/
    [timi@SYL2 opt]$ ll
    total 4
    -rw-r--r--. 1 root root 12 Mar 30 16:00 abc
    [timi@SYL2 opt]$ cat abc
    hello hello
    [timi@SYL2 opt]$ 
    
    [root@SYL2 ~]# chmod o= /opt/abc  //权限为空
    [root@SYL2 ~]# 
    
    [timi@SYL2 opt]$ ll
    total 4
    -rw-r-----. 1 root root 12 Mar 30 16:00 abc
    [timi@SYL2 opt]$ cat abc
    cat: abc: Permission denied
    [timi@SYL2 opt]$ rm -f abc
    rm: cannot remove 'abc': Permission denied
    [timi@SYL2 opt]$ ls
    abc
    [timi@SYL2 opt]$
    
    [root@SYL2 ~]# chmod o=w /opt/abc  //权限能写
    [root@SYL2 ~]# cat /opt/abc
    hello hello
    
    [timi@SYL2 opt]$ echo '666' >> abc
    [timi@SYL2 opt]$ rm -f abc
    rm: cannot remove 'abc': Permission denied
    [timi@SYL2 opt]$
    
    [root@SYL2 ~]# cat /opt/abc
    hello hello
    666
    
    
2.3 文件 脚本文件执行权限
  • 把脚本中的执行(x)权限给去除,管理员能用,普通用户用不了

  • [root@SYL2 ~]# ls /usr/bin/ls
    /usr/bin/ls
    [root@SYL2 ~]# ll /usr/bin/ls
    -rwxr-xr-x. 1 root root 143224 Jul 14  2021 /usr/bin/ls
    [root@SYL2 ~]# chmod o-x /usr/bin/ls //把其他用户执行权限给去掉
    [root@SYL2 ~]# ll /usr/bin/ls
    -rwxr-xr--. 1 root root 143224 Jul 14  2021 /usr/bin/ls
    
    
  • [timi@SYL2 opt]$ ll
    -bash: /usr/bin/ls: Permission denied
    
    [root@SYL2 ~]# chmod o+x /usr/bin/ls
    [root@SYL2 ~]# 
    
    [timi@SYL2 opt]$ ll
    total 4
    -rw-r---w-. 1 root root 16 Mar 30 16:07 abc
    [timi@SYL2 opt]$ 
    
2.4 目录必须跟执行权限配合
  • 目录没有执行(x)权限,timi进不去目录中

  • [timi@SYL2 opt]$ cd qqq/ 
    -bash: cd: qqq/: Permission denied
    [timi@SYL2 opt]$ 
    
    
  • [root@SYL2 ~]# ll /home/
    [root@SYL2 ~]# cd /opt/
    [root@SYL2 opt]# ls
    abc
    [root@SYL2 opt]# mkdir qqq  //创建一个目录
    [root@SYL2 opt]# ll
    total 4
    -rw-r---w-. 1 root root 16 Mar 30 16:07 abc
    drwxr-xr-x. 2 root root  6 Mar 30 16:30 qqq
    [root@SYL2 opt]# chmod o=r abc
    [root@SYL2 opt]# mv abc qqq/   //把abc移到目录
    [root@SYL2 opt]# chmod o=r qqq  //设置目录权限只能读 
    [root@SYL2 opt]# 
    
    [timi@SYL2 opt]$ ll qqq/   
    total 4
    -rw-r--r--. 1 root root 16 Mar 30 16:07 abc
    [timi@SYL2 opt]$ ll qqq/
    ls: cannot access 'qqq/abc': Permission denied
    total 0
    -????????? ? ? ? ?            ? abc
    [timi@SYL2 opt]$ ls qqq
    ls: cannot access 'qqq/abc': Permission denied
    abc
    [timi@SYL2 opt]$ 
    
    [root@SYL2 opt]# chmod o=w qqq  //只有写的权限
    [root@SYL2 opt]# 
    
    [timi@SYL2 opt]$ ll qqq  //timi用户看不成,写不成,删不了
    ls: cannot open directory 'qqq': Permission denied
    [timi@SYL2 opt]$ echo '' >> qqq/999
    -bash: qqq/999: Permission denied
    [timi@SYL2 opt]$ rm -f qqq/999
    rm: cannot remove 'qqq/999': Permission denied
    [timi@SYL2 opt]$ ls qqq/
    ls: cannot open directory 'qqq/': Permission denied
    [timi@SYL2 opt]$ 
    
    
  • 跟执行(x)权限配合

  • [timi@SYL2 opt]$ cd qqq/
    [timi@SYL2 qqq]$ 
    
    
  • 读权限

  • [root@SYL2 opt]# ll
    total 0
    drwxr-xr-x. 4 root root 26 Mar 30 16:45 liyun
    drwxr-x-w-. 2 root root 17 Mar 30 16:32 qqq
    [root@SYL2 opt]# chmod o=rx qqq  //设置能读能执行
    [root@SYL2 opt]# ll
    total 0
    drwxr-xr-x. 4 root root 26 Mar 30 16:45 liyun
    drwxr-xr-x. 2 root root 17 Mar 30 16:32 qqq
    [root@SYL2 opt]# 
    
    [timi@SYL2 opt]$ ll qqq
    total 4
    -rw-r--r--. 1 root root 16 Mar 30 16:07 abc
    [timi@SYL2 opt]$ ls qqq/
    abc
    [timi@SYL2 opt]$ cat qqq/abc
    hello hello
    666
    [timi@SYL2 opt]$ 
    
    [timi@SYL2 opt]$ ll qqq  timi能读
    total 4
    -rw-r--r--. 1 root root 16 Mar 30 16:07 abc
    [timi@SYL2 opt]$ ls qqq/
    abc
    [timi@SYL2 opt]$ cat qqq/abc
    hello hello
    666
    
    
  • 写权限,能删除,能创建,不能修改

  • [root@SYL2 opt]# chmod o=wx qqq
    [root@SYL2 opt]# ls
    liyun  qqq
    
    [timi@SYL2 opt]$ ls /qqq
    ls: cannot access '/qqq': No such file or directory
    [timi@SYL2 opt]$ ls qqq/
    ls: cannot open directory 'qqq/': Permission denied
    [timi@SYL2 opt]$ echo '360' >> qqq/abc
    -bash: qqq/abc: Permission denied
    [timi@SYL2 opt]$ touch 555
    touch: cannot touch '555': Permission denied
    [timi@SYL2 opt]$ touch qqq/555
    [timi@SYL2 opt]$ rm -f qqq/abc
    [timi@SYL2 opt]$ 
    
    [root@SYL2 opt]# ll qqq/
    total 0
    -rw-rw-r--. 1 timi timi 0 Mar 30 16:54 555
    [root@SYL2 opt]# 
    
    
2.5 用数字代替 — r 4 w 2 x 1
  • 例如文件拥有写的权限—662

  • [root@SYL2 opt]# cp -r qqq/555 . //移到到当前目录
    [root@SYL2 opt]# ls
    555  liyun  qqq
    [root@SYL2 opt]# chmod 660 555 //读写 读写 空
    [root@SYL2 opt]# ll
    total 0
    -rw-rw----. 1 root root  0 Mar 30 17:02 555
    drwxr-xr-x. 4 root root 26 Mar 30 16:45 liyun
    drwxr-x-wx. 2 root root 17 Mar 30 16:55 qqq
    [root@SYL2 opt]# 
    
    [timi@SYL2 opt]$ cat 555
    cat: 555: Permission denied
    [timi@SYL2 opt]$ 
    
    
2.6 修改文件属主,属组的命令chown—change owner(改变拥有者),只能管理员能用
  • [root@SYL2 opt]# chown timi liyun  //改拥有者直接改
    [root@SYL2 opt]# ll
    total 0
    -rw-rw----. 1 root root  0 Mar 30 17:02 555
    drwxr-xr-x. 4 timi root 26 Mar 30 16:45 liyun
    drwxr-x-wx. 2 root root 17 Mar 30 16:55 qqq
    [root@SYL2 opt]# chown .timi liyun  //改组前面加个点
    [root@SYL2 opt]# ll
    total 0
    -rw-rw----. 1 root root  0 Mar 30 17:02 555
    drwxr-xr-x. 4 timi timi 26 Mar 30 16:45 liyun
    drwxr-x-wx. 2 root root 17 Mar 30 16:55 qqq
    [root@SYL2 opt]# chown tom.timi liyun //两个都改用户.用户
    [root@SYL2 opt]# ll
    total 0
    -rw-rw----. 1 root root  0 Mar 30 17:02 555
    drwxr-xr-x. 4 tom  timi 26 Mar 30 16:45 liyun
    drwxr-x-wx. 2 root root 17 Mar 30 16:55 qqq
    [root@SYL2 opt]#
    
  • 加大R后面里面都改属性(主,组)

  • [root@SYL2 opt]# mkdir -p ddd/{ap,ao/{77,99}}
    [root@SYL2 opt]# chown -R tom ddd
    [root@SYL2 opt]# ll ddd/
    total 0
    drwxr-xr-x. 4 tom root 37 Mar 30 17:28 ao
    drwxr-xr-x. 2 tom root  6 Mar 30 17:27 ap
    [root@SYL2 opt]# ll ddd/ao/
    total 0
    drwxr-xr-x. 2 tom root 6 Mar 30 17:27 77
    drwxr-xr-x. 2 tom root 6 Mar 30 17:27 99
    -rw-r--r--. 1 tom root 0 Mar 30 17:28 jjj
    [root@SYL2 opt]# 
    
    
2.7 遮罩码 —umask
文件默认是不能具有执行权限的,如果算得的结果有执行权限则将其权限整体加1。
  • 文件 666 最大权限
    目录 777 最大权限

  • [root@SYL2 opt]# ll
    total 0
    -rw-r--r--. 1 root root  0 Mar 30 17:42 abcd //文件 6 4 4
    drwxr-xr-x. 4 tom  root 26 Mar 30 17:27 ddd
    drwxr-xr-x. 4 tom  timi 26 Mar 30 16:45 liyun  //目录 755
    drw-rw-r-x. 2 tom  root 17 Mar 30 16:55 qqq
    [root@SYL2 opt]# umask
    0022  //遮罩码 文件666-022=644 目录777-022=755 
    [root@SYL2 opt]# 
    
    
    
  • 改遮罩码之前的文件不变

  • [root@SYL2 opt]# umask 032
    [root@SYL2 opt]# umask
    0032
    [root@SYL2 opt]# ll
    total 0
    -rw-r--r--. 1 root root  0 Mar 30 17:42 abcd
    drwxr-xr-x. 4 tom  root 26 Mar 30 17:27 ddd
    drwxr-xr-x. 4 tom  timi 26 Mar 30 16:45 liyun
    drw-rw-r-x. 2 tom  root 17 Mar 30 16:55 qqq
    [root@SYL2 opt]# rm -rf abcd ddd liyun qqq
    [root@SYL2 opt]# touch abc
    [root@SYL2 opt]# mkdir xingxing
    [root@SYL2 opt]# ll
    total 0
    -rw-r--r--. 1 root root 0 Mar 30 17:48 abc
    drwxr--r-x. 2 root root 6 Mar 30 17:48 xingxing
    [root@SYL2 opt]# umask
    0032
    [root@SYL2 opt]# 
    
    

3.linux上下文

前提:进程有属主和属组;文件有属主和属组

  • 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有可执行权限;

  • 启动为进程后,其进程的属主为发起者,属组为发起者所属的组

  • 进程访问文件时的权限取决于进程的发起者:

    • 进程的发起者是文件的属主时,则应用文件属主权限
    • 进程的发起者是文件的属组时,则应用文件属组权限
    • 应用文件“其它”权限
  • 用一个用户tom打开属于root账号的文件

  • 进程的发起者是tom,文件的拥有者是root

4.特殊权限

  • SUID(4),s/S 运行程序时,这个程序启动的进程的属主是程序文件自身的属主,而不是启动者为属主 ,如果file本身原来就有执行权限,则SUID显示为s,否则显示为S

  • [root@SYL2 ~]# ll /usr/bin/sleep 
    -rwxr-xr-x. 1 root root 38296 Jul 14  2021 /usr/bin/sleep
    
    [root@SYL2 ~]# ps -ef|grep sleep
    titi       13585   13551  0 19:45 pts/1    00:00:00 sleep 5000
    root       13587    1701  0 19:45 pts/2    00:00:00 grep --color=auto sleep
    [root@SYL2 ~]# 
    
    [root@SYL2 opt]# ll /usr/bin/sleep 
    -rwxr-xr-x. 1 root root 38296 Jul 14  2021 /usr/bin/sleep
    [root@SYL2 opt]# chmod 4755 /usr/bin/sleep  //设置suid时file本身原来就有执行权限,则SUID显示为s
    [root@SYL2 opt]# ll /usr/bin/sleep 
    -rwsr-xr-x. 1 root root 38296 Jul 14  2021 /usr/bin/sleep
    
    [root@SYL2 ~]# ps -ef|grep sleep
    root       43163   26767  0 19:24 pts/2    00:00:00 sleep 6000
    
    [root@SYL2 opt]# chmod u-x /usr/bin/sleep
    [root@SYL2 opt]# ll /usr/bin/sleep //变大写S
    -rwSr-xr-x. 1 root root 38296 Jul 14  2021 /usr/bin/sleep
    
    [root@SYL2 ~]# ps -ef|grep sleep
    root       43163   26767  0 19:24 pts/2    00:00:00 sleep 6000
    
    
    [root@SYL2 opt]# 
    [root@SYL2 opt]# chmod u+x /usr/bin/sleep
    [root@SYL2 opt]# ll /usr/bin/sleep 
    -rwsr-xr-x. 1 root root 38296 Jul 14  2021 /usr/bin/sleep
    [root@SYL2 opt]# 
    
  • SGID(2), s/S 运行程序时,这个程序启动的进程的属组是程序文件自身的属组,而不是启动者所属的基本组

  • 一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件或目录,其所属的组 ,为此设定了SGID的目录的属组

  • 默认情况下创建的目录属于谁,里面所创建的文件就属于当前目录的基本组

  • [root@SYL2 ~]# mkdir ttt
    [root@SYL2 ~]# ll
    total 8
    -rw-r--r--. 1 root root   88 Mar  1 19:16 1.1.txt
    -rw-------. 1 root root 1092 Mar  1 17:08 anaconda-ks.cfg
    drwxr-xr-x. 2 root root    6 Mar 30 19:50 ttt
    [root@SYL2 ~]# cd ttt
    [root@SYL2 ttt]# touch 999
    [root@SYL2 ttt]# ll
    total 0
    -rw-r--r--. 1 root root 0 Mar 30 19:50 999
    [root@SYL2 ttt]# 
    [root@SYL2 ~]# chown .timi abc
    [root@SYL2 ~]# ll
    total 8
    -rw-r--r--. 1 root root   88 Mar  1 19:16 1.1.txt
    drwxr-xr-x. 2 root timi    6 Mar 30 19:55 abc
    -rw-------. 1 root root 1092 Mar  1 17:08 anaconda-ks.cfg
    drwxr-xr-x. 2 root root   17 Mar 30 19:50 ttt
    [root@SYL2 ~]# cd abc
    [root@SYL2 abc]# touch 789
    [root@SYL2 abc]# ll
    total 0
    -rw-r--r--. 1 root root 0 Mar 30 19:56 789
    [root@SYL2 abc]#
    
  • 设置sgid后会继承

  • [root@SYL2 ~]# chmod 2755 abc
    [root@SYL2 ~]# ll
    total 8
    -rw-r--r--. 1 root root   88 Mar  1 19:16 1.1.txt
    drwxr-sr-x. 2 root timi   17 Mar 30 19:56 abc
    -rw-------. 1 root root 1092 Mar  1 17:08 anaconda-ks.cfg
    drwxr-xr-x. 2 root root   17 Mar 30 19:50 ttt
    [root@SYL2 ~]# cd abc
    [root@SYL2 abc]# touch 777
    [root@SYL2 abc]# ll
    total 0
    -rw-r--r--. 1 root timi 0 Mar 30 19:59 777
    -rw-r--r--. 1 root root 0 Mar 30 19:56 789
    [root@SYL2 abc]# 
    
    
  • Sticky(1), t/T 在一个公共目录,能自己创建文件,删除自己的文件,但是不能删除别人创建的文件,

  • [root@SYL2 ~]# mkdir /opt/tmmm
    [root@SYL2 ~]# ll /opt/
    total 0
    drwxr-xr-x. 2 root root 6 Mar 30 20:08 tmmm
    [root@SYL2 ~]# chmod 1777 /opt/tmmm
    [root@SYL2 ~]# ll /opt/
    total 0
    drwxrwxrwt. 2 root root 6 Mar 30 20:08 tmmm
    [root@SYL2 ~]# 
    
    [timi@SYL2 ~]$ cd /opt/tmmm/
    [timi@SYL2 tmmm]$ touch abc
    [timi@SYL2 tmmm]$ ll
    total 0
    -rw-rw-r--. 1 timi timi 0 Mar 30 20:10 abc
    [timi@SYL2 tmmm]$ 
    
    [tom@SYL2 ~]$ cd /opt/tmmm/
    [tom@SYL2 tmmm]$ ls
    abc
    [tom@SYL2 tmmm]$ ll
    total 0
    -rw-rw-r--. 1 timi timi 0 Mar 30 20:10 abc
    [tom@SYL2 tmmm]$ rm -f abc  //删除不了别人创建的
    rm: cannot remove 'abc': Operation not permitted
    [tom@SYL2 tmmm]$ ls
    abc
    [tom@SYL2 tmmm]$ touch 999
    [tom@SYL2 tmmm]$ rm -f 999 //自己的可以删,可以创建,覆盖
    [tom@SYL2 tmmm]$ 
    [timi@SYL2 tmmm]$ echo 'hghg' > abc //
    [timi@SYL2 tmmm]$ cat abc
    hghg
    [timi@SYL2 tmmm]$ > abc
    [timi@SYL2 tmmm]$ cat abc
    [timi@SYL2 tmmm]$ 
    
    
  • 4755    //有SUID,文件权限为755
    2755    //有SGID,文件权限为755
    1755    //有Sticky,文件权限为755
    
-rw- --- ---.
4 suid    s/S 有显示小写s 在前三个权限的中间
2 sgid    s/S          s 在中间的权限的中间
1 sticky  t/T          t 在后三个权限的最后一个位置

5.文件系统访问列表 — face 利用文件扩展保存额外的访问控制权限

  • 设置timi目录中能读能写能执行

  • [root@SYL2 opt]# mkdir runun
    [root@SYL2 opt]# ll
    total 0
    drwxr-xr-x. 2 root root  6 Mar 30 20:21 runun
    drwxrwxrwx. 2 root root 17 Mar 30 20:12 tmmm
    [root@SYL2 opt]# setfacl -m:timi:rwx runun
    setfacl: Option -m: Invalid argument near character 2
    [root@SYL2 opt]# setfacl -m u:timi:rwx runun
    [root@SYL2 opt]# 
    
    [timi@SYL2 runun]$ touch 456
    [timi@SYL2 runun]$ 
    
    [tom@SYL2 runun]$ touch 899
    touch: cannot touch '899': Permission denied
    [tom@SYL2 runun]$ ll
    total 0
    -rw-rw-r--. 1 timi timi 0 Mar 30 20:23 456
    [tom@SYL2 runun]$ 
    
    
  • 设置Tom用户不能进入opt中

  • [root@SYL2 opt]# setfacl -m u:tom:--- runun
    [root@SYL2 opt]# 
    
    [tom@SYL2 ~]$ ll /opt/runun/
    ls: cannot open directory '/opt/runun/': Permission denied
    [tom@SYL2 ~]$ 
    
    
  • 查看文件/目录是否设置成功

  • [root@SYL2 opt]# getfacl runun
    # file: runun
    # owner: root
    # group: root
    user::rwx
    user:tom:r--
    user:timi:rwx
    group::r-x
    mask::rwx
    other::r-x
    
    [root@SYL2 opt]# 
    
    
  • -x 取消

  • [root@SYL2 opt]# setfacl -x u:tom runun
    [root@SYL2 opt]# ll
    total 0
    drwxrwxr-x+ 2 root root 17 Mar 30 20:23 runun
    drwxrwxrwx. 2 root root 17 Mar 30 20:12 tmmm
    [root@SYL2 opt]# getfacl runun
    # file: runun
    # owner: root
    # group: root
    user::rwx
    user:timi:rwx
    group::r-x
    mask::rwx
    other::r-x
    
    [root@SYL2 opt]# 
    
    [tom@SYL2 ~]$ cd /opt/runun
    -bash: cd: /opt/runun: Permission denied
    
    [tom@SYL2 ~]$ cd /opt/runun
    [tom@SYL2 runun]$ 
    
  • -b Remove all

  • [root@SYL2 opt]# setfacl -b runun
    [root@SYL2 opt]# getfacl runun
    # file: runun
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x
    
    [root@SYL2 opt]# 
    

6.sudo可以实现某个用户能够以另外哪一个用户的身份通过哪些主机执行什么命令(权限委派)

sudo的配置文件:/etc/sudoers

[root@SYL2 ~]# ll /etc/sudoers
-r--r-----. 1 root root 4328 Dec 12 13:04 /etc/sudoers
[root@SYL2 ~]# 

1.1使用visudo命令进行sudo的配置,每一行就是一个sudo条目,条目格式如下:

  • who which_hosts=(runas) command
    • who:User_Alias,表示运行命令者的身份
    • which_hosts:Host_Alias,通过哪些主机
    • runas:Runas_Alias,以哪个用户的身份
    • command:Cmnd_Alias,运行哪些命令

2.1别名必须全部而且只能使用大写英文字母的组合,可以使用感叹号取反

别名分类:

  • 用户别名:

    • User_Alias NETWORKADMIN =
      • 用户的用户名
      • 组名,使用%引导
      • 还可以其它已经定义的用户别名
  • 主机别名:

    • Host_Alias =
      • 主机名
      • IP地址
      • 网络地址
      • 其它主机别名
  • Runas别名:

    • Runas_Alias =
      • 用户名
      • %组名
      • 其它的Runas别名
  • 命令别名:

    • Cmnd_Alias =
      • 命令路径
      • 目录(此目录内的所有命令)
      • 其它已定义的命令别名
  • sudo命令语法:sudo [options] COMMAND
        -V      //显示版本编号
        -h      //会显示版本编号及指令的使用方式说明
        -l      //列出当前用户可以使用的所有sudo类命令
        -v      //因为sudo在第一次执行时或是在N分钟内没有执行(N默认为5)会问密码,这个参数 \
                //是重新做一次确认,如果超过N分钟,也会问密码
        -k      //让认证信息失效,如果不指定-k,默认认证信息在5分钟后失效
        -b      //将要执行的指令放在后台执行
        -u USERNAME     //以指定的用户名执行命令,默认为root
    
  • 编辑用户timi能创建用户
    [root@SYL2 ~]# visudo  
    
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    timi    ALL=(ALL)       /usr/sbin/useradd
    ## Allows members of the 'sys' group to run networking, software,
    ## service management apps and more.
    
    [timi@SYL2 ~]$ sudo -l
    [sudo] password for timi: 
    Matching Defaults entries for timi on SYL2:
        !visiblepw, always_set_home, match_group_by_gid,
        always_query_group_plugin, env_reset, env_keep="COLORS
        DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
        env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS
        LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
        LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
        LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
        env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
        XAUTHORITY",
        secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
    
    User timi may run the following commands on SYL2:
        (ALL) /usr/sbin/useradd
    [timi@SYL2 ~]$ sudo useradd run111
    [timi@SYL2 ~]$ 
    
    [root@SYL2 ~]# visudo //编辑timi能创建和删除用户
    
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    timi    ALL=(ALL)       /usr/sbin/useradd, /usr/sbin/userdel
    
    ## Allows members of the 'sys' group to run networking, software,
    ## service management apps and more.
    
    [timi@SYL2 ~]$ sudo userdel -r run111
    [timi@SYL2 ~]$ id run111
    id: ‘run111’: no such user
    [timi@SYL2 ~]$ 
    
    
  • 认证失效 sudo -k

  • [timi@SYL2 ~]$ sudo -k  //把之前认证 失效
    [timi@SYL2 ~]$ sudo -l
    [sudo] password for timi: 不输入密码
    
    Sorry, try again.
    [sudo] password for timi: 
    
    Sorry, try again.
    [sudo] password for timi: 
    sudo: 3 incorrect password attempts
    [timi@SYL2 ~]$ 
    [timi@SYL2 ~]$ sudo useradd run222
    [sudo] password for timi: 
    Sorry, try again.
    [sudo] password for timi: 创建还要输入密码
    [timi@SYL2 ~]$ id run222
    uid=1003(run222) gid=1003(run222) groups=1003(run222)
    [timi@SYL2 ~]$ 
    
    
  • 增加timi创建用户时不用登录密码

  • [root@SYL2 ~]# visudo
    [root@SYL2 ~]#
    root    ALL=(ALL)       ALL
    timi    ALL=(ALL)       NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
    
    ## Allows members of the 'sys' group to run networking, software,
    ## service management apps and more.
    # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
    
    [timi@SYL2 ~]$ sudo useradd run333
    [timi@SYL2 ~]$ 
    

7.管理命令

7.1 sleep s:秒,默认 m:分 h:小时 d:天
[root@SYL2 ~]# sleep 20m;shutdown -h now //休息20分钟后关机

  • w   //显示当前登录到系统的用户有哪些,以及其正在做什么        
    sleep   睡眠,写脚本为防止上一个命令没执行完下一命令就开始执行时可以加上sleep表示停顿#秒后再执行后面的命令 
             
    last       显示/var/log/wtmp文件,显示用户登录历史及系统重启历史                
        -n     显示最近#次的相关信息        
    
    lastb      显示/var/log/btmp文件,显示用户错误的登录尝试                
        -n     显示最近#次的相关信息        
    
    lastlog    显示每个用户最近一次成功登录信息                
        -u (username)  显示特定用户最近的登录信息        
    
    basename        //显示路径基名  
    dirname         //显示路径
    
  • 显示用户登录历史及系统重启历史 last /-n 显示最近#次的相关信息

  • [root@SYL2 ~]# last -3  //显示最近3次的相关信息  
    root     pts/7        192.168.232.1    Wed Mar 30 20:46 - 20:53  (00:07)
    root     pts/6        192.168.232.1    Wed Mar 30 20:46 - 20:53  (00:07)
    root     pts/7        192.168.232.1    Wed Mar 30 19:38 - 19:39  (00:00)
    
    wtmp begins Tue Mar  1 17:09:01 2022
    
    [root@SYL2 ~]# ll /var/log/btmp 
    -rw-rw----. 1 root utmp 6144 Mar 28 10:02 /var/log/btmp
    [root@SYL2 ~]# file /var/log/btmp 
    /var/log/btmp: dBase III DBT, version number 0, next free block index 6
    
    [root@SYL2 ~]# lastb  //显示用户错误的登录尝试 
    root     tty1                          Mon Mar 28 10:02 - 10:02  (00:00)
             tty1                          Wed Mar  2 09:16 - 09:16  (00:00)
    root     tty1                          Tue Mar  1 19:13 - 19:13  (00:00)
    root     tty1                          Tue Mar  1 19:12 - 19:12  (00:00)
             tty1                          Tue Mar  1 19:12 - 19:12  (00:00)
             tty1                          Tue Mar  1 17:09 - 17:09  (00:00)
    root     tty1                          Tue Mar  1 17:09 - 17:09  (00:00)
    
    btmp begins Tue Mar  1 17:09:26 2022
    
    
    [root@SYL2 ~]# lastlog  //显示每个用户最近一次成功登录信息
    Username         Port     From             Latest
    root             pts/7    192.168.232.1    Wed Mar 30 20:46:02 +0800 2022
    tom              pts/4                     Wed Mar 30 20:10:42 +0800 2022
    timi             pts/2                     Wed Mar 30 19:21:28 +0800 2022
    xing                                       **Never logged in**
    run222                                     **Never logged in**
    run333                                     **Never logged in**
    [root@SYL2 ~]# 
    
    

    显示路径基名 basename

  • [root@SYL2 ~]# basename /a/b/c/d/e  // 显示路径基名
    e
    [root@SYL2 ~]# dirname /a/b/c/d/e
    /a/b/c/d
    [root@SYL2 ~]# a=/opt/software/wget-1.5.5.tar.bz2
    [root@SYL2 ~]# basename $a
    wget-1.5.5.tar.bz2
    [root@SYL2 ~]# dirname $a   //显示路径
    /opt/software
    [root@SYL2 ~]#
    
    
    
    [root@SYL2 ~]# lastlog  //显示每个用户最近一次成功登录信息
    Username         Port     From             Latest
    root             pts/7    192.168.232.1    Wed Mar 30 20:46:02 +0800 2022
    tom              pts/4                     Wed Mar 30 20:10:42 +0800 2022
    timi             pts/2                     Wed Mar 30 19:21:28 +0800 2022
    xing                                       **Never logged in**
    run222                                     **Never logged in**
    run333                                     **Never logged in**
    [root@SYL2 ~]# 
    
    

    显示路径基名 basename

  • [root@SYL2 ~]# basename /a/b/c/d/e  // 显示路径基名
    e
    [root@SYL2 ~]# dirname /a/b/c/d/e
    /a/b/c/d
    [root@SYL2 ~]# a=/opt/software/wget-1.5.5.tar.bz2
    [root@SYL2 ~]# basename $a
    wget-1.5.5.tar.bz2
    [root@SYL2 ~]# dirname $a   //显示路径
    /opt/software
    [root@SYL2 ~]#
    

你可能感兴趣的:(linux)