求救 如果

我想执行两个程序  想放到开机启动项里,但是有两个需求,一是必须在进入系统后再执行,意思就是输入账号密码以后再执行的,二是只能通过图形界面,也就是在服务器的login界面登陆,不能通过远程登陆。   所以现在 rc.local和/etc/profile 都不行了   
求救各位大神 谢谢

作者: micmouse521   发布时间: 2011-05-30

1, .bashrc或者.bash_profile
2, 你第二个要求和这个问题有啥关系?

作者: xiaopan3322   发布时间: 2011-05-30

本帖最后由 ywlscpl 于 2011-05-30 13:32 编辑

如果针对所有用户,修改/etc/profile,如果针对具体用户,修改home目录.bash_profile,通过判断是否在本机登录来限制程序运行

以我的机器为例
[ "`who am i | awk '$NF~/)/{print "x"}' `" = "x" ]  ||  ur_cmd

如果有误,可以自行观察本机登录及远程登录who am i命令的输出区别,再做修正



QUOTE:
[root@Mylinux ~]# uname -a
Linux Mylinux 2.6.23.1-4 #1 SMP Thu Dec 13 01:16:23 EST 2007 i686 athlon i386 GNU/Linux

作者: ywlscpl   发布时间: 2011-05-30

谢谢两位的回答 我修改了 profile 以后 我通过软件 远程登录的时候 他也会执行这个程序,如果又有一个人远程登陆服务器,那样又会执行一遍这个程序,这样就不行了。。。

作者: micmouse521   发布时间: 2011-05-30

本帖最后由 ywlscpl 于 2011-05-30 13:50 编辑

回复 micmouse521


再看下我的回帖,我说的方案已经屏蔽了远程登录的执行可能
如果需要限制程序执行的唯一性,可以通过写文件判断文件或判断进程存在与否的方式来做

作者: ywlscpl   发布时间: 2011-05-30

还是不太明白,我不能把ssh关了,我还得需要用它登陆

作者: micmouse521   发布时间: 2011-05-30

回复 micmouse521


汗。。。。
你在跟谁对话,楼上谁也没让你关ssh啊

作者: ywlscpl   发布时间: 2011-05-30

不好意思,我明白你的意思了,我的用户就是 root 没别的用户 ,你的意思是  判断root是否是从本机还是从别的机器登陆的来判断是吧

作者: micmouse521   发布时间: 2011-05-30

回复 micmouse521


   

QUOTE:
判断root是否是从本机还是从别的机器登陆的来判断是吧


这是你需求的关键点啊

作者: ywlscpl   发布时间: 2011-05-30

谢谢这位大哥,我弄好了。。。。。非常感谢给我这个思路。

作者: micmouse521   发布时间: 2011-05-30