原贴:http://linux.chinaunix.net/bbs/viewthread.php?tid=901336
急救!!cron 定制任务报错::sudo: sorry, you must have a tty to run sudo
首页 » CU论坛 »
Linux
» 汇总贴列表
» 系统管理 »
请选择您要去的论坛 ←
>新手园地
>系统管理
>网络问题
>硬件支持
>内核问题
>系统互操作专区
>中文支持
>桌面与办公
>影音娱乐
>网络工具
>编程问题
>内核源码
>CPU与编译器
>嵌入式开发
>驱动开发
>数据库应用
>服务器应用
>安全防护
>集群和虚拟机
>开源业界与评论
>贴图娱乐
>红茶馆
>文档专区
>下载共享
>Linux书友会
>Linux人才交流
>Linux站务交流
===============
→ 操作系统技术交流区 ←
>BSD
>Solaris
>SCO UNIX
>HP-UX
>AIX
>IBM AS400应用论坛
>Tru64 UNIX
>IRIX
>Mac OS X
→ 行业解决方案交流区 ←
> 金融行业
> 电信行业
> 互联网行业
> 医卫行业
> 制造行业
> 信息安全
> 教育行业
> 媒体娱乐行业
> 电子政务
> 交通行业
→ 程序设计交流区 ←
>C/C++
>Shell
>Java
>Php
>Perl
>Python
>Web开发
>软件工程
>中间件技术
>GUI编程
>软件配置管理
>VOIP开发技术
→ 网管技术交流区 ←
>网络安全
>网络技术
>Cisco技术
>存储备份之家
>服务器及硬件技术
→ 数据库技术交流区 ←
>MySQL
>PostgreSQL
>Oracle
>Informix
>Sybase
>DB2
→ 应用技术专题交流区 ←
>Web服务器
>Mail服务器
>FTP服务器
>DNS服务器
>Proxy服务器
>LDAP
>VPN
>Lotus
>Samba
→ IT综合交流区 ←
>IT业界新闻与评论
>IT职业生涯
>IT培训与认证
>IT二手大厅
>IT图书与评论
→ IT人的休闲生活交流区 ←
>清茶斋
>运动地带
>快乐数码摄影
>影音文字
>English Forum
>游戏玩家
>旅游天下
>贴图娱乐
>红茶馆
>IT爱车族
→ 站务及频道交流区 ←
>站务交流
>版主会议室
>Linux站务交流
>Linux版主会议室
>博客站务交流区
>下载频道交流区
>CU活动专区
最近访问的论坛 ...
CPU与编译器
开源业界与评论
服务器应用
安全防护
内核源码
桌面应用
newsecond
[资料 ]
[站内短信 ]
[Blog ]
32分是我所有的财产了..
[Abel@localhost ~]$ crontab -l
*/1 * * * * sudo /usr/sbin/lvscan 2>>/home/Abel/test
[Abel@localhost ~]$ cat ~/test
sudo: sorry, you must have a tty to run sudo
sudo: sorry, you must have a tty to run sudo
提示sudo要一个tty才可以运行.
解决方法!!!!
1. 写个脚本..把上述任务放进去.并在将本中创建tty..............................ok....怎么创建???麻烦高手..透露下..
2. 用suid or sgid代替..sudo..但这样不安全.赋予权限太大..
e.g
A...查看lvm在/usr/sbin下的符号链接..
[Abel@localhost testdir]$ symlinks -v /usr/sbin/ | grep lvm
relative: /usr/sbin/vgck -> lvm
relative: /usr/sbin/vgchange -> lvm
relative: /usr/sbin/vgconvert -> lvm
relative: /usr/sbin/lvmdiskscan -> lvm
relative: /usr/sbin/lvresize -> lvm
relative: /usr/sbin/lvs -> lvm
relative: /usr/sbin/lvconvert -> lvm
relative: /usr/sbin/pvs -> lvm
relative: /usr/sbin/pvdisplay -> lvm
relative: /usr/sbin/vgmerge -> lvm
relative: /usr/sbin/lvremove -> lvm
relative: /usr/sbin/lvmchange -> lvm
relative: /usr/sbin/pvremove -> lvm
relative: /usr/sbin/vgs -> lvm
relative: /usr/sbin/vgextend -> lvm
relative: /usr/sbin/lvmsar -> lvm
relative: /usr/sbin/lvmsadc -> lvm
relative: /usr/sbin/vgremove -> lvm
relative: /usr/sbin/vgcfgrestore -> lvm
relative: /usr/sbin/vgimport -> lvm
relative: /usr/sbin/vgreduce -> lvm
relative: /usr/sbin/lvchange -> lvm
relative: /usr/sbin/vgmknodes -> lvm
relative: /usr/sbin/vgcreate -> lvm
relative: /usr/sbin/pvchange -> lvm
relative: /usr/sbin/pvcreate -> lvm
relative: /usr/sbin/lvscan -> lvm
relative: /usr/sbin/lvreduce -> lvm
relative: /usr/sbin/lvcreate -> lvm
relative: /usr/sbin/pvmove -> lvm
relative: /usr/sbin/vgexport -> lvm
relative: /usr/sbin/vgsplit -> lvm
relative: /usr/sbin/lvextend -> lvm
relative: /usr/sbin/vgrename -> lvm
relative: /usr/sbin/pvscan -> lvm
relative: /usr/sbin/vgdisplay -> lvm
relative: /usr/sbin/lvrename -> lvm
relative: /usr/sbin/lvdisplay -> lvm
relative: /usr/sbin/vgscan -> lvm
relative: /usr/sbin/vgcfgbackup -> lvm
relative: /usr/sbin/pvresize -> lvm
B...如果我对lvscan赋予suid..因为lvscan是lvm的符号链接,所以s位赋给了lvm
[Abel@localhost testdir]$ sudo chmod u+s /usr/sbin/lvscan
Password:
[Abel@localhost testdir]$ ll /usr/sbin/lvm
-r-sr-xr-x 1 root root 589952 03-20 05:54 /usr/sbin/lvm
C....但这样....所有用户都拥有lvm.......的所有权限...所以不行..
3...还有其他的方法吗.......................
Thanks
[ 本帖最后由 newsecond 于 2007-6-19 13:25 编辑 ]
您对本贴的看法:鲜花[0]
臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
free_man_008
[资料 ]
[站内短信 ]
[Blog ]
用sudo是最好的办法,针对你的问题,在/etc/sudoers文件中做如下修改:
(1)注释掉:Defaults requiretty所在的行。即:
(2)你的允许执行lvscan命令的内容类似下面(即加上NOPASSWD,在使用sudo执行该命令时可以不用密码):
bearzhang ALL=NOPASSWD:/usr/sbin/lvscan,/sbin/sudo
如果只允许在某台主机上使用该命令则将ALL换成允许的主机即可,例如:
bearzhang www.koorka.com=NOPASSWD:/usr/sbin/lvscan,/sbin/sudo
[ 本帖最后由 free_man_008 于 2007-6-19 15:21 编辑 ]
您对本贴的看法:鲜花[0]
臭蛋[0]
__________________________________
给你推荐一个视频教程 。访问 科卡在线 了解详情,这套视频对我帮助很大。希望对你也有帮助。
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
free_man_008
[资料 ]
[站内短信 ]
[Blog ]
原帖由 newsecond 于 2007-6-20 10:05 发表于 8楼
在问下.....
前提::::::::关闭#Defaults requiretty
把错误,和标准输出一起输入到一个文件
运行时...sudo /usr/sbin/lvscan 2>>/home/Abel/test 并不会把错误和标准输出输入到该文件当中.
只能su ...
呵呵,共同进步。
如果要使用tty,必然需要一个终端窗口。
而服务进程都是在后台执行的,所以没有必要让输出内容输出到窗口,如果需要查看或保存后台进程输出的内容,可以使用重定向到一个文件中。也就是你所使用的方法。
需要错误输出和标准输出都重定向,应该这样:
*/1 * * * * sudo /usr/sbin/lvscan >> /home/Abel/test 2>&1
您对本贴的看法:鲜花[0]