LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 899|回复: 9

问个问题,为什么有的程序要./mypro才能运行,而有的直接mypro就能运行???

[复制链接]
发表于 2007-5-7 15:13:26 | 显示全部楼层 |阅读模式
问个问题,为什么有的程序要./mypro才能运行,而有的直接mypro就能运行???
这两个有什么区别吗???

还有,就是有些程序前面必须加sudo才能运行,这又有什么区别?

还有,如果我想开机自启动一个,我在终端要用:sudo ./mypro才能执行的程序,应该怎么弄???
我在网上看的,说是在init.d里面新建一个脚本,里面写上命令就可以,不知道我这种情况具体应该怎么弄???
谢了
发表于 2007-5-7 15:43:30 | 显示全部楼层
我也想知道为什么有的要加'./'

sudo是因为有些命令需要得到root的权限,普通用户无此权限使用某些命令,输入密码就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-7 17:00:24 | 显示全部楼层
那能更改这些权限吗?????
我用ls -l查看了一下./mypro与mypro能运行的这两种文件,显示的他们的权限完全一样,都是:
-rwxr-xr-x
不知道这样的区别在哪儿???
回复 支持 反对

使用道具 举报

发表于 2007-5-7 17:05:22 | 显示全部楼层
搜寻路径的问题

如果你的mypro这个可执行文件在搜寻路径中
echo $PATH

那么就不需要./

或者是强制执行当前目录下的mypro文件,才用./

./表示当前目录
回复 支持 反对

使用道具 举报

发表于 2007-5-7 17:16:56 | 显示全部楼层
楼上正解
补充一下 ,

$PATH表示系统标准路径,执行程序时默认从这里搜索。

./ 表示当前目录
../表示上层目录
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-7 17:34:31 | 显示全部楼层
那什么样的文件要sudo,什么样的不用sudo??
有没有什么规定?或者用什么方法可以更改???
回复 支持 反对

使用道具 举报

发表于 2007-5-7 19:25:14 | 显示全部楼层
楼上的解释很清楚了,我再总结一下:

1。linux的搜索路径中默认是不包含当前目录的,这样是为了防止运行当前目录下与系统同名的程序引起混淆和可能引起的其他问题; 所以 ./mypro 是指定运行了当前目录的程序,mypro则系统去找搜索路径中对应的程序

2。sudo的作用是给那些没有root权限的用户,执行某些必须使用root权限的程序用的,使用sudo启动的程序在运行时获得root权限;sudo能够让哪些用户、执行哪些命令,都可以通过配置文件 sudo.conf 规定;详细的你可以man一下

3。的确存在一些不需要使用sudo的、但是又必须使用root权限的程序,这些是被设置了s位(或者suid)的,你在 ls -al xxx时可以看到它前面有个 s,例如 ping;root有权限设置s位,但不要轻易设
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-7 21:07:04 | 显示全部楼层
Thanks
回复 支持 反对

使用道具 举报

发表于 2007-5-7 21:26:26 | 显示全部楼层
Linux的搜索路径中默认是不包含当前目录的


只能说是一些发行版。

sudo的作用是给那些没有root权限的用户,执行某些必须使用root权限的程序用的


sudo只是让一个用户以另一个用户身份执行命令,不必定是root。

suid也是。s是substitute,不是super。
回复 支持 反对

使用道具 举报

发表于 2007-5-8 23:32:55 | 显示全部楼层
实在不明白 sudo和suid  sgid的区别    主要是不明白su do
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表