Crontab:权限被拒绝

我的crontab(以用户身份运行)包含以下命令

00-59 00-23 * * * /usr/bin/smbget -R smb://192.168.10.32/Data -u USER -p PASSWORD 

但是我得到一个错误,因为你没有足够的权限来访问smb://192.168.10.32/Data/

但是我可以从命令行执行(以用户身份运行)相同的命令。

如何给crontab权限来解决这个问题。

执行后捕获的错误:

 00-59 00-23 * * * /usr/bin/smbget -R smb://192.168.10.32/Data -u USER -p PASSWORD 2>> /path/to/samba.log 

无法打开目录smb://192.168.10.32/Data/a:权限被拒绝
无法打开目录smb://192.168.10.32/Data/b:权限被拒绝
无法打开目录smb://192.168.10.32/Data/c:权限被拒绝
您没有足够的权限来访问smb://192.168.10.32/Data/d
您没有足够的权限来访问smb://192.168.10.32/Data/e

debugging语句

 params.c:OpenConfFile() - Unable to open configuration file "/home/USER/.smb/smb.conf": No such file or directory params.c:OpenConfFile() - Unable to open configuration file "/home/USER/.smb/smb.conf.append": No such file or directory Using netbios name MACHINE_NAME1. Using workgroup WORKGROUP. parsed path: fname='smb://192.168.10.32/Data' server='192.168.10.32' share='Data' path='' options='' SMBC_check_options(): server='192.168.10.32' share='Data' path='' options='' SMBC_server: server_n=[192.168.10.32] server=[192.168.10.32] -> server_n=[192.168.10.32] server=[192.168.10.32] Connecting to 192.168.10.32 at port 445 session request ok Doing spnego session setup (blob length=46) got OID=1.3.6.1.4.1.311.2.2.10 got principal=<null> Got challenge flags: Got NTLMSSP neg_flags=0x628a8215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_TARGET_INFO NTLMSSP_NEGOTIATE_VERSION NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP: Set final flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP Sign/Seal - Initialising with flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH session setup ok tconx ok Case sensitive: True Server connect ok: //192.168.10.32/Data: 0x7f552dd6a290 received 10 entries (eos=1) parsed path: fname='smb://192.168.10.32/Data/BSEEQ' server='192.168.10.32' share='Data' path='\BSEEQ' options='' SMBC_check_options(): server='192.168.10.32' share='Data' path='\BSEEQ' options='' SMBC_server: server_n=[192.168.10.32] server=[192.168.10.32] -> server_n=[192.168.10.32] server=[192.168.10.32] Connecting to 192.168.10.32 at port 445 session request ok Doing spnego session setup (blob length=46) got OID=1.3.6.1.4.1.311.2.2.10 got principal=<null> Got challenge flags: Got NTLMSSP neg_flags=0x628a8215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_TARGET_INFO NTLMSSP_NEGOTIATE_VERSION NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP: Set final flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP Sign/Seal - Initialising with flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH SPNEGO login failed: Account disabled session setup ok parsed path: fname='smb://192.168.10.32/Data/MCX' server='192.168.10.32' share='Data' path='\MCX' options='' SMBC_check_options(): server='192.168.10.32' share='Data' path='\MCX' options='' SMBC_server: server_n=[192.168.10.32] server=[192.168.10.32] -> server_n=[192.168.10.32] server=[192.168.10.32] Connecting to 192.168.10.32 at port 445 session request ok Doing spnego session setup (blob length=46) got OID=1.3.6.1.4.1.311.2.2.10 got principal=<null> Got challenge flags: Got NTLMSSP neg_flags=0x628a8215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_TARGET_INFO NTLMSSP_NEGOTIATE_VERSION NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP: Set final flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP Sign/Seal - Initialising with flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH SPNEGO login failed: Account disabled session setup ok parsed path: fname='smb://192.168.10.32/Data/NCDEX' server='192.168.10.32' share='Data' path='\NCDEX' options='' SMBC_check_options(): server='192.168.10.32' share='Data' path='\NCDEX' options='' SMBC_server: server_n=[192.168.10.32] server=[192.168.10.32] -> server_n=[192.168.10.32] server=[192.168.10.32] Connecting to 192.168.10.32 at port 445 session request ok Doing spnego session setup (blob length=46) got OID=1.3.6.1.4.1.311.2.2.10 got principal=<null> Got challenge flags: Got NTLMSSP neg_flags=0x628a8215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_TARGET_INFO NTLMSSP_NEGOTIATE_VERSION NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP: Set final flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP Sign/Seal - Initialising with flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH SPNEGO login failed: Account disabled session setup ok parsed path: fname='smb://192.168.10.32/Data/NSEEQ' server='192.168.10.32' share='Data' path='\NSEEQ' options='' SMBC_check_options(): server='192.168.10.32' share='Data' path='\NSEEQ' options='' SMBC_server: server_n=[192.168.10.32] server=[192.168.10.32] -> server_n=[192.168.10.32] server=[192.168.10.32] Connecting to 192.168.10.32 at port 445 session request ok Doing spnego session setup (blob length=46) got OID=1.3.6.1.4.1.311.2.2.10 got principal=<null> Got challenge flags: Got NTLMSSP neg_flags=0x628a8215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_TARGET_INFO NTLMSSP_NEGOTIATE_VERSION NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP: Set final flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP Sign/Seal - Initialising with flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH SPNEGO login failed: Account disabled session setup ok parsed path: fname='smb://192.168.10.32/Data/NSEFO' server='192.168.10.32' share='Data' path='\NSEFO' options='' SMBC_check_options(): server='192.168.10.32' share='Data' path='\NSEFO' options='' SMBC_server: server_n=[192.168.10.32] server=[192.168.10.32] -> server_n=[192.168.10.32] server=[192.168.10.32] Connecting to 192.168.10.32 at port 445 session request ok Doing spnego session setup (blob length=46) got OID=1.3.6.1.4.1.311.2.2.10 got principal=<null> Got challenge flags: Got NTLMSSP neg_flags=0x628a8215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_TARGET_INFO NTLMSSP_NEGOTIATE_VERSION NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP: Set final flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP Sign/Seal - Initialising with flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH SPNEGO login failed: Account disabled session setup ok parsed path: fname='smb://192.168.10.32/Data/SCRIPMASTER' server='192.168.10.32' share='Data' path='\SCRIPMASTER' options='' SMBC_check_options(): server='192.168.10.32' share='Data' path='\SCRIPMASTER' options='' SMBC_server: server_n=[192.168.10.32] server=[192.168.10.32] -> server_n=[192.168.10.32] server=[192.168.10.32] Connecting to 192.168.10.32 at port 445 session request ok Doing spnego session setup (blob length=46) got OID=1.3.6.1.4.1.311.2.2.10 got principal=<null> Got challenge flags: Got NTLMSSP neg_flags=0x628a8215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_TARGET_INFO NTLMSSP_NEGOTIATE_VERSION NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP: Set final flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP Sign/Seal - Initialising with flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH SPNEGO login failed: Account disabled session setup ok SMBC_server: server_n=[192.168.10.32] server=[192.168.10.32] -> server_n=[192.168.10.32] server=[192.168.10.32] Connecting to 192.168.10.32 at port 445 session request ok Doing spnego session setup (blob length=46) got OID=1.3.6.1.4.1.311.2.2.10 got principal=<null> Got challenge flags: Got NTLMSSP neg_flags=0x628a8215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_TARGET_INFO NTLMSSP_NEGOTIATE_VERSION NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP: Set final flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP Sign/Seal - Initialising with flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH SPNEGO login failed: Account disabled session setup ok SMBC_server: server_n=[192.168.10.32] server=[192.168.10.32] -> server_n=[192.168.10.32] server=[192.168.10.32] Connecting to 192.168.10.32 at port 445 session request ok Doing spnego session setup (blob length=46) got OID=1.3.6.1.4.1.311.2.2.10 got principal=<null> Got challenge flags: Got NTLMSSP neg_flags=0x628a8215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_TARGET_INFO NTLMSSP_NEGOTIATE_VERSION NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP: Set final flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH NTLMSSP Sign/Seal - Initialising with flags: Got NTLMSSP neg_flags=0x60088215 NTLMSSP_NEGOTIATE_UNICODE NTLMSSP_REQUEST_TARGET NTLMSSP_NEGOTIATE_SIGN NTLMSSP_NEGOTIATE_NTLM NTLMSSP_NEGOTIATE_ALWAYS_SIGN NTLMSSP_NEGOTIATE_NTLM2 NTLMSSP_NEGOTIATE_128 NTLMSSP_NEGOTIATE_KEY_EXCH SPNEGO login failed: Account disabled session setup ok Using workgroup WORKGROUP, user USER /home/USER 

我遇到了类似的问题。 显然用smbget抓取recursion目录使用当前的$ USER环境variables。 将此variables设置为与传递给smbget相同的用户名可以解决此问题,但对于Cron Jobs仍然无效。

这个问题logging在这里: https : //bugzilla.samba.org/show_bug.cgi?id = 8400

这是我的脚本中的一个片段

 pUSER=$USER # store previous user USER=$username # new username smbget -R -v -U -u "$username" "smb://server/c$/directory" USER=$pUSER # restore previous username 

这通过命令行工作,但不是从cron调用时,非常困惑。

希望这有助于某人。

编辑

重新审视这个之后,我意识到使用smbmount也可以完成同样的任务。 下面的代码是一个即使从crontab调用也能工作的例子。

 username=myuser domain=corp #optional domain prefix PASS=password123 smbmount \\\\fileserver\\sharename /mnt/somedir -o user=$username,password=$PASS,dom=$domain cp -R -u -v /mnt/somedir/* /destination_directory umount /mnt/somedir 

我也处理这个问题,并find我的方式 – 这似乎是这个问题的相关错误: https : //bugzilla.samba.org/show_bug.cgi?id = 6482

在该错误报告中,它build议您在SMB URI中embedded用户名和密码,例如:

 smbget -Rr smb://user:pass@host/sharename 

我得到了许可被拒绝的问题,但上述格式效果很好。

请注意:如果你在你的crontab中使用这个方法,那么任何有权访问这个方框的人都可以通过检查一个进程列表来获取这个凭证。 虽然这可能是私人系统可以接受的。

请记住,经过近期的不同但类似的问题的痛苦,该cron与sh运行,而不是你的shell(可能是bash )。 所以,我强烈build议你正确地检查一下,因为sh的function与bash相关,并且所有可用的内置命令,命令和环境variables显着受限。 其次,记住逃离非字母数字字符总是很有趣。 第三,当其他的都失败的时候,让cron作业运行smbget 00-59 00-59 00-23 * * * /usr/bin/smbget -R smb://192.168.10.32/Data -u USER -p PASSWORD 2>&1 >> /path/to/samba.log来获得更多的细节。 用这个信息更新这篇文章可能会帮助我们缩小问题的范围。 对不起,每个用户的cron操作并不像看起来那么简单。