Chinaunix

标题: CSH crontab问题 [打印本页]

作者: lsnow8624    时间: 2009-12-11 14:31
标题: CSH crontab问题
同一台机器一个用户a可以执行crontab程序,另一个用户b不能执行crontab。
两个用户的shell都是csh,/var/adm/cron/cron.allow中已经配置b用户执行crontab权限。
b用户的家目录下的.profile文件和/etc/passwd文件确认正确。
b用户crontab -l如下:
58 * * * * /tmp/npm.sh 1>/tmp/npm.log 2>&1
运行报错信息:stty: : Not a typewriter
NPM_HOME: Undefined variable.
npm.sh脚本内容如下:
#!/usr/bin/csh
echo 000

哪位高手帮忙支招,谢谢!

[ 本帖最后由 lsnow8624 于 2009-12-11 15:51 编辑 ]
作者: 小型机88    时间: 2009-12-11 17:07
不会,顶一下
作者: hbh231    时间: 2009-12-11 22:16
首先B用户能否自己执行这个sh脚本,如果可以,那就是环境变量设置方面的问题了。
作者: lsnow8624    时间: 2009-12-12 11:34
标题: 回复 #3 hbh231 的帖子
脚本非常简单,没有调用报错的环境变量,而且试过在脚本里定义环境变量也不可以。b用户手工可以执行该脚本。
打过hp 800,搞不定呢。

[ 本帖最后由 lsnow8624 于 2009-12-12 11:39 编辑 ]
作者: hbh231    时间: 2009-12-12 16:14
NPM_HOME: Undefined variable.

这个不是报错么,好好查下用户B的home目录,看权限是否设置正确。
作者: leelangco    时间: 2009-12-12 17:10
把echo命令的路径带全
作者: hbh231    时间: 2009-12-12 18:32
LS的建议很有道理,好久没搞SHELL,忘了/
作者: lsnow8624    时间: 2009-12-13 10:23
标题: 回复 #6 leelangco 的帖子
# man echo

echo(1)                                                             echo(1)

NAME
      echo - echo (print) arguments

SYNOPSIS
      echo [arg] ...

DESCRIPTION
      echo writes its arguments separated by blanks and terminated by a
      new-line on the standard output.  It also understands C-like escape
      conventions; beware of conflicts with the shell's use of \:

echo的路径是:?
我用echo的意思是不调用任何环境变量,测试是否还会报NPM_HOME没有设置。crontab执行时默认只调用$home $LOGNAME $PATH $SHELL有限的几个环境变量。我没有调用任何自定义环境变量的情况下为什么还报NPM_HOME没有设置呢?奇怪啊。

另回复5楼
NPM_HOME和B用户的$HOME是一致的,且A、B用户的$HOME权限相同。奇怪的是A用户的crontab可以执行,新建一个C用户也可以。只有B用户的crontab执行不了。同时测试过将A用户$/HOME/.profile文件覆盖至B用户$/HOME/.profile,测试不成功。
作者: lsnow8624    时间: 2009-12-13 14:04
查到原因了,b用户的$HOME/.chsrc中的endif位置不对。
谢谢各位回复。

奇怪的是正常登陆的时候没有报错,crontab的时候报错。

[ 本帖最后由 lsnow8624 于 2009-12-13 17:21 编辑 ]
作者: leelangco    时间: 2009-12-13 14:15
/usr/bin/echo
作者: smart_zhaozf    时间: 2009-12-14 16:36
给lz呱唧呱唧




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2