Есть ли скрипт, который запускается от имени пользователя root при входе в систему?

Когда пользователь входит в систему, мне нужно выполнить команду, которая требует повышенных привилегий. Я не хочу предоставлять пользователю sudo доступ к этой команде. Я просто хочу запустить этот скрипт для этого пользователя, а не для всех пользователей.

4
задан 27 March 2013 в 09:47

2 ответа

Я бы использовал chmod 6755 filename (или 6711, если вы не хотите, чтобы его читали другие пользователи), а затем поместил бы его в cron ... Это должно работать, так как это разрешение на запуск этого файла как владельца. Итак, если вы создадите его как root, вы сможете использовать его следующим образом ...

0
ответ дан 27 March 2013 в 09:47

Судя по вашему комментарию, вы хотите, чтобы пользователь 'fred' не имел обычной оболочки, а запускал скрипт 'foo' при входе в систему. Это можно легко сделать, если вы не ожидаете, что Фред изо всех сил попытается сбежать из своей «песочницы».

$ cat ~fred/.bash_login
#!/bin/bash
exec /usr/local/bin/foo

## in ubuntu each user has a group of his "own"
$ sudo chown foo:fred ~fred ~fred/.bash_login /usr/local/bin/foo
## prevent fred from altering the files and directories we care about
$ sudo chmod g-w ~fred ~fred/.bash_login /usr/local/bin/foo
## make script foo run with user foo's privileges
$ sudo chmod u+s /usr/local/bin/foo 

Так что fred теперь даже не получит приглашение оболочки, потому что первое, что делает его оболочка входа в систему, - это заменяет себя на foo; когда скрипт foo завершает работу, fred выйдет из системы. Причина, по которой Фреду не хватает мотивации, чтобы вылезти из этой песочницы, заключается в том, что многие программы позволяют открывать подчиненные оболочки, что позволит Фреду отменить блокировку бедняка, показанную здесь.

Использование этого метода с «root» вместо некоторого не суперпользователя foo может быть использовано для захвата root, так что не делайте этого.

0
ответ дан 27 March 2013 в 09:47

Другие вопросы по тегам:

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