Belirli bir grubun kullanıcılarının sudo olmadan bir komut çalıştırmasına izin ver


11

Şifremi girmek zorunda kalmadan sudo olarak bir komut çalıştırabilmek için / etc / sudoers'ı nasıl düzenleyeceğimi biliyorum, ancak bir programın bir grubun tüm kullanıcıları tarafından tamamen sudo olmadan çalıştırılmasına izin vermenin bir yolu var. (Çalıştırmak istediğim programlar "mount" ve "umount").


İşletim sisteminiz nedir? Bir NTFS bölümü, EXT bölümü veya optik sürücü takmaya mı çalışıyorsunuz?
nate

Yanıtlar:


13

Çalışmasına izin verilen mountve umountşifresiz bir grup kullanıcı eklemek istediğimi varsayalım . Bu yüzden önce "anyname" adlı bir grup eklemek istiyorum

sudo groupadd anyname

Sonra /etc/groupkullanıcıları düzenlememiz ve eklememiz gerekiyor

anyname:x:407:

bulunacağından, virgülle ayrılmış kullanıcıları eklemek istediğiniz kullanıcıları ekleyin.

anyname:x:407:user1,user2,...

Şimdi sudo'yu "anyname" grubunun üyelerine mountve umountkomutlarını gerçekten çağıracak şekilde yapılandırmamız gerekiyor .

/ Etc / sudoers dizinine şu satırları eklemeniz yeterlidir

%anyname ALL=NOPASSWD: /sbin/mount, /sbin/umount

Şimdi sudo mountşifre sormayacaksınız ama her zaman sudo yazarak popoda bir ağrı olduğundan, aşağıdakileri dong ile önleyebiliriz:

Aşağıdaki komut dosyasını "/ usr / bin / mount" (ve umount için benzer komut dosyası) oluşturabilirim

#! /bin/sh
sudo /sbin/mount $*

Bunu biraz daha güvenli hale getirmek için, bu komut dosyalarının sahipliğini "anyname" grubuna değiştirmek isteyebiliriz.

chgrp anyname /usr/bin/mount /usr/bin/umount

ve daha sonra yalnızca "anyname" grubu için çalıştırılabilir hale getirin

chmod g+x /usr/bin/mount  /usr/bin/umount

EDIT : Kullandığınız işletim sistemine bağlı olarak lütfen mount ve umount komutlarının nerede olduğunu kontrol edin. /Sbin yerine / bin / içinde olabilir, bu nedenle gerekli değişiklikleri yapmanız gerekebilir

ÖNEMLİ : BTW, tüm bin klasörlerinin birbirine bağlandığı Arch tabanlı sistemlerde komut dosyasını çalıştırmaz.


1
Teşekkürler. Aslında şöyle bir işlev bağlama içeren küresel bir .bashrc kullanarak uyguladık: mount {sudo mount $ *}
w4etwetewtwet 26:13
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.