
터미널에서 다음 두 명령을 실행했습니다.
users
그리고
dscl . -read /Users/
그리고 그들은 나에게 두 가지 다른 결과를 말해줍니다. 두 번째는 나에게 긴 목록을 제공했고 첫 번째는 Mac에서 내 사용자 이름을 표시했습니다.
Google에서 "Mac의 사용자 목록"을 검색하면 대부분 두 번째 항목을 사용한다고 알려줍니다. 그러나 "man users"를 실행하면 이 명령이 "현재 사용자 목록"이라는 명령이 표시됩니다.
차이점을 알려주실 수 있나요?
또한 mysql 사용자로 명령을 어떻게 실행합니까? 다음 명령이 작동하지 않았습니다.
mkdir mysqldir --user mysql
답변1
dscl . -read /Users/
특별히 흥미로운 내용은 인쇄하지 않습니다. 아마도 dscl . -ls /Users
컴퓨터에 정의된 사용자 계정 목록(일반적으로 숨겨진 많은 시스템 계정 포함)을 인쇄하는 을 의미할 것입니다 . users
, 반면에 사용자 목록을 인쇄합니다.현재 로그인되어 있는 사람귀하의 컴퓨터에서 (보통 귀하만).
두 번째 질문의 경우 sudo
명령을 사용하여 다른 사용자로 명령을 실행할 수 있습니다(예: sudo -u _mysql mkdir mysqldir
). 이를 위해서는 관리자 권한이 필요하며 확인을 위해 비밀번호를 입력하라는 메시지가 표시됩니다.
답변2
모든 사용자 목록을 가져옵니다(짧은 이름만).
dscl . -list /Users
특정 사용자에 대한 자세한 사용자 정보를 얻으세요:
dscl . -read /Users/<username>
사용자 정보에서 특정 값을 가져옵니다.
dscl . -read /Users/<username> <key>
의 예로는 , , 및 가 <key>
있습니다 .RecordName
RealName
UniqueID
NFSHomeDirectory
자세한 사용자 정보 얻기모두사용자:
dscl . -readall /Users
특정 값을 가져옵니다.모두사용자 정보:
dscl . -readall /Users <key>
-list
와 의 차이점을 알아차렸기를 바랍니다 -read
. 추가 장점: -plist
XML로 출력되며 -search
키와 값을 지정할 수 있으며 해당 값의 위치를 나타내는 출력을 얻을 수 있습니다.
2rs2ts:~/ $ dscl . -search /Users RealName "Andrew Garrett" [12:04:07]
2rs2ts RealName = (
"Andrew Garrett"
)
2rs2ts:~/ $ dscl -plist . -read /Users/nobody [12:05:29]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>dsAttrTypeStandard:AppleMetaNodeLocation</key>
<array>
<string>/Local/Default</string>
</array>
<key>dsAttrTypeStandard:GeneratedUID</key>
<array>
<string>FFFFEEEE-DDDD-CCCC-BBBB-AAAAFFFFFFFE</string>
</array>
<key>dsAttrTypeStandard:NFSHomeDirectory</key>
<array>
<string>/var/empty</string>
</array>
<key>dsAttrTypeStandard:Password</key>
<array>
<string>*</string>
</array>
<key>dsAttrTypeStandard:PrimaryGroupID</key>
<array>
<string>-2</string>
</array>
<key>dsAttrTypeStandard:RealName</key>
<array>
<string>Unprivileged User</string>
</array>
<key>dsAttrTypeStandard:RecordName</key>
<array>
<string>nobody</string>
</array>
<key>dsAttrTypeStandard:RecordType</key>
<array>
<string>dsRecTypeStandard:Users</string>
</array>
<key>dsAttrTypeStandard:SMBRID</key>
<array>
<string>501</string>
</array>
<key>dsAttrTypeStandard:UniqueID</key>
<array>
<string>-2</string>
</array>
<key>dsAttrTypeStandard:UserShell</key>
<array>
<string>/usr/bin/false</string>
</array>
</dict>
</plist>
물론 매뉴얼 페이지를 읽어서 더 많은 정보를 얻을 수 있습니다.
답변3
'users' 명령은 현재 로그인된 사용자만 나열합니다.
설명 users는 현재 시스템에 있는 사용자의 로그인 이름을 공백으로 구분하여 정렬된 순서로 한 줄에 나열합니다.