Why would /etc/passwd be used every time someone executes `ls -l` command?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







27















Read from APUE, just feel curious:




The password file is used every time a user logs in to a
UNIX system and every time someone executes an ls -l command.











share|improve this question




















  • 3





    FYI I try strace ls -l later on, I see a openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4 statement.

    – Rick
    Mar 8 at 6:47








  • 6





    Of course, reality is more complex nowadays. It's not /etc/passwd on the BSDs. An active nscd will change things; as will the NSS. So note that this question is based upon a 7th Edition worldview.

    – JdeBP
    Mar 8 at 7:55






  • 4





    @JdeBP Ancient Programming in the Unix Environment, then?

    – Andrew Henle
    Mar 8 at 13:22











  • @JdeBP It isn't? I wa surprised when you said that because I'd think that a lot of programs (scripts and binaries) would break which rely (perhaps wrongly, but still) on the presence of /etc/passwd.

    – Peter A. Schneider
    Mar 9 at 12:02











  • It isn't, as reading that manual page properly, including its FILES section, will reveal. (-:

    – JdeBP
    Mar 11 at 12:39


















27















Read from APUE, just feel curious:




The password file is used every time a user logs in to a
UNIX system and every time someone executes an ls -l command.











share|improve this question




















  • 3





    FYI I try strace ls -l later on, I see a openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4 statement.

    – Rick
    Mar 8 at 6:47








  • 6





    Of course, reality is more complex nowadays. It's not /etc/passwd on the BSDs. An active nscd will change things; as will the NSS. So note that this question is based upon a 7th Edition worldview.

    – JdeBP
    Mar 8 at 7:55






  • 4





    @JdeBP Ancient Programming in the Unix Environment, then?

    – Andrew Henle
    Mar 8 at 13:22











  • @JdeBP It isn't? I wa surprised when you said that because I'd think that a lot of programs (scripts and binaries) would break which rely (perhaps wrongly, but still) on the presence of /etc/passwd.

    – Peter A. Schneider
    Mar 9 at 12:02











  • It isn't, as reading that manual page properly, including its FILES section, will reveal. (-:

    – JdeBP
    Mar 11 at 12:39














27












27








27


2






Read from APUE, just feel curious:




The password file is used every time a user logs in to a
UNIX system and every time someone executes an ls -l command.











share|improve this question
















Read from APUE, just feel curious:




The password file is used every time a user logs in to a
UNIX system and every time someone executes an ls -l command.








ls passwd






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 8 at 5:12









Olorin

3,9581723




3,9581723










asked Mar 8 at 4:07









RickRick

287310




287310








  • 3





    FYI I try strace ls -l later on, I see a openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4 statement.

    – Rick
    Mar 8 at 6:47








  • 6





    Of course, reality is more complex nowadays. It's not /etc/passwd on the BSDs. An active nscd will change things; as will the NSS. So note that this question is based upon a 7th Edition worldview.

    – JdeBP
    Mar 8 at 7:55






  • 4





    @JdeBP Ancient Programming in the Unix Environment, then?

    – Andrew Henle
    Mar 8 at 13:22











  • @JdeBP It isn't? I wa surprised when you said that because I'd think that a lot of programs (scripts and binaries) would break which rely (perhaps wrongly, but still) on the presence of /etc/passwd.

    – Peter A. Schneider
    Mar 9 at 12:02











  • It isn't, as reading that manual page properly, including its FILES section, will reveal. (-:

    – JdeBP
    Mar 11 at 12:39














  • 3





    FYI I try strace ls -l later on, I see a openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4 statement.

    – Rick
    Mar 8 at 6:47








  • 6





    Of course, reality is more complex nowadays. It's not /etc/passwd on the BSDs. An active nscd will change things; as will the NSS. So note that this question is based upon a 7th Edition worldview.

    – JdeBP
    Mar 8 at 7:55






  • 4





    @JdeBP Ancient Programming in the Unix Environment, then?

    – Andrew Henle
    Mar 8 at 13:22











  • @JdeBP It isn't? I wa surprised when you said that because I'd think that a lot of programs (scripts and binaries) would break which rely (perhaps wrongly, but still) on the presence of /etc/passwd.

    – Peter A. Schneider
    Mar 9 at 12:02











  • It isn't, as reading that manual page properly, including its FILES section, will reveal. (-:

    – JdeBP
    Mar 11 at 12:39








3




3





FYI I try strace ls -l later on, I see a openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4 statement.

– Rick
Mar 8 at 6:47







FYI I try strace ls -l later on, I see a openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4 statement.

– Rick
Mar 8 at 6:47






6




6





Of course, reality is more complex nowadays. It's not /etc/passwd on the BSDs. An active nscd will change things; as will the NSS. So note that this question is based upon a 7th Edition worldview.

– JdeBP
Mar 8 at 7:55





Of course, reality is more complex nowadays. It's not /etc/passwd on the BSDs. An active nscd will change things; as will the NSS. So note that this question is based upon a 7th Edition worldview.

– JdeBP
Mar 8 at 7:55




4




4





@JdeBP Ancient Programming in the Unix Environment, then?

– Andrew Henle
Mar 8 at 13:22





@JdeBP Ancient Programming in the Unix Environment, then?

– Andrew Henle
Mar 8 at 13:22













@JdeBP It isn't? I wa surprised when you said that because I'd think that a lot of programs (scripts and binaries) would break which rely (perhaps wrongly, but still) on the presence of /etc/passwd.

– Peter A. Schneider
Mar 9 at 12:02





@JdeBP It isn't? I wa surprised when you said that because I'd think that a lot of programs (scripts and binaries) would break which rely (perhaps wrongly, but still) on the presence of /etc/passwd.

– Peter A. Schneider
Mar 9 at 12:02













It isn't, as reading that manual page properly, including its FILES section, will reveal. (-:

– JdeBP
Mar 11 at 12:39





It isn't, as reading that manual page properly, including its FILES section, will reveal. (-:

– JdeBP
Mar 11 at 12:39










1 Answer
1






active

oldest

votes


















48














The file-system directly associates the numerical UID (User ID) and GID (Group ID) values with the file, not the user name and group name (which are strings). So the ls -l command (and any other command that displays the user and group owner of a file) need to get the user and group names from somewhere. The /etc/passwd file is one such source (probably the original and most common source). The manual bears this out - from PASSWD (5) (i.e. the man page for the /etc/passwd file):




many utilities, like ls(1) use it to map user IDs to usernames







share|improve this answer





















  • 16





    To complement the answer: POSIX specifies option -n for ls. This prevents translation of UIDs and GIDs to usernames and group names. I have tested ls -n with GNU core utils' ls and the option prevented accessing both /etc/passwd and /etc/group as expected.

    – pabouk
    Mar 8 at 8:54












Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f505069%2fwhy-would-etc-passwd-be-used-every-time-someone-executes-ls-l-command%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









48














The file-system directly associates the numerical UID (User ID) and GID (Group ID) values with the file, not the user name and group name (which are strings). So the ls -l command (and any other command that displays the user and group owner of a file) need to get the user and group names from somewhere. The /etc/passwd file is one such source (probably the original and most common source). The manual bears this out - from PASSWD (5) (i.e. the man page for the /etc/passwd file):




many utilities, like ls(1) use it to map user IDs to usernames







share|improve this answer





















  • 16





    To complement the answer: POSIX specifies option -n for ls. This prevents translation of UIDs and GIDs to usernames and group names. I have tested ls -n with GNU core utils' ls and the option prevented accessing both /etc/passwd and /etc/group as expected.

    – pabouk
    Mar 8 at 8:54
















48














The file-system directly associates the numerical UID (User ID) and GID (Group ID) values with the file, not the user name and group name (which are strings). So the ls -l command (and any other command that displays the user and group owner of a file) need to get the user and group names from somewhere. The /etc/passwd file is one such source (probably the original and most common source). The manual bears this out - from PASSWD (5) (i.e. the man page for the /etc/passwd file):




many utilities, like ls(1) use it to map user IDs to usernames







share|improve this answer





















  • 16





    To complement the answer: POSIX specifies option -n for ls. This prevents translation of UIDs and GIDs to usernames and group names. I have tested ls -n with GNU core utils' ls and the option prevented accessing both /etc/passwd and /etc/group as expected.

    – pabouk
    Mar 8 at 8:54














48












48








48







The file-system directly associates the numerical UID (User ID) and GID (Group ID) values with the file, not the user name and group name (which are strings). So the ls -l command (and any other command that displays the user and group owner of a file) need to get the user and group names from somewhere. The /etc/passwd file is one such source (probably the original and most common source). The manual bears this out - from PASSWD (5) (i.e. the man page for the /etc/passwd file):




many utilities, like ls(1) use it to map user IDs to usernames







share|improve this answer















The file-system directly associates the numerical UID (User ID) and GID (Group ID) values with the file, not the user name and group name (which are strings). So the ls -l command (and any other command that displays the user and group owner of a file) need to get the user and group names from somewhere. The /etc/passwd file is one such source (probably the original and most common source). The manual bears this out - from PASSWD (5) (i.e. the man page for the /etc/passwd file):




many utilities, like ls(1) use it to map user IDs to usernames








share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 8 at 4:54

























answered Mar 8 at 4:48









igaligal

6,1411638




6,1411638








  • 16





    To complement the answer: POSIX specifies option -n for ls. This prevents translation of UIDs and GIDs to usernames and group names. I have tested ls -n with GNU core utils' ls and the option prevented accessing both /etc/passwd and /etc/group as expected.

    – pabouk
    Mar 8 at 8:54














  • 16





    To complement the answer: POSIX specifies option -n for ls. This prevents translation of UIDs and GIDs to usernames and group names. I have tested ls -n with GNU core utils' ls and the option prevented accessing both /etc/passwd and /etc/group as expected.

    – pabouk
    Mar 8 at 8:54








16




16





To complement the answer: POSIX specifies option -n for ls. This prevents translation of UIDs and GIDs to usernames and group names. I have tested ls -n with GNU core utils' ls and the option prevented accessing both /etc/passwd and /etc/group as expected.

– pabouk
Mar 8 at 8:54





To complement the answer: POSIX specifies option -n for ls. This prevents translation of UIDs and GIDs to usernames and group names. I have tested ls -n with GNU core utils' ls and the option prevented accessing both /etc/passwd and /etc/group as expected.

– pabouk
Mar 8 at 8:54


















draft saved

draft discarded




















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f505069%2fwhy-would-etc-passwd-be-used-every-time-someone-executes-ls-l-command%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How do I know what Microsoft account the skydrive app is syncing to?

Grease: Live!

When does type information flow backwards in C++?