Como criar um script e adicioná-lo em / etc / sudoers com NOPASSWD [closed]

0

É um computador doméstico, sem outros usuários.

Alguém poderia ajudar você a criar scripts para cada um dos seguintes comandos:

echo 100 > /sys/class/backlight/intel_backlight/brightness

ethtool -s eth0 autoneg off speed 100 duplex full

dhclient eth0

apt-get update && apt-get upgrade && apt-get dist-upgrade -y

apt-get autoremove && remove && clean && autoclean -y

Adicionando cada script em

/etc/sudoers

ALL=(ALL:ALL) ALL you ALL=(ALL:ALL) NOPASSWD: /usr/local/sbin/myscript.sh 

Portanto, nunca mais haverá a necessidade da senha sudo ao usar esses comandos.

Ou, se você tiver outra maneira mais direta, simples, rápida e mínima de realizar a solicitação.

    
por XPDIN 07.06.2017 / 22:54

2 respostas

3

A gênese do recurso sudo foi criar e restringir habilidades de raiz para usuários mortais selecionados. Também para criar uma trilha de auditoria para verificar se alguém quebrou alguma coisa usando o acesso root. Antes disso, muitos usuários e administradores faziam logon como root e faziam todo o trabalho em um shell privilegiado de raiz, independentemente de precisarem desses recursos ou não. Não era incomum fazer logon em um servidor e ver várias dezenas de logins raiz de vários terminais diferentes. Obviamente, isso levou ao caos.

O único grande risco que vejo para o que você está propondo é que, se alguém invadir sua conta, ele terá aumentado o acesso a arquivos e comandos de propriedade da raiz. Se você tiver o telnet desativado e o ssh bloqueado com segurança, esses riscos serão minimizados. Como administrador de sistemas por muitas décadas, eu sempre aconselho a não contornar os modelos de segurança, mas o que você deseja fazer, no contexto de um ambiente doméstico de acesso limitado, é provavelmente relativamente seguro.

Dito isto, se você não estiver familiarizado com a criação de scripts ou programação em geral, escrever um script para ignorar a segurança do sudo como um primeiro esforço de script provavelmente não é aconselhável. A menos que você escreva seu roteiro de uma forma muito inteligente, alguém pode muito bem aparecer e descobrir sua senha e / ou explorar seu script para fazer coisas ruins.

A maneira mais fácil, mas não a mais sábia, de realizar o que você deseja é basicamente efetuar login como root. Isso efetivamente contornaria o sudo nesse shell.

sudo su

digite sua senha

Seu prompt mudará de $ para #

whoami

Verifique se você é realmente root

Eu usaria este shell SOMENTE para comandos que exigem acesso root. NÃO o use para operações diárias do usuário mortal. Você acabará por quebrar algo acidentalmente. Todos os administradores de sistema experientes têm uma ou outra vez.

    
por jones0610 07.06.2017 / 23:33
0

Parece que estas etapas resolveram este caso:

sudo su

Crie /usr/local/bin/scriptname e escreva as linhas posteriores:

#!/bin/bash

command in here without sudo

# the end of the script's name

_

Create /etc/sudoers.d/scriptname and write the following lines in it:

User_Alias scriptname=username
Cmnd_Alias scriptabreviaton=/usr/local/bin/scriptname
scriptname ALL=NOPASSWD: scriptabreviaton

Adicione no final de /etc/sudoers as próximas duas linhas:

username ALL=(ALL:ALL) ALL
username ALL=(ALL:ALL) NOPASSWD: /usr/local/bin/scriptname

_

chown root:root /etc/sudoers.d/scriptname
chown root:root /usr/local/bin/scriptname
chmod 0700 /usr/local/bin/scriptname
chmod 0440 /etc/sudoers.d/scriptname

_

Do nome de usuário comum:

sudo /usr/local/bin/scriptname

Não deve mais pedir a senha do sudo.

Em todos os lugares quando está escrito "scriptname", "usernme", "scriptabreviaton" cada um deles deve ser o mesmo.

    
por XPDIN 10.06.2017 / 21:41