/ / W jaki sposób uprawnienia są propagowane w systemie Mac OS X? - macos, osx-snow-leopard, suid

W jaki sposób uprawnienia są propagowane w systemie Mac OS X? - macos, osx-snow-leopard, suid

Więc jeśli zrobię program suid root na moim macu, iże program uruchamia exec na / bin / sh, powłoka nie jest rootem, natomiast jeśli robię to samo na Linuksie, powłoka jest rootem. Czy Mac nie propaguje uprawnień w taki sam sposób, jak robi to Linux? A może po prostu coś innego dzieje się z bitami suid? Rozumiem, że programy z suid root działają z uprawnieniami roota. A skoro powłoka root wywołująca / bin / sh stworzy kolejną powłokę główną, to czy nie powinien to być root program, który wywołuje exec on / bin / sh, tworzy powłokę główną?

Odpowiedzi:

0 dla odpowiedzi № 1

Wszystkie procesy mają wiele identyfikatorów UID (rzeczywistych,skuteczny i zapisany UID, co najmniej). Wykonywanie binarnego ustawienia tylko wpływa na efektywny i zapisany UID, a nie na "prawdziwy" UID - w rezultacie binarny setuid "będzie wiedział", z jakiego UID został wykonany i może powrócić do tego UID. W tym przypadku implementacja basha /bin/sh automatycznie powraca do swojego prawdziwego UID, kiedy jest wykonywany.