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












18















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
    22 hours ago








  • 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
    21 hours ago






  • 4





    @JdeBP Ancient Programming in the Unix Environment, then?

    – Andrew Henle
    15 hours ago
















18















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
    22 hours ago








  • 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
    21 hours ago






  • 4





    @JdeBP Ancient Programming in the Unix Environment, then?

    – Andrew Henle
    15 hours ago














18












18








18


1






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 yesterday









Olorin

3,8781721




3,8781721










asked yesterday









RickRick

20317




20317








  • 3





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

    – Rick
    22 hours ago








  • 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
    21 hours ago






  • 4





    @JdeBP Ancient Programming in the Unix Environment, then?

    – Andrew Henle
    15 hours ago














  • 3





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

    – Rick
    22 hours ago








  • 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
    21 hours ago






  • 4





    @JdeBP Ancient Programming in the Unix Environment, then?

    – Andrew Henle
    15 hours ago








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
22 hours ago







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

– Rick
22 hours ago






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
21 hours ago





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
21 hours ago




4




4





@JdeBP Ancient Programming in the Unix Environment, then?

– Andrew Henle
15 hours ago





@JdeBP Ancient Programming in the Unix Environment, then?

– Andrew Henle
15 hours ago










1 Answer
1






active

oldest

votes


















31














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





















  • 10





    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
    20 hours ago











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









31














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





















  • 10





    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
    20 hours ago
















31














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





















  • 10





    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
    20 hours ago














31












31








31







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 yesterday

























answered yesterday









igaligal

5,5511435




5,5511435








  • 10





    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
    20 hours ago














  • 10





    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
    20 hours ago








10




10





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
20 hours ago





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
20 hours ago


















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 to label and detect the document text images

Vallis Paradisi

Tabula Rosettana