Skip to main content

sudo

    The Difference Between Su, Sudo Su, Sudo -i, and Sudo -s
    常用指令
    # 以用戶 john 執行 SHELL
    sudo -u john bash -c "whoami"
    
    # 以用戶 john 開啟 vnc 服務,-H 可保持用戶的 HOME;否則會是 /root。
    sudo -H -u john bash -c "vncserver" 
    
    # 以用戶 devrpt 執行 db2_get_tbs_usage.sh -d devrptdb
    sudo -u devrpt -H -s /usr/local/bin/db2_get_tbs_usage.sh -d devrptdb
    # 或
    sudo -u devrpt -H bash -c "/usr/local/bin/db2_get_tbs_usage.sh -d devrptdb" 

    sudoers 管理

    alang  ALL=(devrpt) /bin/bash,/usr/local/bin/db2_get_tbs_usage.sh 

    內容格式:

    <使用者帳號> <登入者的來源主機名稱>=<可切換的身份> <可下達的指令>

    如果要執行 SHELL Scripts,除了 scripts 路徑以外,還要加上 /bin/bash。

    限制可切換的帳號

    限制某帳號只能切換至特定的另一個帳號,其餘帳號不允許切換。

    developer-name  ALL=(ALL)       NOPASSWD:/usr/bin/sudo,/bin/su - app-user
    多管理者帳號

    除了主要管理者需要知道 root 密碼以外,其餘管理者先以個人帳號登入系統,然後以免 root 密碼方式切換成 root。

    # RedHat 7/8, /etc/sudoers.d/sysadmin
    your-account ALL=(ALL) ALL

    免 root 密碼切換方式

    # RedHat 6/7/8
    # 如果有詢問密碼,輸入個人帳號的密碼
    sudo -i

    # RedHat 4
    sudo -s