Linux系統SUDO的使用定義及設定

本文详细解析了Linux系统中Sudo的使用与配置,包括其功能特点、配置文件sudoers的编辑方法,以及如何通过Sudo进行用户权限的精细化管理。

Linux系統SUDO的使用定義及設定

什麼是sudo?
Sudo是可以讓某個用户不需要擁有(管理員)的賬號密碼,可以執行管理員的權限的。
作為管理員可以指派某些用户可以執行某些 特定命令。

Sudo的特點
  它的特性主要有这样幾點:
  Sudo能够限制用户只在某台主機上運行某些命令
  Sudo提供了豐富的日志,詳细地記錄了每個用户幹了什麼。
    它能够將日記傳到中心主機或者日記服務器
  Sudo使用時間戳文件來執行類似的“檢票”系统。當用户調用 sudo并且输入它的密碼時,
    用户获得了一张存活期为5分钟的票 (这个值可以在编译的时候改变)
  Sudo的配置文件是sudoers文件,它允许系统管理员集中的管理 用户的使用权限和使用的主机。
    它所存放的位置默认是在 /etc/sudoers,属性为0440

    

    ##chmod 440 /etc/sudoers.d/sudo_user

    ##把這個文本檔的權限設定為440,是比較安全的動作。是只有(uid,gid==>r)權限

    

    配置文件:/etc/sudoers (sudo的配置文件定义很严格权 限为400)
    语法 who which_host=(whom) command

      user host=(runas) command
    编辑命令visudo

        or

        visudo -f /etc/sudoers.d/sudo_user

 

sudo 授權使用的方法。
  ls -l /usr/bin/sudo
    sudo –i –u [centos | fedora | gentoo | etc...] 切换身份
      ##這個是要有授權之下才可以使用的(切換身份)。
      ##而平時的"su centos"方式切換身份,只要有密碼就可以切換身份。
      
    sudo [-u user] COMMAND
      -V 显示版本信息等配置信息
      -u user 默认为root
      -l,ll 列出用户在主机上可用的和被禁止的命令
        EX:sudo -l -u centos               ==>這是查看用戶centos,有什麼在sudo的授權權限。
        EX:sudo -l                    ==>這是default查看root,有什麼授權權限。因為現在是用root來工作
          or
        或者用gentoo登入後,使用sudo -level
        EX:sudo -l                    ==>這是default就是查看gentoo的sudo,有什麼授權權限。
        EX:sudo -ll                   ==>就是detail,只是多了一些細分的項目。

                               ##這個有一個好處,是在當自己登入系時,來查看一下自己有什麼sudo權限可以使用。
      -v 再延长密码有效期限5分钟,更新时间戳
        EX:sudo -v                   ==>以gentoo為一個例子,只要"sudo -v"一下,就會即時(擦新一下)登入時間,
                                 那麼,有效期限5分钟,就會以現在再開始計算。
      -k 清除时间戳(1970-01-01),下次需要重新输密码
      -K 与-k类似,还要删除时间戳文件
        EX:用戶在登出時,先用這個"sudo -K"一下,就可以把自己的時間戳記錄清除。
        注釋:時間戳的位置在"/var/run/sudo/ts"裡面,用戶不能看
      -b 在后台执行指令
        ##這個"-b"的使用是說,所執行的cmd,不會在當前的terminal上查看效果显示,但實際上面是在後台裡面工作。
        ##如果是一些在執行時間上面,是比較長。可以使用這個"-b,後台工作",這樣可以接著做其他項目。

      -p 改变询问密码的提示符号
      示例:-p ”password on %h for user %p:"
         ##在使用sudo時,系統會有一個提示句,要求用戶輸入,就是這個提示標句語。
         EX: sudo -p "”password on %h for user %p:" cat /etc/shadow
           ##這是結果效果: "password on centos7cn for user centos:"
         EX: sudo -p "”password on $(date) for user %p:" cat /etc/sdadow
           ##這是結果效果: "password on 2018年 11月 10日 星期六 15:53:53 CST for user centos:"

 

      ##sudoedit ==>"/usr/bin/sudoedit"            ==>這是一個給修改權限的功能,其效果等同root。
        EX:fedora ALL=(ALL) sudoedit  
        ##:在fedora登入之後。
          EX:sudoedit /etc/sudoers           ==>這就能修改裡面的權限和使用


  

  注釋:在使用visudo時,先在"/etc/profile.d/xxxxx"建立一個文本文檔,加入下面一包及即行執行一下就可以。

  *** >>export EDITOR=vim                               ##這個是想把vim裡面的特性效果,調出來使用。
      >>vim /etc/profile.d/"這是一個enrironment文"                  ##把這一句加入去裡面,再执行一下就可以,可以建立一個新文本(如果之前,己有設定environment本文,可以加入去。)
    ===================          ===================          ===================

  >>用戶 登入主機=(代表用戶) 命令

    ##user和runas的名字使用方     ==> username (EX:centos)
                       #uid (EX:#1001)
                       %group_name (EX:%fedora)
                       %#gid (EX:%#980)

    ##別名使用和設定
      ##user==User_Alias XXXX  ||  host==Host_Alias  ||  runas==Runas_Alias  ||  command==Cmnd_Alias
      >>User_Alias MBA1=centos,fedora,suse,redhat,debian,gentoo
      >>Cmnd_Alias CMD1=/usr/bin/mount,/usr/bin/yum,usr/sbin/fdisk
        ##之後就可以用來調用。
      >>MBA1 ALL=(root) CMD1                      ==>這使用別名,是方便使用和查看和修改

      ##Example:設定方式(使用別名方式)
      ==> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
        User_Alias SYSADER=fedora,centos,%super          ##這個是一次設定多個用戶或者組的別名使用方法。
        User_Alias DISKADER=coffee                   ##這個是給一個用戶
        Host_Alias SERS=www.mycoffee.com,172.16.0.0/24         ##這個設定主機的位置
        Runas_Alias OP=root                      ##這個是授權出來的用戶
        Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod                                  ##這個是要使用的命令語和位置,使用(,)來分隔  
        Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk          ##這個是同上
          --  --  --  --  --  --            --  --  --  --  --  --
        SYSADER SERS= SYDCMD,DSKCMD              ==>這一個在runas是留空白,就代表是用default to root
        DISKADER SERS=(OP) DSKCMD                    ==>這個就是全部用上了別名的效果

          === === === === === === === === === === === === === === ===

      ==> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
       User_Alias ADMINUSER = adminuser1,adminuser2
       Cmnd_Alias ADMINCMD = /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd [a-zA-Z]*, !/usr/bin/passwd root
                    ##在這一條cmd裡面的最後一個,是要注意,是說明只是(root)是不能修改。
          --  --  --  --  --  --            --  --  --  --  --  --
       ADMINUSER ALL=(root) NOPASSWD:ADMINCMD, PASSWD:/usr/sbin/userdel  
                    ##這一行在最後面是說明,在使用"userdel"用要密碼登入才可以。
          === === === === === === === === === === === === === === ===

      ==> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
       Defaults:gentoo runas_default=fedora              ==>這是加一個default設定在用戶gentoo裡面。
       gentoo ALL=(fedora,centos) ALL                ==>這個是說在用戶gentoo登入使用時,用sudo時使用fedora是不用加上[-u user]
                                      EX:sudo mount /dev/sr0 /mnt/ ##這個就是default是用fedora的權限
                                      EX:sudo -u centos yum update ##而使用centos的權限就要用[-u user]指定使用。
          === === === === === === === === === === === === === === ===

      ==> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
       gentoo 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd
          ##這裡有兩個host的IP位置,可以使用sudo的這一行的(權限分配/授權)
          ##command(第一個): 是說在這"/usr/sbin/"裡面的所有cmd都可以使用
          ##command(第二個): 是說在"!/usr/sbin/useradd"這一個command是不能用
          === === === === === === === === === === === === === === ===

      ==> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
       gentoo ALL=(ALL) /bin/cat /var/log/messages*        ##這是不能使用的方式。

          ##這是漏洞所以不要用這個方式來授權。(問題在結尾,不要加*號,這是不小心的地方。)
           
      ==> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      #Example: 
        >>%wheel ALL=(ALL) NOPASSWD:ALL                  ==>這一個的"NOPASSWD"加在command的前面,就是說,這(用戶或組)使用者,
                                            不需要輸入密碼,都可以執行。這個在(腳本script)裡面使用就會發揮作用。
      ==> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      #Example
          >>visudo    or  visudo -f /etc/sudoers.d/sudo_user
          >>fedora 192.168.11.11=(root) /bin/mount /dev/sr0 /mnt/         ==>這個是指定了主機的使用

            or

          >>fedora ALL=(root) /bin/mount /dev/sr0 /mnt/            ==>這個是任何主機都可以使用

      ==> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --          -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    #group ID方式的授權機制。
        ##%wheel ALL=(ALL) ALL              ==>這一行是說,當任何一個用戶是這個(group),就會有所有權限的工作。

        >>usermod -aG "wheel" fedora          ==>在sudoers裡面的group名是用"wheel",所以現在是加這個的group名資。
        >>sudo ....                    ==>這時就可以有root的全部使用權。
        >>gpasswd -d fedora wheel            ==>在這個group裡面的用戶清除出來。
        ##注釋:由於"wheel"這個組的權限過大,即是全部的權,所不要隨意把用戶加入這個組。及最在沒有用時把這個組前面加上"#、不生效"會好一點。

    #在/etc/sudoers裡面有一行是root ALL=(ALL) ALL
        ##這一行的意思是有一個特別的用法在裡面。
        ##當root賬戶的權限被移到,普通用戶時,就可以用sudo的功能把/etc/passwd的資料修改回去。
        >>sudo -u coffee vi /etc/passwd               ==>現在用戶coffee是有權限的用戶,引用回這個用戶去修改資料。
                                     ==>這樣root就可以通過這方法,在/etc/passwd改回自己的權限。
   

    #Example: (用戶 和 用戶)之間的使用權(交換或授權)的使用方法。
      例如: 用戶"centos"需要使用,用戶"fedora"的用戶權(身份)工作。

        >> centos ALL=(fedora) ALL                   ==>這樣centos可以用fedora的所有使用權的身份工作,即是用fedora的身份工作
 
    #Example: visudo or visudo -f /etc/sudoers.d/sudo_user 在這兩位置裡面,其中之一只要是加入一行

         >> centos ALL=(ALL) ALL ==>centos        ==>這時centos就會是root的權限,所以設置用戶時要小心。

 

转载于:https://www.cnblogs.com/mycoffee/p/9943463.html

【电力系统】单机无穷大电力系统短路故障暂态稳定Simulink仿真(带说明文档)内容概要:本文档围绕“单机无穷大电力系统短路故障暂态稳定Simulink仿真”展开,提供了完整的仿真模型与说明文档,重点研究电力系统在发生短路故障后的暂态稳定性问题。通过Simulink搭建单机无穷大系统模型,模拟不同类型的短路故障(如三相短路),分析系统在故障期间及切除后的动态响应,包括发电机转子角度、转速、电压和功率等关键参数的变化,进而评估系统的暂态稳定能力。该仿真有助于理解电力系统稳定性机理,掌握暂态过程分析方法。; 适合人群:电气工程及相关专业的本科生、研究生,以及从事电力系统分析、运行与控制工作的科研人员和工程师。; 使用场景及目标:①学习电力系统暂态稳定的基本概念与分析方法;②掌握利用Simulink进行电力系统建模与仿真的技能;③研究短路故障对系统稳定性的影响及提高稳定性的措施(如故障清除时间优化);④辅助课程设计、毕业设计或科研项目中的系统仿真验证。; 阅读建议:建议结合电力系统稳定性理论知识进行学习,先理解仿真模型各模块的功能与参数设置,再运行仿真并仔细分析输出结果,尝试改变故障类型或系统参数以观察其对稳定性的影响,从而深化对暂态稳定问题的理解。
本研究聚焦于运用MATLAB平台,将支持向量机(SVM)应用于数据预测任务,并引入粒子群优化(PSO)算法对模型的关键参数进行自动调优。该研究属于机器学习领域的典型实践,其核心在于利用SVM构建分类模型,同时借助PSO的全局搜索能力,高效确定SVM的最优超参数配置,从而显著增强模型的整体预测效能。 支持向量机作为一种经典的监督学习方法,其基本原理是通过在高维特征空间中构造一个具有最大间隔的决策边界,以实现对样本数据的分类或回归分析。该算法擅长处理小规模样本集、非线性关系以及高维度特征识别问题,其有效性源于通过核函数将原始数据映射至更高维的空间,使得原本复杂的分类问题变得线性可分。 粒子群优化算法是一种模拟鸟群社会行为的群体智能优化技术。在该算法框架下,每个潜在解被视作一个“粒子”,粒子群在解空间中协同搜索,通过不断迭代更新自身速度与位置,并参考个体历史最优解和群体全局最优解的信息,逐步逼近问题的最优解。在本应用中,PSO被专门用于搜寻SVM中影响模型性能的两个关键参数——正则化参数C与核函数参数γ的最优组合。 项目所提供的实现代码涵盖了从数据载、预处理(如标准化处理)、基础SVM模型构建到PSO优化流程的完整步骤。优化过程会针对不同的核函数(例如线性核、多项式核及径向基函数核等)进行参数寻优,并系统评估优化前后模型性能的差异。性能对比通常基于准确率、精确率、召回率及F1分数等多项分类指标展开,从而定量验证PSO算法在提升SVM模型分类能力方面的实际效果。 本研究通过一个具体的MATLAB实现案例,旨在演示如何将全局优化算法与机器学习模型相结合,以解决模型参数选择这一关键问题。通过此实践,研究者不仅能够深入理解SVM的工作原理,还能掌握利用智能优化技术提升模型泛化性能的有效方法,这对于机器学习在实际问题中的应用具有重要的参考价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值