我已經安裝了Cygwin,但無法方便地操作它。例如,我希望能夠“su peter”,其中 Peter 對主目錄和 shell 有自己的偏好。我不關心安全。我不需要這些「使用者帳戶」對 Windows 機制可見。
我的努力受到了阻礙。我不知道如何在/etc/passwd 中設定“不需要密碼”。 “su”給予的命令未找到。
(順便說一句,幾年前我確實在另一台機器上安裝了 Cygwin,沒有出現任何問題。我是否在與最近的「改進」作鬥爭?)
讓我澄清我的問題。 /etc/passwd 中的功能是: * 指派一個主目錄。我希望喬治和彼得有不同的目錄。我不關心喬治和彼得是否可以修改彼此的文件 * 我希望喬治能夠使用與彼得不同的 shell。我不希望 goerge 需要為生成的每個 shell 輸入 ** tcsh ** cd /home/george ** source .cshrc 。有沒有一種簡單的方法可以實現這一目標? Windows 設施是否有首選 Cygwin shell 的概念?
答案1
我不關心安全。
我不需要這些「使用者帳戶」對 Windows 機制可見。
每個 Cygwin 使用者都必須有一個對應的 Windows 使用者。
如何在 Cygwin 中新增使用者?
- 建立 Windows 用戶
- 在 Windows 中建立使用者(開始 > 控制台 > 管理使用者帳戶 > 新增...)
- 建立對應的Cygwin用戶
運行以下命令:
mkpasswd -l > /etc/passwd mkgroup -l > /etc/group
這會將 Cygwin 使用者和群組與 Windows 使用者帳戶同步。
如果您在網域中,請
-d
使用-l
- 設定使用者 shell
透過修改
/etc/passwd
(這是一個純文字文件文件格式如下:
Username:Password:UID:GID:Info:Home:Shell
- 根據需要修改使用者主目錄權限
我不知道如何設定“不需要密碼”
如果您確實不關心安全性並且不想使用密碼:
password -p username
從passwd
文件中:
概要
passwd [OPTION] [USER]
選項
…
-p, --pwd-not-required
用戶無需密碼。
來源密碼
我是否正在與最近的“進步”作鬥爭?
從 Cygwin 版本 1.7.34 開始,/etc/passwd
預設不再使用它來管理使用者帳戶。
自版本 1.7.34 起,Cygwin 使用本機 Windows 使用者管理。
- Active Directory(如果可用)
- 薩姆否則。
您應該使用新機制來管理使用者帳戶,而不是/etc/passwd
:
從 Cygwin 1.7.34 開始,Cygwin 使用 Windows SID 到 POSIX UID/GID 的自動內部轉換。這種機制是 SID<=>UID/GID 映射的首選方法,在將 Windows 帳戶對應到 POSIX 帳戶。
在 Cygwin 1.7.34 之前,當您使用以下命令建立 /etc/passwd 和 /etc/group 檔案時,SID 的最後一部分,即所謂的「相對識別碼」(RID),預設用作 UID 和/或 GID和 工具
mkpasswd
。mkgroup
這些工具以及讀取帳戶/etc/passwd
和/etc/group
檔案的功能在最新版本的 Cygwin 中仍然存在,但您應該切換到上述自動翻譯,除非您有非常特定的需求。再次,參見 將 Windows 帳戶對應到 POSIX 帳戶了解詳情。
su
給予命令未找到。
安裝sshd
並用作ssh username@localhost
替代su
品。
您可以定義一個su
別名來簡化此操作。
為什麼 su 不起作用?
該
su
命令已經進出 Cygwin 發行版,但尚未移植到 Cygwin,也從未工作過。它目前作為 的一部分安裝sh-utils
,但同樣,它不起作用。您應該安裝
sshd
並用作ssh username@localhost
替代su
品。有關為什麼
su
不起作用的一些技術背景,請閱讀關於“su”命令以及相關的郵件存檔訊息。