Oturum açan bir kullanıcının sadece ağ ayarlarını IP adresi ve DNS sunucu ayarlarını ayarlayabileceği bir ekran ile karşılaşması ve komut satırına ulaşamamasını istiyorum.
Bunu nasıl sağlarım?
Oturum açan bir kullanıcının sadece ağ ayarlarını IP adresi ve DNS sunucu ayarlarını ayarlayabileceği bir ekran ile karşılaşması ve komut satırına ulaşamamasını istiyorum.
Bunu nasıl sağlarım?
İzinleritek tekdeğiştirceksin bin klasöründe bütün komutlar var onları tek tek değiştir mesela orda firefox varr onda o kullanıcı erişebilsin sonra gnome-terminal varsa o terminali kullanmayı sağliyor onun izinlerini o kullanıcı erişemez diyebilirsin.
Bunlar benim istediğimi sağlamaz. Ben oturum yöntemini değiştirmeyi kastediyorum. Yani bash konsol yerine benim setup ekranım gelsin istiyorum.
Selamün Aleyküm
Kabuk, öntanımlı olarak /bin/bash
gelir.
/etc/passwd
dosyası içerisinden ilgili kullanıcının kabuğunu değiştirebilirsiniz.
Tanımladığınız yazılım, kullanıcının kabuğu olduğu için dışına çıkamaz.
Eğer sunucuda NetworkManager kullanıyorsanız(kullananlara şahit oldum), sadece ağ ayarlarını yapılandırabilmek için /usr/bin/nmtui
yazılımını kabuk olarak tanımlayabilirsiniz.
Selametle…
İstediğim işlemleri bir bash betiği yazarak ve bu betiği de ilgili kullanıcının .bashrc dosyasının sonuna tanımlayarak elde edebildim.
whiptail kullanarak görsel bir menü oluşturdum ve sadece gerekli uygulamalara yetki tanımı yaparak en az yetki ile işlemleri yapabildim.
Aşağıda betiğin giriş kısmını paylaşıyorum. Diğer kısımlar özel bilgi içerdiği için buraya ekleyemiyorum. Aşağıdaki giriş böyle bir yapıya ihtiyaç duyanları doğru yönlendirecektir.
# Bu betiğin çalışması için whiptail paketleri sistemde yüklü olmalıdır.
# Mor yerine mavi arka plan için aşağıdaki dosya kontrol edilip, devamındaki komut çalıştırılır.
# ls -l /etc/alternatives/newt-palette
# sudo ln -sf /etc/newt/palette.original /etc/alternatives/newt-palette
# İlgili kullanıcının /home/<kullanıcı>/.bashrc dosyasının en altına
# exec /home/oadmin/network-menu.sh
# <network-menu.sh> bu dosyanın adı olacak şekilde eklenir.
# visudo ile aşağıdaki komutlara ilgili kullanıcı için yetki tanımı yapılmalıdır.
# Kullanılacak netplan dosyasına ilgili kullanıcı için yetki vermek gerekiyor. Aksi durumda root parolası gerekiyor ki bu istediğimiz bir şey değil.
# chown <kullanıcı:kullanıcı> /etc/netplan/<netplan_konfig_dosyasi>.yaml
# <kullanıcı> ALL=NOPASSWD:/home/<kullanıcı>/network-menu.sh, /usr/bin/echo, /bin/cp, /sbin/ip, /usr/bin/whiptail, /usr/bin/ls, /usr/bin/ip, /usr/sbin/ip, /usr/sbin/ifconfig, /usr/bin/resolvectl, /usr/sbin/netplan, /usr/lib/netplan, /etc/netplan, /usr/share/netplan, /usr/bin/lsblk, /usr/bin/xargs, /usr/bin/truncate, /usr/bin/grep, /usr/bin/sed, /usr/bin/awk, /usr/bin/curl
Bu konu son yanıttan 10 gün sonra otomatik olarak kapatıldı. Yeni yanıt girilmesine izin verilmiyor.