
Ich versuche derzeit, meine Benutzer etwas einzuschränken. Ich habe einige Benutzer erstellt:
www.foo
www.bar
und eine Gruppe:
apacheadmins
Sowohl www.foo
als auch www.bar
sind Mitglieder der apacheadmins
Gruppe. Sie haben derzeit keinen Sudo-Zugriff, aber ich möchte ihnen Sudo-Zugriff für Folgendes gewähren:
service httpd configcheck
service httpd restart
service httpd graceful
Ich habe mit visudo ganz unten in der sudoers-Datei die folgenden Zeilen hinzugefügt:
### Setting permissions for www.* users
Cmnd_Alias APACHECMDS = /sbin/service httpd configcheck, /sbin/service httpd graceful, /sbin/service httpd restart
%apacheusers ALL = NOPASSWD: APACHECMDS
Ich möchte, dass diese Benutzer diese Befehle ohne Kennwortabfrage verwenden können, sie haben jedoch nur Schlüsselzugriff und ihnen sind derzeit keine Kennwörter zugewiesen.
Immer wenn ich meine Änderungen speichere und eine neue Bash-Sitzung als www.foo
oder öffne www.bar
, werde ich immer noch mit einer Kennwortabfrage begrüßt.
Ich habe ein bisschen damit herumgespielt und kann es zum Laufen bringen, wenn ich den vollständigen Pfad angebe, also:
sudo service httpd graceful
funktioniert nicht.
sudo /sbin/service httpd graceful
funktioniert.
Kann ich dies zum Laufen bringen, ohne den vollständigen Pfad anzugeben?
BEARBEITEN: Ich benutze:
[foo@bar~]$ uname -a
Linux bar 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
[foo@bar~]$ cat /etc/redhat-release
CentOS release 5.4 (Final)
Antwort1
Das Problem besteht darin, dass die Benutzervariable $PATH
nicht enthält /sbin
und sudo
der Befehl daher nicht wirklich gefunden wird.
$ sudo service acpid status
[sudo] password for mgorven:
$ sudo /sbin/service acpid status
acpid (pid 3185) is running...
$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
$ export PATH=$PATH:/sbin:/usr/sbin
$ sudo service acpid status
acpid (pid 3185) is running...
Fügen Sie /sbin
es den Benutzern hinzu, $PATH
um das Problem zu lösen.