zoukankan      html  css  js  c++  java
  • 红帽7 su命令与sudo服务

    1、su命令

    su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从root管理员切换至普通用户

    [root@localhost Desktop]# su - lisi
    Last login: Wed Sep 12 23:47:44 CST 2018 on pts/0
    [lisi@localhost ~]$ id
    uid=1001(lisi) gid=1001(lisi) groups=1001(lisi) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    上面的su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。另外,当从root管理员切换到普通用户时是不需要密码验证的,而从普通用户切换成root管理员就需要进行密码验证了。

    2、sudo服务

    普通用户可以完全切换到root管理员身份来完成相应工作,但这将暴露root管理员的密码,sudo命令可以把特定命令的执行权限赋予给指定用户,这样既可保证普通用户能够完成特定的工作,也可以避免泄露root管理员密码。我们要做的就是合理配置sudo服务,以便兼顾系统的安全性和用户的便捷性。sudo服务的配置原则也很简单—在保证普通用户完成相应工作的前提下,尽可能少地赋予额外的权限。

    sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”。

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

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

     

    总结来说,sudo命令具有如下功能:

    限制用户执行指定的命令:

    记录用户执行的每一条命令;

    配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;

    验证密码的后5分钟内(默认值)无须再让用户再次验证密码。

    可以使用sudo命令提供的visudo命令来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改sudoers配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错,只有root管理员才可以使用visudo命令编辑sudo服务的配置文件

    使用visudo命令配置sudo命令的配置文件时,其操作方法与Vim编辑器中用到的方法一致,因此在编写完成后记得在末行模式下保存并退出。在sudo命令的配置文件中,按照下面的格式将第99行(大约)填写上指定的信息

    谁可以使用  允许使用的主机=(以谁的身份)  可执行命令的列表

    在填写完毕后记得要先保存再退出,然后切换至指定的普通用户身份,此时就可以用 sudo -l 命令查看到所有可执行的命令了

     

    作为一名普通用户,是肯定不能看到root管理员的家目录(/root)中的文件信息的,但是,只需要在想执行的命令前面加上sudo命令就可以了

    [lisi@localhost ~]$ ls /root/
    ls: cannot open directory /root/: Permission denied
    [lisi@localhost ~]$ sudo ls /root/
    anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
    Desktop         Downloads  Music          Public    Videos

    如果需要让某个用户只能使用root管理员的身份执行指定的命令,切记一定要给出该命令的绝对路径,多个命令用逗号隔开,否则系统会识别不出来。

     

  • 相关阅读:
    c#实现串口操作 SerialPort
    ASP.NET Core 上传大文件无法接收的问题
    如何将qlv格式的腾讯视频转换为mp4格式
    C#中HttpWebRequest的GetRequestStream执行的效率太低,甚至偶尔死掉
    LGPL 与GPL的区别
    ffmpeg
    HTTP协议/RTSP协议/RTMP协议的区别
    C#写的CRC16检验算法
    VS里属性窗口中的生成操作释义
    iOS:APNS推送主要代码
  • 原文地址:https://www.cnblogs.com/zq8421/p/9643017.html
Copyright © 2011-2022 走看看