Nasıl / sbin / shutdown, / sbin / reboot vb. 16.04'te tekrar sudo gerektirir?


18

Sebebi ne olursa olsun, biz kök (veya kullanıyor artık gerek yapmak sudo) çalıştırmak için /sbin/shutdown, /sbin/rebootvb

Bunun nedeni, bu yürütülebilir dosyaların artık /bin/systemctlher şeyi normal kullanıcı olarak ele alan sembolik bağlar olduklarıdır .

Ancak, yeniden kök kimlik doğrulaması yapmak istiyor shutdownve rebootbuna gereksinim duyarsam ne olur ? Bunu nasıl başarabilirim?


3
Sanırım polkit kuralları. Askubuntu.com/a/570969/158442'yi ihtiyaca göre değiştirin ( pkaction | grep login1diğer ilgi kuralları için kullanın )
muru

3
(yönetici ayrıcalıkları gerektiren kurallara bir örnek: askubuntu.com/a/744094/158442 )
muru

1
Bu yalnızca oturum açmış tek kişi sizseniz değil. Sistemde oturum açmış başka biri varsa, root şifresini girmeniz istenecektir.
ognjen

Bu beklediğiniz yanıt olmayabilir, ancak benzer bir davranış '/ etc / sudoers' öğenizi düzenleyen başka bir yönetici kullanıcıdan kaynaklanabilir. Sorununuza neden olan şey buysa, yazarak sorunu değiştirebilir sudo visudove bu yürütülebilir dosyalara giden yolun bir satırı olup olmadığını kontrol edebilirsiniz.
Damien

Yanıtlar:


5

Systemd shutdown, rebootve diğer komutları gerçekten işler ve atanan varsayılan ayrıcalıklara izin verilir. Bunu değiştirmek için bir Polkit kuralı oluşturmanız gerekir. Aşağıdakileri içeren bir .pkladosya oluşturun /etc/polkit-1/localauthority/50-local.d(diyelim confirm-shutdown.pkla):

[Confirm shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.*
ResultActive=auth_admin_keep

Çeşitli kapatma, yeniden başlatma, vb komutlarıdır, polkit açısından eylemleri org.freedesktop.login1, örneğin, org.freedesktop.login1.power-off, org.freedesktop.login1.rebootburada belirli sorun olduğu varsayılan yapılandırma vardır, vb /usr/share/polkit-1/actions/org.freedesktop.login1.policy:

<action id="org.freedesktop.login1.power-off">
        <description>Power off the system</description>
        ...
        <defaults>
                <allow_any>auth_admin_keep</allow_any>
                <allow_inactive>auth_admin_keep</allow_inactive>
                <allow_active>yes</allow_active>
        </defaults>

Etkin kullanıcının kapanmasına, yeniden başlatılmasına vb. Olanak tanıdığını unutmayın.


0

chmodKomutu kullanabilirsiniz .

  • Yalnızca köke erişim vermek istiyorsanız, şunları yazabilirsiniz:

    chmod 700 directory/to/the/file
    
  • Kök ve sudo grubuna izin vermek istiyorsanız, şunları yazabilirsiniz:

    chmod 770 directory/to/the/file
    
  • Dosya grubunu sudo'dan diğerine (kullanıcı veya yöneticiler gibi) değiştirmek istiyorsanız, şunu yazmanız gerekir:

    chown owner:group directory/to/the/file
    
  • Geri dönmek isterseniz, çalıştırın:

    chown root:sudo filedirectory 
    

Not : sudobu komutu kullanmanız veya kök hesapta oturum açmış olmanız gerekebilir


Bağlantının izinlerini değiştirmeye çalışmanın, hedefin izinlerini değiştireceğini unutmayın (bu durumda /bin/systemctl), chmod / sbin / shutdown komutunun çalıştırılması /bin/systemctl, izinlerin bin/systemctl$ ll /bin/systemctl komutu tarafından onaylandığı şekilde değiştirileceğini işaret eden tüm bağlantıları etkileyecektir. -rwx ------ 1 kök kökü 659848 Ocak 18 16:04 / bin / systemctl *
Elder Geek

Geri değiştirmeniz gerekirse, varsayılan izinler-rwxr-xr-x 1 root root 659848 Jan 18 16:04 /bin/systemctl
Elder Geek


-1

Kullanıcının kök izinleriyle çalışıp çalışmadığını kontrol eden bir komut dosyası oluşturabilirsiniz.
Sonra systemctl komutunu çalıştırır veya hata döndürür.

#! / Bin / bash
eğer ["$ (whoami)"! = "kök"]; sonra
    echo "Üzgünüm, sen kök değilsin."
    çıkış 1
Başka
    (systemctl kapatma komutu)
fi

Kaynak


4
Kök olmayan bir kullanıcının bu komut dosyasını atlamasını ne engelleyebilirim?
Robie Basak

-1

Terminaldeki izinlerini değiştirmeyi deneyin. Bunu yalnızca tekerlek veya yönetici gibi belirli bir grup tarafından yürütülebilir. Ne yazık ki (veya belki de neyse ki), bir dosya sadece bir grup sahipliğine sahip olabilir, bu yüzden chown tek başına çalışmaz. "Sudo chown root: wheel / sbin / shutdown" ve ardından "sudo chmod g + x / sbin / shutdown" komutunu deneyin. Bu, dosyayı yalnızca kök ve yöneticiler (titreme) tarafından yürütülebilir hale getirir ve sudoer'ların şifrelerini girmeleri gerekir.


2
"Tekerlek" grubu Arch Linux ve belki de diğer dağıtımlar bir şey, ama kesinlikle Ubuntu btw üzerinde değil.
Byte Commander

2
Bu etkili değil. Bir kullanıcı sadece bir systemctl ikili dosyasını başka bir yerden indirebilir ve bunun yerine çalıştırabilir.
Robie Basak

@Robie, bunu herhangi bir çözümle yapabilirsin. Güç düğmesini basılı tutabilirsiniz. Benim çözümüm istediği şey için işe yarıyor.
chevydog
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.