ITworld.com
  Search  
 Home  Newsletter Archive  LINUX TIPS AND TRICKS
Passwd and Shadow Files
Sign up for LINUX TIPS AND TRICKS
More Newsletters
 Printer Friendly Format
 Mail to a friend

LINUX TIPS AND TRICKS --- 08/10/2001



Danny Kalev

A user account consists of a valid username and password, a home directory, and a default shell. When the user attempts to log in, Linux examines the passwd file to ensure that these requirements are met. The passwd file, located in the /etc directory, contains user account records each consisting of 7 fields separated by colons. Here's an example of a passwd file:
Advertisement
 On this topic
 Newsletters
 Linux Tips and Tricks. Sign up Now!
 More news on this subject
Red Hat, HP ship Linux Itanium 2 workstations

UnitedLinux plans under-$1,000 release, US entity

Linux takes confidence says RS/6000 supporter

Gartner: Linux will be the savior of Unix

HP to work with US government on Linux clusters
 White Papers
 Unix
Search the Newsletter Archives
View the LINUX TIPS AND TRICKS Archive

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin: james:x:600:600:201-234-5678:/home/james:/bin/bash

Let's parse the last entry and learn what each field means.

  • The user's username.
  • The second field traditionally stores the user's password in an encrypted form. However, newer Linux distributions use a shadowing system (I will discuss shadowing shortly). Such systems merely store a placeholder in this field and keep the passwords in a different file.
  • UID. This number is attached to the user's processes and thus enables the sysadmin to associate the currently active processes to their users. Although you can assign arbitrary UIDs to users, restricting these numbers to a range (e.g., 600-699) is advisable. Remember that UID 0 is reserved for root.
  • GUID. A user may belong to several groups but has only one native group. This field stores the native group value.
  • The fifth field is called the General Electric Comprehensive Operating System field (GECOS). Traditionally, it stores the user's real name. However, you can store any other value in this field such as the user's telephone number. This field is mostly used for reporting purposes such as Finger queries. In this example, the field contains the user's telephone number.
  • User's home directory. In this example, the users home directory is /home/james.
  • User's default shell. The default shell is the one that Linux invokes when the user has logged into the system. Although bash is the most common shell, other options are available -- namely ash, csh, ksh, tcsh, and zsh.

Shadowing
Shadowing systems store users' password and associated rules in a special file called /etc/shadow. When a shadowing system is in use, the passwd file remains readable but it doesn't contain passwords anymore. Instead, the password field is filled with a placeholder. A shadow file looks like this:

root:HDJIKW1.PA:11015:0::7:7::
james:7aNicVa5rg9B:11015:0:-1:7:-1:-1:

A shadow file contains 9 fields separated by colons (the values in parentheses are taken from the last entry of the above shadow file):

  • Username (james)
  • Password in an encrypted form (7aNicVa5rg9B)
  • Number of days since 1/1/1970 that the password was last modified (11015)
  • Number of days left before the user is allowed to change his password (0)
  • Number of days left before the user is forced to change his password (-1)
  • Number of days in advance that the user is prompted to change his password (7)
  • Number of days left before disabling the account unless the user changes his password (-1)
  • Number of days since 1/1/1970 that the account has been disabled (-1)
  • Reserved

 

Danny Kalev is a system analyst and software engineer with more than 10 years of experience, specializing in C++ and object-oriented analysis and design on various platforms including VMS, DOS, Windows, Unix, and Linux. His technical interests involve code optimization, networking, and distributed computing. He is also a member of the ANSI C++ standardization committee and the author of ANSI/ISO C++ Professional Programmer's Handbook (Que, 1999). Danny can be reached at Danny.Kalev@itworld.com.

Webcasts
lucent_mobility_skin.gif
Lucent - Data on the Move for Businesses on the Move

IBM - IT's Role in Protein Structure Analysis

Ramco Systems - Can Architecture Change the Rules of Enterprise Solutions?

Sophos - Do You have a False Sense of Anti-virus Security?


White Papers
VERITAS Software - Exchange Availability and Management from the Experts!

Read this and other White Papers from ITworld.com.

 


Sponsored links
Bring harmony to your mix of UNIX-Linux-Windows computing environments
Locate Hidden Software on business PCs with this free tool
KODAK i1400 Series Scanners stand up to the challenge
Top 5 Reasons to Combine App Performance and Security
www.itworld.com    open.itworld.com     security.itworld.com     smallbusiness.itworld.com
storage.itworld.com     utilitycomputing.itworld.com     wireless.itworld.com

 
Contact Us   About Us   Privacy Policy    Terms of Service   Reprints  

CIO   Computerworld   CSO   GamePro   Games.net   Industry Standard   Infoworld   ITworld  
JavaWorld   LinuxWorld  MacUser   Macworld   Network World   PC World   Playlist  

DEMO   IDG Connect   IDG Knowledge Hub   IDG TechNetwork   IDG World Expo  

Copyright © Computerworld, Inc. All rights reserved

Reproduction in whole or in part in any form or medium without express written permission of Computerworld Inc. is prohibited. Computerworld and Computerworld.com and the respective logos are trademarks of International Data Group Inc.