Я зламав Судо після оновлення з 9 до 12.04.1


11

Наразі sudoзапросить пароль, але після цього абсолютно нічого не відбувається. Жодних помилок.

Я перевірив файл sudoers, він пройшов перевірку синтаксису visudo, ось настройка:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Файл має дозвіл 0440. Я додав себе до групи sudoта adminгрупи.

Ось як це виглядає, коли я намагаюся використовувати судо:

kml@rhythmsdev:/etc$ sudo apt-get update
kml@rhythmsdev:/etc$ 

Як бачите, помилок взагалі немає. Він просто повертається до підказки.

Ось дозволи до файлів

-r--r----- 1 root root 723 Feb 1 10:10 sudoers

sudoers.d

drwxr-xr-x 2 root root 4096 Feb 4 16:46 .

Ось результат idодного з користувачів, під яким я намагаюся змусити Sudo працювати:

uid=1010(kml) gid=102(develop) groups=102(develop),4(adm),27(sudo),106(admin),110(ftp)

Як я здійснив оновлення.

Я здійснив оновлення за допомогою do-release-upgrade -dSSH, але з фізичним доступом можливим через поїздку по передпокою.

Ось вміст /etc/sources.list

    #
# deb cdrom:[Ubuntu-Server 10.04 LTS _Lucid Lynx_ - Release i386 (20100427)]/ lucid main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.

deb http://us.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise universe
deb-src http://us.archive.ubuntu.com/ubuntu/ precise universe
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse

## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://us.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu lucid partner
# deb-src http://archive.canonical.com/ubuntu lucid partner

deb http://security.ubuntu.com/ubuntu precise-security main restricted
deb-src http://security.ubuntu.com/ubuntu precise-security main restricted
deb http://security.ubuntu.com/ubuntu precise-security universe
deb-src http://security.ubuntu.com/ubuntu precise-security universe
deb http://security.ubuntu.com/ubuntu precise-security multiverse
deb-src http://security.ubuntu.com/ubuntu precise-security multiverse
# deb http://security.ubuntu.com/ubuntu maverick-security main universe

Каталог: /etc/apt/sources.list.dпорожній.

lsb_release -a є

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.1 LTS
Release:        12.04
Codename:       precise

apt-cache policy sudo є:

sudo:
  Installed: 1.8.3p1-1ubuntu3.3
  Candidate: 1.8.3p1-1ubuntu3.3
  Version table:
 *** 1.8.3p1-1ubuntu3.3 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages
        100 /var/lib/dpkg/status
     1.8.3p1-1ubuntu3.2 0
        500 http://security.ubuntu.com/ubuntu/ precise-security/main i386 Packages
     1.8.3p1-1ubuntu3 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main i386 Packages

type -a sudo є

sudo is /usr/bin/sudo

sha256sum $(which sudo) є

0efd358e04ea07dc73b67642d9bb85f49143c65996a7c88a57b42557a0b0a50d /usr/bin/sudo

pkexec echo success зробив це:

==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/bin/echo' as the super user
Multiple identities can be used for authentication:
 1.  My Name,,, (me)
 2.  ,Account used for Git,, (git)
 3.  Coworker1,,, (cw1)
 4.  Coworker2,,, (cw2)
 5.  Coworker3,,, (cw3)
 6.  My Name,,, (me)
 7.  Coworker4,,, (cw4)
 8.  Coworker5,,, (cw5)
 9.  ,Account used for Git,, (git)
Choose identity to authenticate as (1-9): 1
Password:
==== AUTHENTICATION COMPLETE ===
success

Імена були змінені, щоб захистити переважно невинних. Я з’являються двічі, чомусь. Але жоден з інших колег не може також використовувати судо (ті, які можна було б попередньо оновити).

Ось вихід ще кількох команд.

visudo файл sudoers і додається kml ALL=(ALL:ALL) ALLпід кореневою лінією

sudo -i echo success повернув так само, як і раніше, нічого.

echo foo | sudo tee foo.txt; ls -l foo.txt врожайність:

ls: cannot access foo.txt: No such file or directory

Як я перевстановив Судо.

Я це зробив двічі.

Перший раз, коли я запустив apt-get install --reinstall sudo- Від кореня

Це мало, тому я спочатку видалив через: apt-get uninstall sudoза ним apt-get install sudo

Відредагуйте додаткову інформацію, повторно змінено

sudoпісля автентифікації пароля повертає мовчання і більше не запитує. sudo -kа sudo -K також мовчки не виходить, коли я ввійшов як root, він вимагає ввести пароль у звичайному акаунті.

Більше інформації 2

Я побіг tail -f /var/log/auth.log

Ось результат з мого sudo lsрахунку kml

Feb  6 16:33:27 rhythmsdev sudo: pam_unix(sudo:session): session opened for user root by kml(uid=1010)
Feb  6 16:33:27 rhythmsdev sudo: pam_unix(sudo:session): session closed for user root

При спробі неправильного пароля з'явиться запит на новий пароль та запишіть його в журнал

Feb 6 16:35:17 rhythmsdev sudo: pam_unix(sudo:auth): authentication failure; logname=kml uid=1010 euid=0 tty=/dev/pts/0 ruser=kml rhost= user=kml

ed3

sudo apt-get clean && sudo apt-get update && sudo apt-get --purge --reinstall install sudo

Судо все ще не працює. Тут був вихід

apt-get install --purge --reinstall sudo
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  mono-2.0-gac libxcb-aux0 python-fstab libgnomekbd4 libts-0.0-0 libwpd8c2a libcdio10 xsltproc pnm2ppa librpmbuild0 libcolamd2.7.1 lp-solve libglitz-glx1 openoffice.org-writer libntfs10 python-gnome2 libxcb-render-util0 libevent-1.4-2
  gnome-media gnome-desktop-data libgtk-vnc-1.0-0 libgnomepanel2.24-cil xulrunner-1.9.2 libxcb-event1 libindicator0 linux-headers-2.6.32-38 libicu42 openoffice.org-draw libdbusmenu-glib1 ubufox python-aptdaemon-gtk openoffice.org-gtk
  libsilc-1.1-2 libgnome-media0 libbeagle1 g++-4.4 libexchange-storage1.2-3 libgraphite3 libwpg-0.1-1 libibus1 libproxy0 libnm-util1 python-gtksourceview2 libevview2 scrollkeeper libindicate-gtk2 libwebkit-1.0-2
  libmono-system-runtime2.0-cil libpisock9 libdns64 libcamel1.2-14 bcmwl-modaliases librpmio0 librpm0 libgnome2-perl libaccess-bridge-java-jni libstdc++6-4.4-dev libeggdbus-1-0 libnspr4-0d libgtkhtml-editor0 esound-common
  python-pyorbit gdebi-core libnotify1 python-telepathy libedata-cal1.2-6 libaccess-bridge-java libdevkit-power-gobject1 gnome-media-common librasqal2 libpango1.0-common ubuntuone-client-gnome cups-driver-gutenprint libgadu3
  openoffice.org-style-human libmono-cairo2.0-cil libisccc60 cpu-checker libgweather1 python-gtkspell libgnome-bluetooth7 libxxf86misc1 libloudmouth1-0 libsexy2 libxcb-atom1 libido-0.1-0 libgmime2.4-cil compiz-plugins libffi5
  libgnome-pilot2 libdirectfb-1.2-0 openoffice.org-style-galaxy libgssdp-1.0-2 libcryptui0 finger libmusicbrainz4c2a python-pyatspi libgp11-0 libjs-mootools python-webkit libgcr0 libqt4-webkit libcdio-cdda0 libhunspell-1.2-0 liblwres60
  libgmp3c2 libgtksourceview2.0-common openoffice.org-math libhal1 libgtksourceview2.0-0 hal libgnome2-vfs-perl libprotobuf5 libesd0 openoffice.org-common libegroupwise1.2-13 libdbusmenu-gtk1 libgsf-1-common gnome-doc-utils
  libecal1.2-7 at-spi libpoppler5 libgmime-2.4-2 libgdata1.2-1 libedataserver1.2-11 libhal-storage1 libpython2.6 gnome-system-monitor libmldbm-perl libbind9-60 libimobiledevice0 libgtkmm-2.4-1c2a libglitz1 libevdocument2
  libgdata-google1.2-1 libspeechd2 fglrx-modaliases libnunit2.4-cil libclutter-gtk-0.10-0 libebook1.2-9 libmagickcore2 libaudiofile0 libwps-0.1-1 libedataserverui1.2-8 nvidia-173-modaliases libphonon4 libgnome-window-settings1
  libedata-book1.2-2 libgdata6 libxss1 libgs8 openoffice.org-emailmerge libappindicator0 liblpint-bonobo0 ntfsprogs libjpeg62 libgtkhtml-editor-common libqt4-designer libmpfr1ldbl libcdio-paranoia0 libmysqlclient16 libmagickwand2
  libisccfg60 libfreezethaw-perl smartdimmer libgupnp-1.0-3 screen-resolution-extra libnl1 libanthy0 tsconf liboobs-1-4 libgucharmap7 libgksu2-0 libdb4.7 libsilcclient-1.1-3 libindicate4 libndesk-dbus-glib1.0-cil libraptor1 python-wnck
  liboil0.3 libebackend1.2-0 firefox-branding hal-info speech-dispatcher libgnome-desktop-2-17 fuse-utils python-desktopcouch gwibber libisc60 libnice0 linux-headers-2.6.32-38-generic libnautilus-extension1 compiz-fusion-plugins-main
  gnome-applets-data min12xxw libwebkit-1.0-common libavahi-ui0 libprotoc5 nvidia-96-modaliases libavahi-core6 libgupnp-igd-1.0-2 libgnome2-canvas-perl libgtkhtml3.14-19 libgsf-1-114 python-rdflib gnome-panel-data libpoppler-glib4
  libpisync1 libdotconf1.0 python-indicate
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 16 not upgraded.
Need to get 292 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main sudo i386 1.8.3p1-1ubuntu3.3 [292 kB]
Fetched 292 kB in 0s (742 kB/s)
(Reading database ... 310429 files and directories currently installed.)
Preparing to replace sudo 1.8.3p1-1ubuntu3.3 (using .../sudo_1.8.3p1-1ubuntu3.3_i386.deb) ...
Unpacking replacement sudo ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Setting up sudo (1.8.3p1-1ubuntu3.3) ...

редагувати 4

sha256sum /usr/lib/sudo/sudoers.so /usr/lib/sudo/sudo_noexec.so призводить до

6f2e56e05d9a3de942558255b72d59a147be2c637247e244c365838378fe6ec3  /usr/lib/sudo/sudoers.so
7db6a45129ec1ef6d4cb21d7a488a85f5b45e4d21990116f64c9e71f116648c0  /usr/lib/sudo/sudo_noexec.so

Судо як інший користувач (працює як root)

root@rhythmsdev:/home/kml# sudo -u kml echo success
root@rhythmsdev:/home/kml#

редагувати 5

Використовуючи сценарії , що надаються Eliah Кагана тут я перевірив дубльовані групи і ідентифікаторів. Усі відмінності виходять порожніми.

редагувати 6

strace echo success тут

редагувати 7

root@rhythmsdev:/home/kml# sudo echo success
root@rhythmsdev:/home/kml# echo $?
1

редагувати 8

Це здається цікавим, це відрізняється від сервера, який має робоче судо

root@rhythmsdev:/home/kml# sudo -l
Matching Defaults entries for root on this host:
    env_reset,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User root may run the following commands on this host:
    (ALL : ALL) ALL
    (ALL) ALL
root@rhythmsdev:/home/kml#

Це я як корінь

Я як я (не корінь)

kml@rhythmsdev:~$ sudo -l
[sudo] password for kml:
Matching Defaults entries for kml on this host:
    env_reset,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User kml may run the following commands on this host:
    (ALL : ALL) ALL
    (ALL) ALL
    (ALL : ALL) ALL
kml@rhythmsdev:~$

Дякую,

Я зараз свіжий від ідей.


1
@kevingreen Вибачте, все ще редагували коментар! Можливо, нам слід продовжувати це у чаті, оскільки цей сайт не підходить для обговорення та тривалої спроби та помилок.
gertvdijk

Це повинен бути сервер, але сподіваюся, спочатку він був встановлений під графічним інтерфейсом. Один із наших адміністраторів любить графічний інтерфейс.
kevingreen

@EliahKagan додав ще трохи інформації.
kevingreen

Гаразд, я сподіваюся, що я зрозумів це правильно. Якщо я роблю sudo -u kml echo successз не-root користувача, нічого не відбувається. Якщо я sudo -k echo successотримаю запит на введення пароля, тоді нічого не відбувається.
kevingreen

1
Привіт. Продовжуйте оновлювати своє запитання всією новою інформацією. Але я рекомендую використовувати чат. Якщо ви згодні, будь ласка, приєднуйтесь до мене в цій кімнаті чату . (Усі бажаючі можуть приєднатись до нас та / або подивитися стенограму.)
Елія Каган

Відповіді:


4

Це було антикліматичним ...

Мені вдалося це виправити, змінивши один рядок у своєму файлі sudoers.

Я змінив цю лінію

Defaults        env_reset

і я змінив його на

Defaults        !env_reset

Це було тому, що я помітив, що sudo -E працює. Тож я провів кілька досліджень і знайшов спосіб запобігти судо витирати свої змінні середовища. Поки що, здається, це виправлено. Що мені потрібно зробити - це з’ясувати, яку змінну довкілля потрібно зберігати, і я додам її до env_keep + =

Щоб ви всі за вашу допомогу та підтримку, я буду постійно її оновлювати. Я не впевнений, чи хтось запропонував судо -E, перш ніж повідомити мені про це, і я присуджую нагороду цій людині.

ed1

Тому я можу створювати проблеми із безпекою за допомогою! Env_reset. Я буду постійно оновлювати.


0

Перевірте, чи є ви в групі адміністратора.

Ви можете завантажити рятувальний завантажувач і вирішити проблему, також використовуючи компакт-диск Linux.

Ви завжди повинні використовувати visudo, коли ви змінюєте файл sudoers. visudo перевірить синтаксис файлу sudo перед тим, як зберегти його, захистивши вас від цієї конкретної проблеми (але не від написання файлу sudoers, який забороняє вас запускати sudo!)

Зауважте, що sudoers зазвичай налаштований таким чином, щоб він не був доступний для запису навіть коренем на Ubuntu:

-r--r----- 1 root root 600 2012-06-18 18:00 sudoers

Захист файлів або право власності на файл sudoers більше не є правильним. Файл повинен належати користувачеві: root та group: захист кореня та файлу повинен бути: 0440 (u = r, g = r, o-rwx) .

chown root:root /etc/sudoers
chmod u=r,g=r,o= /etc/sudoers

chown -R root:root /etc/sudoers.d
chmod u=rwx,g=rx,o=rx /etc/sudoers.d/
chmod u=r,g=r,o= /etc/sudoers.d/*

Файли слід читати тільки для кореневих користувачів та кореневих груп, нічого більше ні для кого. Каталог повинен бути rx для всіх і для кореня групи, але тільки користувальницький корінь отримує дозвіл на запис у каталог.


Ось дозволи -r--r----- 1 root root 723 Feb 1 10:10 sudoers
kevingreen

Я, безумовно, в групі Судо та Адміністратор. Це я вже перевірив.
kevingreen

1
Вихід , idяк тепер в оновленому питанні показує , користувач є членом admin, admі sudoгрупою. Синтаксис добре виглядає з файлу sudoers і ідентичний тому, який я маю в моїх системах 12.04.
gertvdijk

1
@hhlp Це всі хороші пропозиції щодо усунення sudoнеполадок загалом, і їх варто було спробувати тут. Однак, коли користувач не в потрібній групі використання sudo, або коли , sudoабо будь-які з його файлів мають неправильне право власності або права доступу, він не підведе мовчки (як це трапився тут).
Елія Каган

1
Я навмисно переплутав файли sudoers, потім спробував це побачити, що буде. Це не вдалося шумно, і мені сказали, що є синтаксична помилка. Я відновив його і повернувся до збою беззвучно. Якщо я створюю користувача в неправильній групі, без sudo / admin, він гучно виходить з ладу.
kevingreen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.