Which users on machine linux

UNIX / Linux List Current Logged In Users

H ow do I print the user names of users currently logged in to the current UNIX / Linux host / server from a command prompt?

You need to use any one of the following command line tools to list currently logged in users on Linux or Unix-like systems.

Tutorial details
Difficulty level Easy
Root privileges Yes
Requirements w or who command on Linux and Unix
Est. reading time 5m

The following two file keep login records on Linux and Unix-like systems:

  • /var/run/utmp – Keeps and allows us to discover information about who is currently using the system. Please note that there may be more L inux and Unix users currently using the system, because not all programs use utmp logging . In other words, poorly written app, hidden programs, malware, and other bad stuff will not be useful to list logged in users.
  • /var/log/wtmp – Keeps records all logins and logouts.

We simply cannot read these files using cat command/grep command/egrep command as file is in binary database format. Hence, we use the following commands to find currently logged in users in Linux and Unix-like systems.

Linux Command To List Current Logged In Users

  1. w command – Shows information about the users currently on the machine, and their processes.
  2. who command – Display information about users who are currently logged in.
  3. users command – See the login names of the users currently on the system, in sorted order, space separated, on a single line. It reads all information from /var/run/utmp file.

How to find currently logged in users in Linux

Open a terminal (or login into remote server using ssh command) and type the following commands.

Using w command to list current logged in users under Unix or Linux

Open the terminal application and then type the w command:
$ w

Fig.01: w command in action.

Understanding w command outputs

From Fig.01 we see the following for each user:

  • USER – Linux or Unix login name.
  • TTY – The tty name.
  • FROM The remote host or IP address.
  • @Login – Login time.
  • IDEL – Idle time.
  • JCPU – The JCPU time is the time used by all processes attached to the tty. However, it does not include past background jobs, but does include currently running background jobs.
  • PCPU – The PCPU time is the time used by the current process, named in the “what” field.
  • WHAT – The command line of that users current process.

To see info about a user named tom, enter:
$ w tom
Tell w command not print header:
$ w -h
$ w —no-header
We can also ignore current process username by passing the -u or —no-current to the w command:
$ w -u
$ w —no-current
Want to see remote hostname field? Try:
$ w -f
Show IP address instead of hostname for from field:
$ w -i
We can also old style output. In other words old outputs prints blank space for idle times less than one minute:
$ w -o

Display all logged in users using who command

The who command works on all Unix like operating systems such as macOS, *BSD, Linux and so on. The syntax is pretty simple:
# who
Here is what we see:

The who command displays the following information:

  • root – The username
  • pts/0 – Type of the terminal device. In this example, we see pseudoterminal pts/0 used by root user.
  • 2013-03-12 15:10 – User login date and time stamp.
  • (10.1.3.177) – The remote IP address from which the user logged into this server.

We can pass the -a option to who command as follows to see time of last system boot, display dead processes, system login processes, active processes spawned by init/systemd, print current runlevel, print last system clock change, show user’s message status, and list users logged in to Linux or Unix box:
# who -a
Here is output from older Linux system (pre Systemd):

Sample outputs from Systemd based Linux sysetem:

Getting help with the whois command

You can pass the following options to the who command (taken from the who command man page):

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

users command

Open a terminal or login over the ssh session and enter the following users command:
$ users
Output who is currently logged:

Vieing logged in users with last command

Want to see a listing of last logged in users? Use the last command to lookup binary database called /var/log/wtmp and displays a list of all users logged in (and out) since that file was created. For instance see history for user named ‘vivek’:
$ last vivek

Источник

4 Ways to Identify Who is Logged-In on Your Linux System

This article is written by Hari Haran.

As a system administrator, you may want to know who is on the system at any give point in time. You may also want to know what they are doing. In this article let us review 4 different methods to identify who is on your Linux system.

1. Get the running processes of logged-in user using w

w command is used to show logged-in user names and what they are doing. The information will be read from /var/run/utmp file. The output of the w command contains the following columns:

  • Name of the user
  • User’s machine number or tty number
  • Remote machine address
  • User’s Login time
  • Idle time (not usable time)
  • Time used by all processes attached to the tty (JCPU time)
  • Time used by the current process (PCPU time)
  • Command currently getting executed by the users

Following options can be used for the w command:

  • -h Ignore the header information
  • -u Display the load average (uptime output)
  • -s Remove the JCPU, PCPU, and login time.

2. Get the user name and process of logged in user using who and users command

who command is used to get the list of the usernames who are currently logged in. Output of the who command contains the following columns: user name, tty number, date and time, machine address.

To get a list of all usernames that are currently logged in, use the following:

Users Command

users command is used to print the user name who are all currently logged in the current host. It is one of the command don’t have any option other than help and version. If the user using, ‘n’ number of terminals, the user name will shown in ‘n’ number of time in the output.

3. Get the username you are currently logged in using whoami

whoami command is used to print the loggedin user name.

whoami command gives the same output as id -un as shown below:

who am i command will display the logged-in user name and current tty details. The output of this command contains the following columns: logged-in user name, tty name, current time with date and ip-address from where this users initiated the connection.

Also, if you do su to some other user, this command will give the information about the logged in user name details.

4. Get the user login history at any time

last command will give login history for a specific username. If we don’t give any argument for this command, it will list login history for all users. By default this information will read from /var/log/wtmp file. The output of this command contains the following columns:

  • User name
  • Tty device number
  • Login date and time
  • Logout time
  • Total working time

This article is written by Hari Haran. He is working in bk Systems (p) Ltd, and interested in contributing to the open source. The Geek Stuff welcomes your tips and guest articles.

Источник

How to view and count users on a Linux system

The who command shows you every login session open on the machine:

You can also use the w command to get a more detailed view of what each login session is doing:

You can count the total number of open sessions by counting the lines in the output of who or w with the -h option. (The -h option omits header lines, which we don’t want to count.) To do this, pipe the output using the vertical bar («|«) to create a command pipeline. The output of one program in the pipeline is passed as input to the next. Here, we count the lines of both who and w -h by piping them to wc -l, effectively generating a count of active sessions.

Counting unique users

The above method counts login sessions, but if a user has more than one login session open they are counted more than once. To count unique users, we have to get more creative. We can use the cut command to strip all information except for the user name:

The above command says, «take the output of who, and display only the first field of information, which is delimited by a space.» It gives us a list of only the usernames, but we still need to filter out repeated names.

To do this, we can add the sort -u command. This sorts the names alphabetically and filters out any lines that are not unique:

And finally, to count these unique users, we add wc -l at the end of our command pipeline:

Using ps to count any user running a process

Another useful technique is to use the ps command to create a list every user on the system that owns a currently-running process. To do this, we can use ps with the options -e, -a, -h, and -o user. They can be combined as follows:

This command says, «show information for every process owned by any user, do not show headers, and print only the name of the user

Notice that in addition to the users previously listed by who, we also see root listed here. The who command shows only users logged in to a terminal session, but ps lists any users that own a running process, even if they don’t have a terminal open. The ps command includes root, and it may include other system-specific users.

As before, we can sort our output and only list unique names:

Источник

Linux Find Out My Machine Name/Hostname

The procedure to find the computer name on Linux:

  1. Open a command-line terminal app (select Applications > Accessories > Terminal), and then type:
  2. hostname
    OR
    hostnamectl
    OR
    cat /proc/sys/kernel/hostname
  3. Press [Enter] key

Linux find hostname using hostnamectl

Type the following command if you are using systemd based Linux distro:
$ hostnamectl

It is possible to filter output using the grep command:
$ hostnamectl | grep ‘hostname’
OR simply use the cat command as follows too:
$ cat /proc/sys/kernel/hostname

Linux find computer name using hostname command

At the terminal type hostname command:
$ hostname
Sample outputs
vivek-laptop.nixcraft.in
Where,

  • vivek-laptop : You computer name.
  • nixcraft.in : Your dNS domain name.
  • vivek-laptop.nixcraft.in : Your computer name with Fully Qualified Domain Name (FQDN).

To see the domain part of the FQDN (Fully Qualified Domain Name), enter:
$ dnsdomainname
Sample outputs:

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

How Do I Change My Hostname?

The hostname commands set the host name using the following syntax. Please note that only the super-user / root can change the names. To switch to the root user by typing su – and entering the root password, when prompted.
# hostname newhostname.nixcraft.in
# hostname laptop.nixcraft.net.in
# hostnamectl set-hostname laptop.nixcraft.in
You need to edit /etc/hostname or /etc/sysconfig/network file to set hostname permanently. See our previous FAQ about changing hostname using configuration files.

Conclusion

The hostnamectl command may be used to query and change the system hostname and related settings on modern Linux distros such as Debian, Ubuntu, CentOS/RHEL, Fedora, Arch Linux and more.

Getting help

I strongly suggest that your read the man pages by typing the man command:
$ man hostname
$ man hostnamectl
$ hostnamectl —help

Источник

Читайте также:  После переустановки windows ноутбук не видит флешку
Оцените статью