Tanpa sengaja menjalankan "chown www-data: www-data / -R" sebagai root

26

Saya baru saja menjalankan ini beberapa detik yang lalu. Saya berhasil melakukan Ctrl- Cbegitu saya menyadari apa yang mulai saya lakukan.

Sejauh ini satu-satunya direktori yang mulai dilalui adalah /bin.

Saya takut melakukan hal lain. Sejauh ini saya menyadari bahwa saya tidak dapat menggunakan susebagai pengguna normal saya lagi.

Untungnya saya masih memiliki terminal root lain yang terbuka. Apa yang saya lakukan?

Akan
sumber
26
Kedengarannya seperti kamu mendapat untung di sana, sobat.
ta.speot.is
4
Sekarang Anda memahami pentingnya cadangan. Lakukan secara teratur.
Juliano
Setidaknya dia tidak chmod dari root. Itu bencana penuh. Setidaknya rm -rf dari root memberi Anda lebih banyak ruang disk dan mempersiapkan Anda untuk menginstal ulang sistem penuh, chmod hanya meninggalkan kekacauan nyata yang cukup sulit untuk dipulihkan dari apa pun selain menginstal ulang sistem lengkap. Rumputnya berwarna cokelat di kedua sisi pagar, kan?
Fiasco Labs

Jawaban:

10

Hampir semua yang ada di / bin / harus dimiliki oleh root: root, jadi jika Anda menjalankan yang berikut ini, Anda dapat memperbaiki kepemilikan pada file-file itu:

chown root:root -R /bin/ 

Anda mungkin juga ingin memastikan bit setuid diatur dengan benar pada / bin / su, yang dapat Anda perbaiki dengan yang berikut:

chmod 4755 /bin/su
epic9x
sumber
1
Di Ubuntu, sangat penting untuk melakukan hal yang sama dengan sudo. Saya tidak berpikir bahwa kata sandi root bahkan diatur secara default? Ngomong-ngomong, saya benar-benar merekomendasikan untuk benar-benar menggunakan sudo alih-alih root shell. Setengah detik yang diperlukan untuk mengetik sudo biasanya menghentikan kesalahan seperti itu di trek. Hanya bekerja di shell root lebih mudah untuk dilewatkan ...
Bernd Haug
4
paste.ubuntu.com/362468 adalah "ls-l / bin" dari desktop Ubuntu 9,10 saya. Walaupun saya mungkin tidak memiliki file yang sama persis diinstal seperti Anda, itu setidaknya harus memberi Anda petunjuk yang baik tentang file mana yang memerlukan izin khusus.
andol
@Bernd: Meskipun saya tidak melakukan banyak pekerjaan admin, saya perhatikan bahwa saya sudo lebih sedikit hal bodoh daripada yang saya lakukan sebagai root. Saya mungkin tidak pernah menggunakan kata sandi root lagi. (Dan, tidak, tidak ada kata sandi root default di Ubuntu, dan saya rasa tidak ada satu pun di MacOSX.)
David Thornley
@ David: Jelas tidak ada kata sandi root default pada OS X, dan pengaturan yang sebagian besar adalah kesalahan, IMO. Hampir selalu ada cara lain yang lebih baik. Masalahnya adalah bahwa Mac tidak terlalu aman untuk memulai; Saya berharap melihat banyak 'kesenangan' begitu mereka memiliki basis instalasi yang lebih besar untuk membuat RK, Virii, klien Botnet & c menguntungkan.
Bernd Haug
36

Pengguna redhat:

chown 0:0 /bin/rpm && rpm -qa | xargs rpm --setugids

Pengguna Debian / Ubuntu:

chown 0:0 /bin/*  /usr/bin/*
chown daemon:daemon /usr/bin/at
chown 0:utmp /usr/bin/screen
chmod 02755 /usr/bin/screen
chmod u+s /bin/fusermount /bin/mount /bin/su /bin/mount
chmod u+s /usr/bin/sudo /usr/bin/passwd
screen

Saat layar berjalan lakukan ini setidaknya dua kali:

dpkg --get-selections | awk '{ if ($2 == "install") print $1}' \
    | xargs apt-get install --reinstall --

Perhatikan output dengan sangat cermat karena jika ia mengeluhkan ada sesuatu yang salah, Anda harus memperbaikinya di jendela layar lain.

Crash course di layar:

Control+A     - command key
Control+A a   - emit a control+A
Control+A n   - next "screen"
Control+A c   - create "screen"

Pengguna Solaris:

Anda kacau.

pkgchk -R / -f -a

akan mengatur ulang semua izin, tetapi setuid-ness masih akan rusak. Gunakan cadangan, atau mesin solaris lain untuk mencari skrip dan file setuid / setgid dan perbaiki secara manual.

HAL PENTING TENTANG BACKUPS

Apakah Anda dapat memulihkannya, bukan mengambilnya.

Orang lain telah memberi Anda saran untuk mengambil cadangan, tetapi saya ingin menambahkan bahwa Anda harus mengujinya. Jika Anda menggunakan sistem unixish, tidak ada alasan sama sekali bahwa Anda tidak dapat membuang file ke komputer lain secara berkala dan memastikan semuanya berfungsi.

geocar
sumber
Pengguna FreeBSD: tidak akan pernah melakukan kesalahan semacam ini;)
einstiien
10
@einstiien Yep, pengguna FreeBSD langsung menuju rm -rfpanggung.
grawity
@ kegembiraan: lol, bagus.
einstiien
Pengguna Miskin Solaris :(
Mircea Chirea
3

Ketahuilah bahwa flag set-uid pada sembarang binari yang terkena mungkin telah dihapus juga; ini adalah fitur keamanan chown. Periksa dengan beberapa sistem lain yang binari memiliki flag set-uid atau set-gid dan pastikan untuk mengaturnya pada binari Anda juga.

Teddy
sumber
3

Saya akan menjelaskan detail penggunaan RPM untuk mengatur ulang izin file, tetapi saya telah menemukan situs dengan lebih banyak informasi . Itu juga menyebutkan bahwa Ubuntu / Debian (jadi. Deb secara umum) tidak mendukungnya.

Namun secara umum opsi yang Anda cari akan sesuai:

rpm --setugids {packagename}
Koperasi
sumber
Ini ada di sistem ubuntu, seperti yang ditunjukkan oleh tag. Ini berarti dpkg dan .DEB digunakan sebagai ganti rpm dan .RPM
Kevin M
2

Jika ini adalah sistem debian, saya akan menginstal ulang segalanya.

PTman
sumber
0

apakah Anda memiliki cadangan yang berfungsi? bila ya, pulihkan folder bin Anda.

jika tidak, lihat kotak lain tempat Anda menginstal versi ubuntu yang sama dan chownapa yang Anda temukan pada instalasi yang berfungsi.

Kristen
sumber
0

coba ini: temukan semua www-data dalam direktori / bin

# find /bin -user www-data

kemudian ubah kembali data www ke pengguna asli

# find /bin -user www-data -exec chown ORiginalUser {} \;

# then change www-data back to oringal group
# find /bin -group www-data -exec chgrp originaluser {} \;
squillman
sumber
0

Terima kasih atas tanggapan yang luar biasa, semuanya sepertinya sudah diperbaiki sekarang.

/ bin / su bekerja sekali chmod'd ke 4755 (tidak yakin mengapa chown mengubah bit suid)

saya tidak memperhatikan tetapi juga mulai bekerja melalui direktori / home tapi itu perbaikan yang cukup mudah (hanya mengatur pengguna: grup ke pengguna untuk setiap dir)

Akan
sumber