Shell script - Sudo-permissions lost over time

后端 未结 6 1829
情歌与酒
情歌与酒 2020-12-09 00:22

I\'ve made a simple bash script that need to keep it\'s super-user privileges throughout the script. Unfortunately, but understandable the script looses its sudo

6条回答
  •  伪装坚强ぢ
    2020-12-09 00:38

    The flexibility of sudo is widely under-estimated. This leads to very poor practices (like the sudo su - canon-ball surgery method).

    A much better method is to specificly allow the commands you intend to allow without use of a password:

    phill = NOPASSWD: /bin/ls, /usr/bin/lprm
    

    You can optionally do this for specific users from specific hosts running as specific admin users. You can even prevent users from passing shell escapes as parameters. You can make sudo prevent the launched program to execute further applications dynamically etc. etc. You will want to read the man-page for sudoers (and be sure to read the procedures for editing this special file!).

    Here is a small taste of things, (from here):

    User_Alias     OPERATORS = joe, mike, jude
    Runas_Alias    OP = root, operator
    Host_Alias     OFNET = 10.1.2.0/255.255.255.0
    Cmnd_Alias     PRINTING = /usr/sbin/lpc, /usr/bin/lprm
    
    OPERATORS ALL=ALL
    #The users in the OPERATORS group can run any command from any terminal.
    
    linus ALL=(OP) ALL
    # The user linus can run any command from any terminal as any user in the OP group (root or operator).
    
    user2 OFNET=(ALL) ALL
    # user user2 may run any command from any machine in the OFNET network, as any user.
    
    user3 ALL= PRINTING
    # user user3 may run lpc and lprm from any machine.
    
    go2linux ALL=(ALL) ALL
    # user go2linux may run any command from any machine acting as any user. (like Ubuntu)
    
     If you want not to be asked for a password use this form
    go2linux ALL=(ALL) ALL NO PASSWD: ALL
    

提交回复
热议问题