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

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

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

решение1

Судя по вашему комментарию, похоже, вы хотите, чтобы у пользователя '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 выходит из системы. Причина, по которой у Fred не должно быть мотивации выбраться из этой песочницы, заключается в том, что многие программы позволяют открывать подчиненные оболочки, которые позволили бы fred отменить показанную здесь блокировку бедняка.

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

решение2

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

Связанный контент