chilcote / outset

Automatically process packages, profiles, and scripts during boot, login, or on demand.
572 stars 58 forks source link

Login-privileged-once not executing Catalina #71

Closed lpglycerine closed 4 years ago

lpglycerine commented 4 years ago

Having an issue with the login-privileged-once folder on Catalina. The scripts in this folder only execute on the first boot of the first user created on the computer, but are not executing for any new user accounts after that. There is no indication in /var/log/outset.log that the login-privilege-once scripts even try to run for new users.

Additional Notes:

lpglycerine commented 4 years ago

After further investigation, there is only one com.github.outset.once.0.plist file being created and used for all users. After all the files in login-privileged-once execute on the initial boot-up, the filenames are stored in com.github.outset.once.0.plist. All subsequent users look at this same file and see that the scripts have already ran once so they do not execute. If this file is deleted then the scripts will execute for another user.

pixelrebel commented 4 years ago

It seems the current approach for finding the current uid results in 0 in Catalina.

@lpglycerine has a fix incomming.

lpglycerine commented 4 years ago

console_uid was being set to 0 for all users, whereas in outset 2.0.6 this value was defined differently and was the unique UID for the current console user.

So I changed console_uid to be defined via a different method; os.stat('/dev/console').st_uid Tested compatibility on 10.8.5, 10.10.5, 10.11.6, 10.13.6, 10.14.5 and 10.15.2

Now each user gets a unique plist which determines if the once scripts have ran for that user or not. https://github.com/chilcote/outset/pull/72

chilcote commented 4 years ago

Interesting and nice catch! Thank you for putting up a fix :)