suユーザとsudoユーザの権限の切り替え

4466 ワード

su切り替えの基本的な使い方:
Substitute User、ユーザーの切り替え
  • 指定された他のユーザーへの迅速な切り替え
  • 一般ユーザが実行する場合、ターゲットユーザのパスワード
  • を検証する必要がある
  • root実行時、パスワードを検証する必要はありません
  • コマンドフォーマット
  • 用法一:su[-]ターゲットユーザー
  • 用法二:su[-]-c「コマンド」ターゲットユーザー
  • suとsu-の違い:
  • su:ターゲットユーザに切り替えただけで、shell環境はrootのshellであり、pwdによりユーザ切り替え後の作業ディレクトリ
  • を表示できる.
  • su-:ユーザIDはshell環境とともにターゲットユーザ
  • に切り替わる
    [root@client10 ~]# useradd jim
    [root@client10 ~]# echo 123456 |passwd --stdin jim
         jim     。
    passwd:               。
    [root@client10 ~]# su jim
    [jim@client10 root]$ pwd
    /root
    [jim@client10 root]$ mkdir /root/lxx
    mkdir:       "/root/lxx":     
    [jim@client10 root]$ su -c "mkdir /root/lxx" root
      :
    ###############################################################3
    [jim@client10 root]$ exit
    exit
    [root@client10 ~]# su - jim
         :  6   3 21:49:48 CST 2019pts/0  
    [jim@client10 ~]$ pwd
    /home/jim
    [jim@client10 ~]$ ls
    [jim@client10 ~]$ mkdir /root/lxc
    mkdir:       "/root/lxc":     
    [jim@client10 ~]$ su -c "mkdir /root/lxc" root
      :
    [jim@client10 ~]$ exit
      
    [root@client10 ~]# ls
    lxc lxx 
    

    セキュリティログ/var/log/secureによるレコードのsu切替使用状況の表示
    sudo提権の基本的な使い方
    Super or another Do,スーパー実行
  • 管理者が事前にユーザに実行許可を設定
  • 許可されたユーザは、許可命令を実行し、自分のパスワードを検証する権利を有する
  • コマンドフォーマット
  • 用法一:sudo特権命令
  • 用法二:sudo[-uターゲットユーザ]特権命令
  • 現在のユーザーのsudo権限を表示するには、次の手順に従います.
    sudo -l
    

    sudoプロファイル:/etc/sudoers
    [root@client10 ~]# grep 'wheel' /etc/sudoers
    ## Allows people in group wheel to run all commands
    %wheel	ALL=(ALL)	ALL		//  wheel         ,        
    # %wheel	ALL=(ALL)	NOPASSWD: ALL
    [root@client10 ~]# vim /etc/sudoers
    [root@client10 ~]# useradd tom
    [root@client10 ~]# echo 123456 |passwd --stdin jim
    [root@client10 ~]# usermod -G wheel tom		// tom   wheel ,        
    [root@client10 ~]# id tom
    uid=1001(tom) gid=1001(tom)  =1001(tom),10(wheel)
    [root@room9pc01 ~]# ssh [email protected]
    [tom@client10 ~]$ sudo -l
       tom     client10        :
        (ALL) ALL
    [tom@client10 ~]$ sudo yum -y install httpd
    

    sudo認証フォーマットの構成:
  • 一般ユーザホスト名リスト=コマンドリスト(コマンドの絶対パスを使用)
  • 一般ユーザホスト名リスト=NOPASWD:コマンドリスト(コマンドの絶対パスを使用)//sudoコマンドを秘密裏に実行
  • %ユーザグループ名ホスト名リスト=コマンドリスト(コマンドの絶対パスを使用)
  • %ユーザグループ名ホスト名リスト=NOPASWD:コマンドリスト(コマンドの絶対パスを使用)//sudoコマンドを秘密裏に実行
  • [root@client10 ~]# useradd json
    [root@client10 ~]# echo 123456 |passwd --stdin json
    [root@client10 ~]# vim /etc/sudoers
     root    ALL=(ALL)       ALL
     json    localhost,client10=/usr/bin/rpm, /usr/bin/yum, /usr/bin/systemctl * httpd, /usr/bin/vim /etc/httpd/conf/httpd.conf		//  json   sudo    
    [root@room9pc01 ~]# ssh [email protected]
    [json@client10 ~]$ sudo -l
       json     client10        :
        (root) /usr/bin/rpm, /usr/bin/yum, /usr/bin/systemctl * httpd, /usr/bin/vim /etc/httpd/conf/httpd.conf
    [json@client10 ~]$ sudo systemctl start httpd		//    json        
    [json@client10 ~]$ sudo vim /etc/httpd/conf/httpd.conf
    [json@client10 ~]$ sudo vim /etc/hosts
       ,   json     root      client10     /bin/vim /etc/hosts。
    
    [root@client10 ~]# vim /etc/sudoers
     root    ALL=(ALL)       ALL
     json    localhost,client10=NOPASSWD:/usr/bin/rpm, /usr/bin/yum, /usr/bin/systemctl * httpd, /usr/bin/vim /etc/httpd/conf/httpd.conf		//  json      sudo    
     [json@client10 ~]$ sudo vim /etc/httpd/conf/httpd.conf		//    json    
    ########################################################################
    [root@client10 ~]# for i in jim tom json
    > do
    >   gpasswd -a $i devops &> /dev/null
    > done					//   jim、tom、json   devops 
    [root@client10 ~]# cat /etc/group |grep devops
    devops:x:1009:jim,tom,json
    [root@client10 ~]# vim /etc/sudoers
    %devops localhost,client10=NOPASSWD:/usr/bin/rpm, /usr/bin/yum, /usr/bin/systemctl * httpd, /usr/bin/vim /etc/httpd/conf/httpd.conf		//  devops       sudo    
    [root@room9pc01 ~]# ssh [email protected]
    [tom@client10 ~]$ sudo vim /etc/httpd/conf/httpd.conf		//     tom    
    

    sudoエイリアス設定
  • 再利用性向上、読みやすさ
  • 構成を簡略化し、記録をより合理化
  • [root@client10 ~]# vim /etc/sudoers
    User_Alias USERS=tom,jim,json			//  、             
    Host_Alias MYHOST=localhost,client10
    Cmnd_Alias MYCMD=/usr/bin/rpm, /usr/bin/yum, /usr/bin/systemctl * httpd, /usr/bin/vim /etc/httpd/conf/httpd.conf
    
    USERS MYHOST=NOPASSWD:MYCMD
    

    グローバル構成を変更し、ログを有効にする:/var/log/sudo、sudoの使用状況を記録
    [root@client10 ~]# vim /etc/sudoers
    #      
    Defaults logfile="/var/log/sudo"