9から12.04.1へのアップグレード後にSudoを破損しました


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グループ。

Sudoを使用しようとすると、次のようになります。

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 .

idSudoを動作させようとしているユーザーの1人の出力を次に示します。

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

ほとんど無実の人々を保護するために名前が変更されました。なんらかの理由で2回現れます。ただし、他の同僚は誰もSudo(とにかく事前アップグレードできる同僚)を使用できません。

以下に、さらにいくつかのコマンドの出力を示します。

sudoersファイルをvisudoし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

Sudoを再インストールした方法。

これを2回達成しました。

初めて実行したとき 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

別のユーザーとしてのsudo(rootとして実行)

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

編集5

ここで Eliah Kaganが提供するスクリプトを使用して、重複するグループとIDをチェックしました。すべての差分が空白になります。

編集6

strace echo success ここに

編集7

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

編集8

これは興味深いようです。これは、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#

それはルートとしての私です

私として(ルートではなく)

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

これはサーバーであるはずですが、元々はGUIでインストールされていたに違いありません。管理者の1人はGUIが好きです。
ケビングリーン

@EliahKaganはさらに情報を追加しました。
ケビングリーン

わかりました、この権利を理解したことを望みます。sudo -u kml echo successroot以外のユーザーから実行した場合、何も起こりません。私が行う場合sudo -k echo success、私はパスワードの入力を求められますし、何も起こりません。
ケビングリーン

1
こんにちは。すべての新しい情報で質問の更新を続けてください。しかし、チャットを使用することをお勧めします。同意したら、このチャットルームに参加してください。(興味のある方は、私たちと一緒に参加したり、トランスクリプトを見ることができます。)
エリアカガン

回答:


4

これは耐候性でした…

sudoersファイルの1行を変更することで修正できました。

この行を変更しました

Defaults        env_reset

に変更しました

Defaults        !env_reset

これは、sudo -Eが機能していることに気付いたからです。それで私はいくつかの調査を行い、sudoが環境変数を一掃するのを防ぐ方法を見つけました。これまでのところ、それは修正されたようです。行う必要があるのは、どの環境変数を保持する必要があるかを把握し、env_keep + =で追加することです。

あなたのすべてのあなたの助けとサポートのために、私はこれを更新し続けます。誰かが私に知らせる前にsudo -Eを提案したかどうかはわかりませんが、その人に賞金を授与します。

ed1

そのため、!env_resetでセキュリティの問題を作成している可能性があります。更新し続けます。


0

あなたが管理者グループに属しているかどうかを確認します。

Linux CDを使用してレスキューブートを起動し、問題を修正することもできます。

sudoersファイルを変更するときは、常にvisudoを使用する必要があります。visudoは、保存する前にsudoファイルの構文をチェックし、この特定の問題から保護します(ただし、sudoの実行を禁止するsudoersファイルを作成しないでください!)

sudoersは通常、Ubuntuのrootでも書き込みできないように設定されていることに注意してください。

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

ファイル保護、またはsudoersファイルの所有権はもはや正しくありません。ファイルの所有者はユーザー:rootおよびgroup:rootおよびfile protections: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である必要がありますが、ディレクトリへの書き込み権限を取得できるのはユーザーrootのみです。


権限は -r--r----- 1 root root 723 Feb 1 10:10 sudoers
次のとおりです

私は間違いなくSudo and Adminグループに所属しています。すでに確認しました。
ケビングリーン

1
id更新された質問のas as の出力は、ユーザーadminadmおよびsudoグループのメンバーであることを示しています。構文はsudoersファイルによく似ており、12.04システムにあるものと同一です。
gertvdijk

1
@hhlpこれらはすべてsudo、一般的な問題に対する優れたトラブルシューティングの提案であり、ここで試してみる価値がありました。ただし、ユーザーが必要な用途にグループに属していないとき、sudoまたはときsudoまたは任意のそのファイルの所有権が間違っているかの権限を持っている(ここで起こった)、それは静かに失敗しません。
エリアケイガン

1
私は故意にsudoersファイルを台無しにしてから、何が起こるかを確かめようとしました。騒々しく失敗し、構文エラーがあると教えてくれました。私はそれを復元し、静かに失敗するように戻った。sudo / adminなしで間違ったグループにユーザーを作成すると、大声で失敗します。
ケビングリーン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.