当前位置: 技术问答>linux和unix
如何编写一个shell,拷贝一个备份文件后把原文件清空?
来源: 互联网 发布时间:2016-11-06
本文导语: 我就是想备份一下我的一个程序的日志,结果在shell中执行 cp 命令时提示没有权限: 代码: #! /bin/sh currdate=$( date +%Y%m%d ) logfile="/usr/local/twslog/tws.log" cp $logfile "/usr/local/twslog/$currdate.log" cat "" > $logfile 运行时...
我就是想备份一下我的一个程序的日志,结果在shell中执行 cp 命令时提示没有权限:
代码:
#! /bin/sh
currdate=$( date +%Y%m%d )
logfile="/usr/local/twslog/tws.log"
cp $logfile "/usr/local/twslog/$currdate.log"
cat "" > $logfile
运行时提示:
cp: 无法打开 “/usr/local/twslog/tws.log” 读取数据: Permission denied
./twslogbaker.sh: 5: cannot create /usr/local/twslog/tws.log: Permission denied
各位老大,在shell中如何获取权限啊?上面的问题如何处理?
|
在linux下脚本自身不能拥有setuid或setgid权限,因为那样会导致安全问题。
但是你可以写一个可执行程序,那样就可以通过设置setuid权限来使程序执行时或的root权限了。
不过其实你更改/usr/local/twslog的权限设置,让你的用户可以改动它就可以了。
好吧,如果你一定要写脚本,也有一个不太好的方法:用python-setuid吧。
但是你可以写一个可执行程序,那样就可以通过设置setuid权限来使程序执行时或的root权限了。
不过其实你更改/usr/local/twslog的权限设置,让你的用户可以改动它就可以了。
好吧,如果你一定要写脚本,也有一个不太好的方法:用python-setuid吧。
|
chown chgrp, 你的hyh就是个普通用户把,可以改root,或把hyh添加到sudoer里
|
这和windows里权限一样,不先获取权限,做什么操作都不行。
这几个文件是的所有者是谁,找它给权限,然后执行你的shell。
这几个文件是的所有者是谁,找它给权限,然后执行你的shell。
|
脚本对应的属主用户没有权限,可以用有权限的用户或者root
|
问题应该是对新文件没有写权限。
为什么不把日志备份到主目录下?提高权限的方法尽量不要用。
为什么不把日志备份到主目录下?提高权限的方法尽量不要用。
|
应该是权限限制问题。可以逐步调试一下,将脚本设置一下用户环境变量,在执行脚本,就可以解决这个问题。前提条件。在相同的情况手动执行,可以正常完成。