On 13/07/2016 18:42, wabe wrote:
Fernando Rodriguez <[email protected]> wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 07/13/2016 07:10 AM, Alan McKinnon wrote:
On 12/07/2016 03:47, jens w wrote:
.procmailrc
:0 c
* !^X-Loop: [email protected]
| formail -X "From:" | $HOME/bin/script.sh

procmail.log
procmail: Executing " formail -X "From:" | $HOME/bin/script.sh

for incoming mail, a script is executed. logfile has the same
entry as it is in other users. but the script do nothing.

How executing a command as a nologin user?



You can't, not the way you are doing it.
You want to launch a shell script for the user, but the user's
shell is /sbin/nologin. This exits immediately without launching
the script.

Give the user a real shell.

Alan


I've been following this thread and thinking the same thing but
wasn't sure.

I don't think so. To proof it, I created this user:

nologinuser:x:1015:1016::/home/nologinuser:/sbin/nologin

Then I created this script:

#!/bin/sh
#
date >> /home/nologinuser/envars.txt
echo $HOME >> /home/nologinuser/envars.txt
echo $PATH >> /home/nologinuser/envars.txt
echo "-----------------------" >> /home/nologinuser/envars.txt

I stored it as /var/script-nologinuser/testscript.sh. I had to store
it at this place because /home is mounted with the noexec option on
my system.


Then I created a cronjob for the nologinuser user:

*/2 * * * * /var/script-nologinuser/testscript.sh


The result is the file /home/nologinuser/envars.txt with this
content:

Wed Jul 13 18:10:01 CEST 2016
/home/nologinuser
/usr/bin:/bin
-----------------------
Wed Jul 13 18:12:01 CEST 2016
/home/nologinuser
/usr/bin:/bin
-----------------------


The ownership and the rights for /home/nologinuser/,
/var/script-nologinuser/ and /var/script-nologinuser/testscript.sh
are nologinuser:nologinuser and 700.

So it seems, that it is possible to execute scripts without setting
a shell in /etc/passwd.

I don't know why it doesn't work for jens w.


Not so. Your script is launched by cron, running as root. It starts a non-interactive no-login shell (that's why people have infernal trouble with cron, assuming it has a $PATH when it actually has none)




Reply via email to