Why would /etc/passwd be used every time someone executes `ls -l` command?
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
22 hours ago
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
21 hours ago
4
@JdeBP Ancient Programming in the Unix Environment, then?
– Andrew Henle
15 hours ago
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 yesterday
Olorin
3,8781721
3,8781721
asked yesterday
RickRick
20317
20317
3
FYI I trystrace ls -l
later on, I see aopenat(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 activenscd
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
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
22 hours ago
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
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
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
10
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
20 hours ago
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
10
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
20 hours ago
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
10
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
20 hours ago
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 yesterday
answered yesterday
igaligal
5,5511435
5,5511435
10
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
20 hours ago
add a comment |
10
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
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
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
22 hours ago
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
21 hours ago
4
@JdeBP Ancient Programming in the Unix Environment, then?
– Andrew Henle
15 hours ago