Chmod nedeniyle adanmış sunucu kilitlendi


1

Bu yüzden yanlışlıkla chmod -x /istediğim şey yerine koştum ve bu yüzden sunucumda bir sürü şey kırdım. Bu nedenle normal şekilde oturum açmak gibi şeyler yapamıyorum ve diğer yöntemleri kullanmak zorundayım.

Yanlışlıkla chmoddan sonra sunucunun bu Düzeltme izinlerini denedim ancak "/ proc / sys / net / etc 'in iznini değiştirmek gibi" bir sürü izin sorunu aldım ve hala çalışmıyor. Bunu başka birçok dizin için de alıyorum.

Bunu ya da ihtiyacınız olan diğer bilgileri nasıl düzelteceğimi bilmeme izin verirseniz, bu harika olurdu.


Benzer bir duruma geri yükleyebileceğim yollar hakkında çok daha fazla sorun giderme sonrasında hala bu konuda hiç şansım olmadı. Yapabileceklerim hakkında bir fikri olan varsa, çok memnun olurum.
Zak Shearman

1
Açıkçası pes ediyorum. Sizin /homeve diğer sunucu verilerinizi bir yedekleme konumuna taşıyın, , backup daha sonra bazı ayarları aramanız gerekebilir diye kurulu paketlerinizi `dpkg --get-selection / etc /` ile listeleyin ve yeniden yükleyin.
Jos

Yapabileceğim herhangi bir şey, çünkü çok fazla veritabanını taşımak zorunda kalacağım.
Zak Shearman

2
Bağlı soru çalıştıran CHMOD sonra bir sistem sabitleme hakkındadır yinelemeli (ile -Ropsiyon) - cevapları orada (özellikle bir tane kabul edilir) Eğer ran komut aslında sadece olsaydı muhtemelen yarardan çok zarar yapmış olacakchmod -x /
steeldriver

Yanıtlar:


3

Komut chmod -x /yalnızca çalıştırılabilir bit'i kök dizinden kaldırır. Hala root olarak giriş yaptıysanız , değişikliği kolayca tersine çevirebilirsiniz chmod +x /.

Belli ki artık root olarak giriş yapmadınız , bu yüzden sistemden kendinizi kilitlediniz. Bu hala düzeltilebilir. Ben de aynısını yaptım, koştum chmod -x /, terminali kapattım ve sistemi bozdum, hatta yeniden başlayamıyorum.

Bu önyüklemeyi Live-USB'den çözdüm, sorun şu ki chmod, zarar görmüş kök dosya sisteminin doğru izinlerini geri yüklemek için kullanamayız çünkü bir adı yok. Ancak root dosya sisteminin 2 numaralı inode olarak saklandığını biliyoruz debugfs. Doğru izinleri geri almak için komutu kullanabiliriz .

İle lsblk | grep -v loopzarar görmüş dosya sisteminin aygıt adını belirleyebilir.

Sonra rootdebugfs -w /dev/sdXY olarak koşabiliriz , aşağıdaki örneğime bir bakalım:

# debugfs -w /dev/sdb2
debugfs 1.44.1 (24-Mar-2018)
debugfs:  modify_inode <2>
                          Mode    [040644] 040755   # here enter correct permissions and hit enter
                       User ID    [0]               # here and in the following prompts only hit enter
                      Group ID    [0] 
                          Size    [4096] 
                 Creation time    [1564191527] 
             Modification time    [1564191527] 
                   Access time    [1567339087] 
                 Deletion time    [0] 
                    Link count    [24] 
              Block count high    [0] 
                   Block count    [8] 
                    File flags    [0x80000] 
                    Generation    [0x0] 
                      File acl    [0] 
           High 32bits of size    [0] 
              Fragment address    [0] 
               Direct Block #0    [127754] 
               Direct Block #1    [4] 
               Direct Block #2    [0] 
               Direct Block #3    [0] 
               Direct Block #4    [1] 
               Direct Block #5    [9265] 
               Direct Block #6    [0] 
               Direct Block #7    [0] 
               Direct Block #8    [0] 
               Direct Block #9    [0] 
              Direct Block #10    [0] 
              Direct Block #11    [0] 
                Indirect Block    [0] 
         Double Indirect Block    [0] 
         Triple Indirect Block    [0] 
debugfs: quit                                       # here we quit         

Bu kök dosya sisteminin izinleri şimdi doğru ve eski hasarlı sisteme yeniden başlayabilirim.


Söylediklerinizi tam olarak anlamadım, daha 'canlı' bir yöntemle sizinle iletişim kurmam mümkün mü? Neyi anlamadığımı açıklığa kavuşturmak için, ilk komutu yaptığımda, bu zak.pink/19-09-13-12-33_2226.png komutunu alıyorum ama şimdi oradan ne kullanabileceğimden ve nasıl kullanabileceğimden emin değilim. Kullanabilirim.
Zak Shearman

Bunu için yapmak zorundasın sda2. debugfs -w /dev/sda2sizin için doğru komut olurdu. Live-USB'den başlatılırken onarımı yaptım, bu benim yükleyici ortamım anlamına gelir.
mook765

1
Evet, bu zaten doğru görünüyor, hiçbir şey değiştirmenize gerek yok, sadece istemi debugfs:görünene kadar aşağıdaki satırlarda da enter tuşuna basın , sonra quitenter tuşuna basın ve enter tuşuna basın. Sorunuz, sorunuzda tanımladığınızdan farklı görünüyor.
mook765

2
Sorunuzda chmod -x, şimdi söylüyorsunuz chmod + x, ikincisi bir sorun olmazdı çünkü izinleri /varsayılan olarak bu şekilde ayarlandı. Büyük olasılıkla probleminize yol açan başka değişiklikler yaptınız. Doğru ayrıntılarla yeni bir soru açmalısınız.
mook765

1
Bu tamamen OP'nin sorunu olsun ya da olmasın, çok akıllıca bir cevap. +1
Jos
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.