Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Debian - Berechtigungen für apt-get Optionen einzeln verwaltbar?

Frage Entwicklung Batch & Shell

Mitglied: mabue88

mabue88 (Level 2) - Jetzt verbinden

10.09.2014 um 22:21 Uhr, 856 Aufrufe, 7 Kommentare

Hallo,

ist es möglich einem Benutzer unter Debian beispielsweise die Berechtigung zur Ausführung der Befehle

01.
apt-get update 
02.
apt-get upgrade 
03.
apt-get dist-upgrade
zu erteilen, ohne ihm auch sämtliche anderen Optionen, wie z.B.

01.
apt-get install ... 
02.
apt-get remove ...
zu erteilen?

Danke
mabue
Mitglied: Arano
10.09.2014 um 23:16 Uhr
Hallo Mabue

ähm... ähm...
Hast du es schon mit "sudoers" versucht !? (man sudoers / man visudo / backups sind wichtig)
...ich weiss es nämlich selber nicht genau ob das so geht. könnte sein das über sudoers nur das komplette Programm zur Verfügung steht.

Eine alternative könnte sein das du Wrapper-Scripts schreibst und dem entsprechendem User dann erlaubst diese als root auszuführen (via sudoers).
Die Scripte wiederum können von dem User nur gelesen und ausgeführt werden und tuen nichts weiter als den gewünschten apt-get-Modus aufzurufen.


Ist spät, ich gehöre ins Bett.
~Arano
Bitte warten ..
Mitglied: Lochkartenstanzer
11.09.2014, aktualisiert um 09:12 Uhr
Zitat von mabue88:

Hallo,

ist es möglich einem Benutzer unter Debian beispielsweise die Berechtigung zur Ausführung der Befehle

01.
> apt-get update 
02.
> apt-get upgrade 
03.
> apt-get dist-upgrade 
04.
> 
zu erteilen, ohne ihm auch sämtliche anderen Optionen, wie z.B.

01.
> apt-get install ... 
02.
> apt-get remove ... 
03.
> 
zu erteilen?


Moin,

Im Prinzip ja. Aber aufwendig.

Du kannst Dich z.B. mit SELinux, AppArmor und GRSecurity beschäftigen und damit Vesuchen Deine Wünsche zu erfüllen.

Oder Du schreibst ein wrapperskript, daß Dir überprüft, ob der User install und remove ausführen darf und wenn nicht, die Benutzung verweigert.Damit der User aber als sudoer Dein Skript nicht aushebelt, mußt Du einen erheblichen Aufwand treiben. Wenn er root sein darf, kannst Du ihn sowieso nicht davon abhalten.

Die einzig vernünftige Lösung ist imho, sich ein LART wie z.B. Cat9 zu besorgen und dem User (sehr) glaubhaft zu versichern, daß Du es auch benutzt, wenn er sich nicht an die Regeln hält.

lks
Bitte warten ..
Mitglied: mabue88
11.09.2014 um 09:31 Uhr
Danke für eure Tipps.

Um es etwas genauer zu beschreiben:

Auf einem Rechner läuft Apache. In einem gewissen Rahmen soll der Rechner innerhalb eines Login-Bereichs administrierbar sein.
Dazu wird per JavaScript ein PHP-Script aufgerufen. In diesem werden aktuell die entsprechenden Befehle aufgerufen. Es werden keine Parameter entgegengenommen. Damit das über den Webserver funktioniert habe ich in der sudoers-File dem Benutzer www-data die Berechtigung zum Ausführen von apt-get gegeben.

Damit funktioniert das ganze schon mal.

Ich weiss allerdings nicht, wie sicher das ist. Also wie einfach oder schwer sich da was tricksen lässt, damit plötzlich auch Programme installiert oder deinstalliert werden können.
Bitte warten ..
Mitglied: Lochkartenstanzer
11.09.2014 um 09:49 Uhr
Zitat von mabue88:

Dazu wird per JavaScript ein PHP-Script aufgerufen. In diesem werden aktuell die entsprechenden Befehle aufgerufen. Es werden
keine Parameter entgegengenommen.

Wie bekommt dann apt-get seine Parameter?

Damit das über den Webserver funktioniert habe ich in der sudoers-File dem Benutzer
www-data die Berechtigung zum Ausführen von apt-get gegeben.

Wieder die frage, wie kommst das apt-get an seine parameter?

Ich weiss allerdings nicht, wie sicher das ist. Also wie einfach oder schwer sich da was tricksen lässt, damit plötzlich
auch Programme installiert oder deinstalliert werden können.

Das hängt im wesentlichen davon ab, wei sicher Deien PHP-Installation udn Deien skripten sind. wenn www-data apt-get aufrufen darf udn irgendwo in Deinen PHP-Skripten ein Fehler ist, kann man ggf. üebr Umwege apt-get mit unewünschten Parametern aufrufen.

lks
Bitte warten ..
Mitglied: mabue88
11.09.2014, aktualisiert um 09:56 Uhr
In der PHP-Datei habe ich für jeden Parameter eine Funktion erstellt:

01.
function Update(){ 
02.
		exec("sudo apt-get update -y", $output, $status); 
03.
		return $status; 
04.
05.
 
06.
function Upgrade(){ 
07.
	exec("sudo apt-get upgrade -y", $output, $status); 
08.
	return $status; 
09.
10.
 
11.
function DistUpgrade(){ 
12.
	exec("sudo apt-get dist-upgrade -y", $output, $status); 
13.
	return $status; 
14.
15.
 
16.
// Vereinfachte Funktionsaufrufe, tatsächlich werden die Rückgabewerte der Funktionen geprüft 
17.
Update(); 
18.
Upgrade(); 
19.
DistUpgrade();
Das heisst ich kann lediglich die jeweilige Funktion aufrufen und nach deren Fertigstellung den Rückgabewert entgegennehmen.
Meiner Meinung nach müsste da schon jemand Zugriff auf den Speicher des Rechners haben um die Parameter mittels Editor abzuändern. Aber sobald jemand Zugriff auf den Speicher hat habe ich vermutlich andere Probleme ...
Bitte warten ..
Mitglied: Lochkartenstanzer
11.09.2014 um 09:58 Uhr
Moin,

Mit diesen Funktionen kann da eigentlich nciht viel passieren.

Was Du aber beachten mußt, daß deien PHP-Skripten an anderen Stellen, wo sie Parameter annehmen und auswerten Fehler haben können und daher über diesen Umweg apt-get aufgerufen werden könnte!

lks
Bitte warten ..
Mitglied: mabue88
11.09.2014 um 17:50 Uhr
Ja, dass man beim Umgang mit Parametern aufpassen muss weiss ich.
Deswegen versuche ich möglichst auf Parameter zu verzichten und falls notwendig diese so gut wie möglich zu plausibilisieren, bevor sie den Weg in die Shell oder sonst wohin finden.

Danke für eure Hilfe!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Ubuntu
gelöst Problem mit apt-get autoremove (4)

Frage von Henere zum Thema Ubuntu ...

Windows Server
Skript per GPO ausführen - Berechtigungen? (9)

Frage von honeybee zum Thema Windows Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...