Tôi đã phá vỡ Sudo sau khi nâng cấp từ 9 lên 12.04.1


11

Hiện tại sudosẽ nhắc nhập mật khẩu, nhưng hoàn toàn không có gì xảy ra sau đó. Không có lỗi của bất kỳ loại nào.

Tôi đã kiểm tra tệp sudoers, nó đã vượt qua kiểm tra cú pháp visudo, đây là thiết lập:

#
# 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

Các tập tin có 0440 như sự cho phép. Tôi đã thêm mình vào sudoadminnhóm.

Đây là những gì khi tôi cố gắng sử dụng Sudo:

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

Như bạn thấy, không có lỗi gì cả. Nó chỉ đơn giản là trở về dấu nhắc.

Đây là quyền của tập tin

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

sudoers.d

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

Đây là đầu ra của idmột trong những Người dùng mà tôi đang cố gắng để Sudo hoạt động theo:

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

Làm thế nào tôi thực hiện nâng cấp.

Tôi đã thực hiện nâng cấp bằng cách sử dụng do-release-upgrade -dSSH, nhưng với khả năng truy cập vật lý có thể thông qua một chuyến đi xuống hành lang.

Dưới đây là nội dung của /etc/source.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

Thư mục: /etc/apt/sources.list.dtrống.

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 Là:

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 đã làm điều này:

==== 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

Tên đã được thay đổi để bảo vệ chủ yếu là vô tội. Tôi xuất hiện hai lần, vì một số lý do. Nhưng không ai trong số các đồng nghiệp khác có thể sử dụng Sudo (những người có thể nâng cấp trước dù sao).

Đây là đầu ra của một vài lệnh nữa.

Visudo tập tin sudoers và thêm vào kml ALL=(ALL:ALL) ALLdưới dòng gốc

sudo -i echo success trả lại như trước, không có gì.

echo foo | sudo tee foo.txt; ls -l foo.txt mang lại:

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

Làm thế nào tôi cài đặt lại Sudo.

Tôi đã hoàn thành điều này hai lần.

Lần đầu tiên tôi chạy apt-get install --reinstall sudo- Từ gốc

Điều đó đã hoàn thành rất ít, vì vậy tôi đã gỡ cài đặt trước thông qua: apt-get uninstall sudotiếp theo là apt-get install sudo

Chỉnh sửa thêm thông tin, chuyển hướng

sudotrả về im lặng sau khi xác thực mật khẩu và không hỏi lại. sudo -ksudo -K cũng thất bại trong âm thầm tôi đã đăng nhập bằng root, nó nhắc nhập mật khẩu trên một tài khoản bình thường.

Thêm thông tin 2

Tôi đã chạy tail -f /var/log/auth.log

Đây là đầu ra từ sudo lstài khoản kml của tôi

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

Thử mật khẩu không đúng sẽ nhắc nhập mật khẩu mới và ghi nhật ký này

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

Sudo vẫn không hoạt động. Đây là đầu ra

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) ...

chỉnh sửa 4

sha256sum /usr/lib/sudo/sudoers.so /usr/lib/sudo/sudo_noexec.so kết quả trong

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

Sudo như một người dùng khác, (chạy dưới quyền root)

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

chỉnh sửa 5

Sử dụng các tập lệnh được cung cấp bởi Eliah Kagan tại đây, tôi đã kiểm tra các nhóm & id trùng lặp. Tất cả các khác biệt đi lên trống.

chỉnh sửa 6

strace echo success đây

chỉnh sửa 7

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

chỉnh sửa 8

Điều này có vẻ thú vị, điều này khác với một máy chủ đã hoạt động sudo

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#

Đó là tôi là root

Tôi là tôi (không phải root)

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:~$

Cảm ơn bạn,

Hiện tại tôi đang hết ý tưởng.


1
@kevingreen Xin lỗi, vẫn đang chỉnh sửa bình luận! Có lẽ chúng ta nên tiếp tục điều này trên trò chuyện vì trang web này không phù hợp để thảo luận và chạy thử & lỗi trong thời gian dài.
gertvdijk

Nó được cho là một máy chủ, nhưng tôi cá là ban đầu nó được cài đặt với GUI. Một trong những quản trị viên của chúng tôi thích GUI của.
kevingreen

@EliahKagan đã thêm một số thông tin.
kevingreen

Ok, tôi hy vọng tôi hiểu điều này đúng. Nếu tôi làm sudo -u kml echo successtừ một người dùng không root, không có gì xảy ra. Nếu tôi làm sudo -k echo successtôi được nhắc nhập mật khẩu, thì không có gì xảy ra.
kevingreen

1
Chào. Vui lòng tiếp tục cập nhật câu hỏi của bạn với tất cả các thông tin mới. Nhưng tôi khuyên chúng ta nên sử dụng trò chuyện. Nếu bạn đồng ý, xin vui lòng tham gia với tôi trong phòng trò chuyện này . (Bất cứ ai khác quan tâm cũng có thể tham gia với chúng tôi và / hoặc nhìn vào bảng điểm.)
Eliah Kagan

Câu trả lời:


4

Đây là môn chống khí hậu

Tôi đã có thể sửa nó bằng cách thay đổi một dòng trong tập tin sudoers của tôi.

Tôi đã thay đổi dòng này

Defaults        env_reset

và tôi đã đổi nó thành

Defaults        !env_reset

Điều này là do tôi nhận thấy rằng sudo -E đã hoạt động. Vì vậy, tôi đã làm một số nghiên cứu và tìm ra một cách để ngăn chặn sudo xóa sạch các biến môi trường của bạn. Cho đến nay dường như đã sửa nó. Những gì tôi cần làm là tìm ra biến môi trường nào cần được giữ và tôi sẽ thêm nó vào với env_keep + =

Đó là tất cả sự giúp đỡ và hỗ trợ của bạn, tôi sẽ tiếp tục cập nhật điều này. Tôi không chắc ai đó đã đề nghị sudo -E trước khi cho tôi biết, và tôi sẽ trao tiền thưởng cho người đó.

ed1

Vì vậy, tôi có thể tạo ra các vấn đề bảo mật với! Env_reset. Tôi sẽ tiếp tục cập nhật.


0

Kiểm tra xem bạn có thuộc nhóm quản trị viên không.

bạn có thể khởi động cứu hộ khởi động và khắc phục sự cố bằng đĩa CD Linux.

Bạn phải luôn luôn sử dụng visudo khi bạn sửa đổi tệp sudoers. visudo sẽ kiểm tra cú pháp của tệp sudo trước khi lưu nó, bảo vệ bạn khỏi vấn đề cụ thể này (nhưng không viết tệp sudoers không cho phép bạn chạy sudo!)

Lưu ý rằng sudoers thường được thiết lập để không thể ghi được ngay cả bằng root trên Ubuntu:

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

Việc bảo vệ tệp hoặc quyền sở hữu tệp sudoers không còn đúng nữa. Tệp phải được sở hữu bởi người dùng: root và nhóm: bảo vệ root và tệp phải là: 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/*

Các tập tin chỉ nên được đọc cho root người dùng và root nhóm, không có gì hơn cho bất cứ ai. Thư mục phải là rx cho mọi người và cho nhóm gốc, nhưng chỉ người dùng root mới có quyền ghi vào thư mục.


Đây là quyền -r--r----- 1 root root 723 Feb 1 10:10 sudoers
kevingreen

Tôi chắc chắn thuộc nhóm Sudo và Admin, tôi đã kiểm tra rồi.
kevingreen

1
Đầu ra của idnhư bây giờ trong chương trình câu hỏi được cập nhật cho người dùng thành viên của admin, admsudonhóm. Cú pháp có vẻ tốt của tệp sudoers và giống hệt với tệp tôi có trên các hệ thống 12.04 của mình.
gertvdijk

1
@hhlp Đây là tất cả các đề xuất khắc phục sự cố tốt cho các sự cố sudonói chung và đều đáng để thử ở đây. Tuy nhiên, khi người dùng không thuộc nhóm cần thiết để sử dụng sudohoặc khi sudohoặc bất kỳ tệp nào của nó có quyền sở hữu hoặc quyền sai, nó sẽ không âm thầm thất bại (như đã xảy ra ở đây).
Eliah Kagan

1
Tôi cố tình làm rối các tập tin sudoers, sau đó thử nó để xem điều gì sẽ xảy ra. Nó thất bại một cách ồn ào, và nói với tôi rằng có một lỗi cú pháp. Tôi khôi phục nó, và trở lại thất bại trong âm thầm. Nếu tôi tạo một người dùng trong nhóm sai, không có sudo / admin, nó sẽ thất bại lớn.
kevingreen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.