安装debian小型映像,执行包含sudo的命令提示command not found

初学debian,下载安装了这个180MB的debian安装包安装在vmware里 http://www.debian.org/distrib/netinst
根据安装向导创建了一个新账户。只后用新账户登录,安装 nginx

apt-get install nginx

提示:

Could not open lock file /var/lib/dpkg/lock - open (13:permission denied)
Unable to lock the administration directory (/var/lib/dpkg), are you root?

既然提示没权限,我就用sudo apt-get install nginx,但是就出现了sudo: command not found

然后呢,然后我就不知道怎么办了。。。

阅读 28.3k
4 个回答

网络安装的镜像安完的debian是什么都没有的,包括gcc和sudo。
首先你需要切换到root用户,输入root用户的口令。

$ su

然后你需要更新一遍软件源,选择适当的debian镜像,这里以163的镜像为例

# wget http://mirrors.163.com/.help/sources.list.squeeze
# mv sources.list.squeeze sources.list

因为配置文件中有一个源已经失效了,所以要修改一个地方,使用vi sources.list打开,把倒数第二个源注释掉。

...
deb http://http.us.debian.org/debian squeeze main contrib non-free
# deb http://non-us.debian.org/debian-non-US squeeze/non-US main contrib non-free
deb http://security.debian.org squeeze/updates main contrib non-free

然后就可以更新了。

# mv sources.list /etc/apt/
# apt-get update

这样把软件源配好之后,你再执行apt-get install才能够正确的安装东西。
sudo默认是没有安装的,需要你在配置好软件源之后,通过apt-get install sudo来安装,然后执行visudo或者vi /etc/sudoers来修改,照着root的写法在下面加上一行就可以了。

...
# User privilege specification
root       ALL=(ALL) ALL
youruser   ALL=(ALL) ALL
...

注意一下/etc/sudoers是只读文件,如果用vi直接修改,保存的时候需要使用:wq!

debian默认是有root用户的吧?安装的时候不是要设置一次root密码么?然后才是新建用户。
以root登陆即可。

以root登陆
apt-get install sudo
chmod +w /etc/sudoers
/etc/sudoers ,添加
jack ALL=NOPASSWD:/etc/init.d/apache2
jack 表示你要添加需要执行 root 某些权限的用户
ALL 表示在哪一台机上执行,ALL 表示所有
NOPASSWD 表示执行命令时,不需要输入密码

chmod 0440 /etc/sudoers

sudo命令可能不在PATH中。查看一下/bin /sbin /usr/bin /usr/sbin 这些目录中没有没sudo
然后使用绝对路径调用

或者通过find命令查找

whereis 找找sudo
如果没有,该安装
但愿有whereis……

logo
101 新手上路
子站问答
访问
宣传栏