How do I get the name of the active user via the command line in OS X?
相关问题
- Xcode debugger displays incorrect values for varia
- Is there a way to report errors in Apple documenta
- Advice for supporting both Mac and Windows Desktop
- softlinks atime and mtime modification
- Avoid cmake to add the flags -search_paths_first a
相关文章
- 现在使用swift开发ios应用好还是swift?
- Visual Studio Code, MAC OS X, OmniSharp server is
- xcode 4 garbage collection removed?
- IntelliJ IDEA can't open projects or add SDK o
- Automator: How do I use the Choose from List actio
- ImportError: No module named twisted.persisted.sty
- How can I vertically align my status bar item text
- Compile and build with single command line Java (L
The question has not been completely answered, IMHO. I will try to explain: I have a crontab entry that schedules a bash shell command procedure, that in turn does some cleanup of my files; and, when done, sends a notification to me using the OS X notification center (with the command
osascript -e 'display notification ...
). If someone (e.g. my wife or my daughter) switches the current user of the computer to her, leaving me in the background, the cron script fails when sending the notification.So, Who is the current user means Has some other people become the effective user leaving me in the background? Do
stat -f "%Su" /dev/console
returns the current active user name?The answer is yes; so, now my crontab shell script has been modified in the following way:
You can also use the
logname
command from the BSD General Commands Manual under Linux or MacOS to see the username of the user currently logged in, even if the user is performing asudo
operation. This is useful, for instance, when modifying a user's crontab while installing a system-wide package with sudo:crontab -u $(logname)
Per
man logname
:whoami
EDIT
The whoami utility has been obsoleted by the id(1) utility, and is equivalent to
id -un
. The commandid -p
is suggested for normal interactive use.Via here
Checking the owner of /dev/console seems to work well.
stat -f "%Su" /dev/console
as 'whoami' has been obsoleted, it's probably more forward compatible to use:
Define 'active user'.
If the question is 'who is the logged in user', then 'who am i' or 'whoami' is fine (though they give different answers - 'whoami' reports just a user name; 'who am i' reports on terminal and login time too).
If the question is 'which user ID is the effective ID for the shell', then it is often better to use 'id'. This reports on the real and effective user ID and group ID, and on the supplementary group IDs too. This might matter if the shell is running SUID or SGID.