2012-04-07 10 views
2

Ich versuche, das gleiche zu erreichen wie sudo chmod 755 myfile würde.Wie kann ich Dateiberechtigungen für alle Benutzer von Haskell setzen

Ich fand getPermissions und setPermissions in System.Directory, aber das erlaubt mir nur, Berechtigungen für den aktuellen Benutzer (in meinem Fall root) zu setzen.

Gibt es äquivalente Funktionen, die für alle Benutzer gelten oder ist die einzige praktikable Option, einen rawSystem Aufruf zu verwenden, den ich für ein bisschen unrein halte?

+0

'rawSystem' wäre sicherlich unrein. Ein Teil des Problems hier ist, dass Sie ein Programm, das Sie von einer Shell ausführen ('chmod'), mit einer primitiven Funktion verwechseln, die Sie mit einem zugrunde liegenden Systemaufruf zusammenhängen (oder vielleicht mit einer libc-Operation, die zu mehreren Systemaufrufen führt). Wenn Sie eine primitive Systemoperation ausführen möchten, sehen Sie sich einen FFI-Aufruf an. In diesem Fall (wenn es nicht bereits von jemand anderem implementiert wurde, wie ehird es hervorhebt), würden Sie FFI-Bindungen zu [chmod oder fchmod] (http://linux.die.net/man/2/chmod) wollen. –

Antwort

7

System.Posix.Files im Standard-Unix-Paket hat POSIX-Dateien Erlaubnis Unterstützung. Der Grund, System.Directory bietet keine solche Funktionalität ist für die Portabilität.

Verwandte Themen