題 Mac OSX:用戶vs dscl命令列出用戶


我在終端執行了這兩個命令:

users

dscl . -read /Users/

然後他們告訴我兩個不同的結果。第二個給了我一個很長的列表,而第一個只是在Mac上顯示我的用戶名。

當我谷歌搜索“在Mac上列出用戶”時,大多數人會告訴我使用第二個。但是,當我執行“man users”時,它向我顯示此命令是“列出當前用戶”。

你能告訴我差異嗎?

另外,我如何以mysql用戶身份執行命令。以下命令不起作用:

mkdir mysqldir --user mysql

4
2018-05-08 05:59


起源


我覺得有趣的是你在Mac上獲得了用戶名 dscl . -read /Users/ 因為我明白 name: dsRecTypeStandard:Users 這是我所期望的,因為它正在嘗試閱讀 dsRecType (是的 Users 在這種情況下,心靈)。 - 2rs2ts


答案:


dscl . -read /Users/ 不打印任何特別有趣的東西;你可能意味著 dscl . -ls /Users,它會打印一份在您的計算機上定義的用戶帳戶列表(包括許多通常隱藏的系統帳戶)。 users另一方面,打印用戶列表 誰目前登錄 在你的電腦上(通常只是你)。

對於你的第二個問題:你可以使用 sudo 命令以另一個用戶身份運行命令(例如 sudo -u _mysql mkdir mysqldir)。請注意,這需要管理員權限,並會要求您輸入密碼進行驗證。


6
2018-05-08 14:51





獲取所有用戶的列表(只是他們的簡稱):

dscl . -list /Users

獲取特定用戶的詳細用戶信息:

dscl . -read /Users/<username>

獲取用戶信息中的特定值:

dscl . -read /Users/<username> <key>

示例 <key> 是 RecordNameRealNameUniqueID,和 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>

當然,您可以閱讀手冊頁以獲取更多信息。


15
2017-07-17 19:06





'users'命令僅列出當前登錄的用戶。

描述      users列出系統中當前用戶的登錄名      排序順序,空格分隔,在一行上。


0
2017-11-08 20:27