Назад | Перейти на главную страницу

Изменилось ли использование sudo в Debian 7?

Сначала я попытаюсь объяснить свою ситуацию. В настоящее время я использую 6 виртуализированных серверов Debian на хост-машине ESXi. Виртуальные серверы, на которых установлен Debian Linux 6 (Lenny).

Недавно я обновил серверы до debian Wheezy

root@ares> lsb_release -a                                                                                                    /home/vincent
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.1 (wheezy)
Release:        7.1
Codename:       wheezy

До меня дошло, что после этого обновления команда sudo демонстрирует странное поведение. На самом деле, похоже, это вообще не действует. Я проверил файл / etc / visudo, и все вроде нормально. Судо также запрашивает мой пароль, но затем, похоже, не запускает что-то от root. Примером может служить команда ifconfig:

user@ares> ifconfig 
zsh: command not found: ifconfig
[127] user@ares> sudo ifconfig
sudo: ifconfig: command not found
[1] user@ares> sudo su
root@ares>ifconfig  
output shows    

кто-нибудь может мне здесь помочь?

Ваш PATH вероятно, отличается между вашим обычным пользователем и пользователем root, вероятно, отсутствуют каталоги, такие как /sbin и / или /usr/sbin где административные утилиты вроде ifconfig нормально живут.

Ответ Майкла правильный, но я хотел добавить комментарий:

Не обязательно добавлять путь административных команд (/sbin, /usr/sbin, /usr/local/sbin) непривилегированному пользователю, пока secure_path директива настроена в /etc/sudoers на вашем сервере LDAP, если вы используете бэкэнд LDAP:

$ ip a s
-rbash: ip: command not found

$ sudo ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN qlen 1000
    link/ether 00:0c:29:57:80:d9 brd ff:ff:ff:ff:ff:ff
    inet 172.22.197.38/24 brd 172.22.197.255 scope global eth0

$ echo $PATH
/home/dawud/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin

$ sudo -l | awk '$0~/secure_path/ {print $1}'
secure_path=/bin\:/usr/bin\:/sbin\:/usr/sbin\:/usr/local/bin\:/usr/local/sbin

Проверьте man 5 sudoers для дальнейшей ссылки на secure_path (также представляют интерес exempt_group и env_reset).

 secure_path   Path used for every command run from sudo.  If you don’t trust the people running sudo to have a sane PATH environment variable you may want to use this.  Another use is if you want to
               have the “root path” be separate from the “user path”.  Users in the group specified by the exempt_group option are not affected by secure_path.  This option is not set by default.