Wenn ich diesen Befehl ausführen:su nicht alles andere Benutzer ändern (cgroups)
su -l otheruser -c 'strace /usr/lib/systemd/systemd --user 2> /tmp/su.err'
Es schlägt fehl:
Fehlgeschlagen Wurzel cgroup Hierarchie zu erstellen: Permission
verweigertfehlgeschlagen Manager-Objekt zuweisen: Berechtigung verweigert
Ich sehe in der strace Ausgabe, die als Benutzer systemd Anlaß versagt hier:
mkdir("/sys/fs/cgroup/systemd/user/root/754/systemd-3893", 0755) = -1
EACCES (Permission denied)
Wo/sys/fs/cgroup/systemd/user/root/kommen aus?
Wenn ich den gleichen Befehl via ssh laufen auf localhost funktioniert es:
ssh [email protected] 'strace /usr/lib/systemd/systemd --user 2> /tmp/ssh.err'
Hier wird das richtige Verzeichnis verwendet wird:
mkdir("/sys/fs/cgroup/systemd/user/modwork_gew_dfj/825/systemd-4272", 0755) = 0
Warum es über ssh funktioniert, aber nicht über su ?
Version: su (GNU coreutils) 8,17
aktualisieren
Hier können Sie sehen, dass die cgroup nicht durch meine Version von su
geändert bekommt:
host:~ # su -l otheruser
[email protected]:~$ cat /proc/$PPID/cgroup
10:hugetlb:/
9:perf_event:/
8:blkio:/
7:net_cls:/
6:freezer:/
5:devices:/
4:memory:/
3:cpuacct,cpu:/
2:cpuset:/
1:name=systemd:/user/root/5913 <################ root
Via ssh
:
host:~ # ssh [email protected]
[email protected]:~$ cat /proc/$PPID/cgroup
10:hugetlb:/
9:perf_event:/
8:blkio:/
7:net_cls:/
6:freezer:/
5:devices:/
4:memory:/
3:cpuacct,cpu:/
2:cpuset:/
1:name=systemd:/user/otheruser/5919 <################ otheruser
Update2
Meine Version von su
ändert nicht die Cgroup (Siehe den Link in der Antwort des Benutzers "ax."). Gibt es eine Möglichkeit, die Cgroup (vorher oder nachher) zu ändern, indem Sie su
anrufen?
Update3
Diese Version hat dieses Problem nicht: su util-linux 2.25
Nachgefragt .... Ihr root-Account ein Passwort hat, nicht wahr? – Hackerman
Welche Systemd Version hast du? – vsminkov
Ist es ein Fehler oder ein Feature, dass 'su' die cgroup nicht ändert? Was sagen die Gnu Corutils Leute? – guettli