XFCE - Запуск ярлыка от имени пользователя root без пароля

Tengo esto resuelto.
Pero lamentablemente no descubro por qué sucede esto.

Cuando ejecuto en hostA:

# getcap /bin/rsh

No devuelven nada.
En hostB regresan:

getcap /bin/rsh
/bin/rsh = cap_net_bind_service+ep

Simplemente elimino el paquete y lo reinstalé usando yumy luego obtienen los permisos.

¿Pero por qué ocurre eso al principio? ¿Qué falta la primera vez que se instaló? Extraño.

1
08.01.2017, 01:04
2 ответа

Напишите небольшую программу на C, которая вызывает Bash для запуска сценария. Вы компилируете эту программу и даете ей бит suid , чтобы она запускала Bash (и, следовательно, скрипт) от имени пользователя root.

Вот пример указанной оболочки:

#include <unistd.h>

int main(void) {
    const char *bin = "/bin/bash";
    const chrar *script = "/tmp/myscrypt.sh";
    char *const argv[] = {bin, script, NULL};
    char *const env[] = {"SHELL=/bin/bash", 
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "HOME=/root", "LOGNAME=root", "_=/usr/bin/env", NULL};

    execve(bin, argv, env);

    return 0;
}

Обратите внимание, что при этом запускается сценарий от имени пользователя root , включая предположение, что корнем является / root . Если вы этого не хотите, измените оболочку.

Итак, когда вы его скомпилируете, все, что вам останется, это присвоить ему бит suid .

gcc wrapper.c -o wrapper
chown root wrapper
chmod u+wrxs,g+rx,o-wrx wrapper

Если вы ls -l , разрешения будут выглядеть так:

-rwsr-x--- 1 root group [snip] wrapper

Это означает, что только пользователь в группе group сможет запустить эту оболочку. И когда они это сделают, s будет означать, что их эффективный идентификатор пользователя будет 0.

Если вы это делаете, это общая среда, в которой многие пользователи принадлежат к одной группе, вы можете создать специальную группу только для этого файла и добавьте в эту группу только своего пользователя. Например, возможно, вы вошли в систему с помощью LDAP, и все пользователи принадлежат к группе «Пользователи домена». Вы можете создать локальную группу под названием, скажем, «JulieOnly» и добавить в эту группу только своего пользователя.Затем вы подключаете оболочку к корню: JulieOnly .

1
29.04.2021, 00:06

Вы можете запустить его с помощью sudo , выполнив visudo , чтобы добавить YOURUSER ALL = ( ALL) NOPASSWD: ALL , что остановит sudo от запроса пароля у пользователя.

2
29.04.2021, 00:06

Теги

Похожие вопросы