!["ps -U"가 예상대로 프로세스를 나열하지 않습니다.](https://rvso.com/image/1703366/%22ps%20-U%22%EA%B0%80%20%EC%98%88%EC%83%81%EB%8C%80%EB%A1%9C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EB%82%98%EC%97%B4%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
ps -U
명령이 사용자 이름의 프로세스를 나열 하지 않는 이유는 무엇입니까 0x00
? 반대로 루트 프로세스는 나열되어 있습니다.
$ id
uid=1000(0x00) gid=1000(0x00) groups=1000(0x00),3(sys),90(network),98(power),108(vboxusers),952(libvirt),956(docker),991(lp),998(wheel)
$ whoami
0x00
$ ps -fu 0x00 | grep -i vbox | grep -v grep
root 468 2 0 09:02 ? 00:00:00 [iprt-VBoxTscThread]
$ ps -fu 1000 | grep -i vbox | grep -v grep
0x00 35855 1332 0 10:44 ? 00:00:02 /usr/lib/virtualbox/VBoxXPCOMIPCD
0x00 35861 1332 0 10:44 ? 00:00:05 /usr/lib/virtualbox/VBoxSVC --auto-shutdown
오류 없이 숫자로 시작하는 사용자 이름을 만들 수 있습니다.
$ sudo useradd -M -s /usr/bin/nologin 0x01
$ id 0x01
uid=1001(0x01) gid=1001(0x01) groups=1001(0x01)
Linux의 사용자 이름을 숫자로 시작하도록 설정하는 것이 권장되지 않습니까?
커널에 대한 추가 정보:
$ uname -a
Linux 0xff1 6.7.4-2-MANJARO #1 SMP PREEMPT_DYNAMIC Sat Feb 10 09:41:20 UTC 2024 x86_64 GNU/Linux
답변1
오류 없이 숫자로 시작하는 사용자 이름을 만들 수 있습니다.
일부 Linux 배포판에서는 사용자 이름이 영문자로 시작해야 한다는 규칙을 적용하지 않습니다. 아니면 특수 문자를 금지할 수도 있습니다.
다음에 대한 답변 보기Linux 사용자 이름은 왜 숫자로 시작할 수 없나요?
한 가지 답변은 Ubuntu가 사용자 이름을 허용한다고 보고합니다 &#%^()!@~*?<>=|
.
Linux의 사용자 이름을 숫자로 시작하도록 설정하는 것이 권장되지 않습니까?
(십진수) 숫자 문자로 시작하는 사용자 이름은 권장되지 않습니다. 알파벳 문자가 선호됩니다. 그러면 사용자 이름은 사용자 ID(숫자 값)와 쉽게 구별됩니다.
이상한 사용자 이름(특히 사용자 ID처럼 보이는 사용자 이름, 즉 숫자 값)을 만드는 경우 일부 명령에서 문제가 발생하거나 이상한 결과를 얻을 수 있습니다.
당신이 발견한 바와 같이 ps -u
명령은 당신이 원하거나 기대하는 결과를 항상 제공하지 않을 수도 있습니다. 이 u
옵션은 사용자 이름 또는 사용자 ID를 허용합니다. 사용자 ID(예: 숫자)처럼 보이는 사용자 이름을 제공하는 경우 이 옵션은 잘못된 선택을 하여 인수를 실제 사용자 ID가 아닌 사용자 ID로 처리할 수 있습니다.
엄격한 규칙을 따르지 않는 색다른 사용자 이름을 고집한다면 그 결과에 대처해야 합니다.
한 가지 해결 방법은 선택 사항이 있는 경우 (모호한) 사용자 이름 대신 항상 사용자 ID를 제공하는 것입니다.