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;
}
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 anls -l
command.
ls passwd
add a comment |
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 anls -l
command.
ls passwd
3
FYI I trystrace ls -l
later on, I see aopenat(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 activenscd
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
add a comment |
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 anls -l
command.
ls passwd
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 anls -l
command.
ls passwd
ls passwd
edited Mar 8 at 5:12
Olorin
3,9581723
3,9581723
asked Mar 8 at 4:07
RickRick
287310
287310
3
FYI I trystrace ls -l
later on, I see aopenat(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 activenscd
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
add a comment |
3
FYI I trystrace ls -l
later on, I see aopenat(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 activenscd
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
add a comment |
1 Answer
1
active
oldest
votes
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
16
To complement the answer: POSIX specifies option-n
forls
. This prevents translation of UIDs and GIDs to usernames and group names. I have testedls -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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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
16
To complement the answer: POSIX specifies option-n
forls
. This prevents translation of UIDs and GIDs to usernames and group names. I have testedls -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
add a comment |
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
16
To complement the answer: POSIX specifies option-n
forls
. This prevents translation of UIDs and GIDs to usernames and group names. I have testedls -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
add a comment |
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
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
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
forls
. This prevents translation of UIDs and GIDs to usernames and group names. I have testedls -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
add a comment |
16
To complement the answer: POSIX specifies option-n
forls
. This prevents translation of UIDs and GIDs to usernames and group names. I have testedls -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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
3
FYI I try
strace ls -l
later on, I see aopenat(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 activenscd
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