用户身份与文件权限---su命令与sudo服务

用户身份与文件权限---su命令与sudo服务

1,su 命令

su 命令可以在当前用户不退出的情况下切换用户身份

  • root 管理员切换普通用户不需要密码验证
  • 普通用户切换到 root 管理员就需要进行密码验证
[root@study doc]# su - chen
Last login: Thu Dec 20 15:23:58 CST 2018 on pts/0
[chen@study ~]$ id
uid=1000(chen) gid=1000(chen) groups=1000(chen)

su 命令与用户名之间有一个减号(-),这将完全切换为新用户,即把环境变量也变更为新用户的相应信息,而不保留原始信息

2,sudo 命令

sudo 命令把特定命令的执行权限赋予给定用户,避免泄露 root 管理员密码

sudo 服务中的可用参数以及作用

  • -h:列出帮助信息
  • -l:列出当前用户可执行的命令
  • -u用户名或UID值:已指定的用户身份执行命令
  • -k:清空密码的有效时间,下次执行 sudo 时需要再次进行密码验证
  • -b:在后台执行指定的命令
  • -p:更改询问密码的提示语

sudi 命令功能:

  • 限制用户执行指定的命令
  • 记录用户执行的没一条指令
  • 配置文档(/ettc/sudioers)提供集中的用户管理、权限与主机等参数
  • 验证密码后5分钟内(默认值)无须再让用户再次验证密码

visudo 命令

只有 root 管理员才可以使用 visudo 命令编辑服务的配置文件

sudo命令提供 visudio 命令来配置用户权限,避免直接修改配置文件时可能出现的问问题。且这条命令在配置用户权限时将禁止多个用户同时修改sudoers配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。

示例1
在下方所示位置增加普通用户 chen 可执行命令权限

93行添加信息为:
谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表

[root@study ~]# visudo
     90 ##
     91 ## Allow root to run any commands anywhere
     92 root    ALL=(ALL)       ALL
     93 chen    ALL=(ALL)       ALL ## 添加普通用户 chen 的信息

使用 sudo -l 查看 chen 的所有可执行命令
注意:下面命令验证的是该普通用户的命令,而不是root管理员的密码

[root@study ~]# su - chen
Last login: Thu Dec 20 18:30:13 CST 2018 on pts/0
[chen@study ~]$ sudo -l
[sudo] password for chen:  # 输入用户 chen 的密码,而不是 root 的
Matching Defaults entries for chen on study:
    !visiblepw, always_set_home, match_group_by_gid, 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 chen may run the following commands on study:
    (ALL) ALL

验证1:普通用户查看 /root 目录

[chen@study ~]$ ls /root
ls: cannot open directory /root: Permission denied
[chen@study ~]$ sudo ls /root
backup.taar.gz  linux  mysql80-community-release-el7-1.noarch.rpm  test

示例2:仅赋予普通用户 cat 命令root的权限
生产环境不允许某个普通用户拥有整个系统所有命令的最高权限,因此ALL参数不适合,因此只能赋予普通用户具体的命令以满足工作需求,受到必要的权限舒服
注意:如果需要让某个用户以 root 管理员的身份执行命令,一定要给出命令的绝对路径(可用 whereis 命令查找)

[root@study ~]# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
[root@study ~]# visudo
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
chen    ALL=(ALL)       /usr/bin/cat  ## 添加普通用户 chen 的信息

验证2:普通用户用命令 cat 查看 /etc/shadow 文件

[root@study ~]# su - chen
Last login: Fri Dec 21 14:07:12 CST 2018 on pts/1
[chen@study ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[chen@study ~]$ sudo cat /etc/shadow
[sudo] password for chen:   # 此除输入该普通用户的密码
root:$6$nivk2N7o$zTJ/PFjcpwlpL80CWjfQCnIhM7K75Oc0PU/RYOWLJBl7/XZ9spuJv4ERQ60bTCh0uZp1FMOwqkV7OO.4N7GgG0:17687:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
... ... ... 省略下方内容

示例3:去除使用sudo命令时的密码验证

[root@study ~]# visudo
     90 ##
     91 ## Allow root to run any commands anywhere
     92 root    ALL=(ALL)       ALL
     93 chen    ALL=NOPASSWD: /usr/bin/cat  ## 添加普通用户 chen 的信息 

验证3:清除 sudo 密码有效时间,普通用户再使用 cat 查看 /etc/shadow

[root@study ~]# su - chen
Last login: Fri Dec 21 14:22:58 CST 2018 on pts/1
[chen@study ~]$ sudo -k
[chen@study ~]$ sudo cat /etc/shadow
root:$6$nivk2N7o$zTJ/PFjcpwlpL80CWjfQCnIhM7K75Oc0PU/RYOWLJBl7/XZ9spuJv4ERQ60bTCh0uZp1FMOwqkV7OO.4N7GgG0:17687:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
... ... ...  省略下方内容

你可能感兴趣的:(用户身份与文件权限---su命令与sudo服务)