[NA HW1-3] ACL timeout

61 views
Skip to first unread message

林俊良

unread,
May 2, 2026, 6:38:57 AMMay 2
to NYCU NASA 課程討論區
助教您好,我的 HW1-3 ACL 測試不穩定,一直 timeout。

目前我已確認:
1. workstation1 允許 stu SSH,workstation2 透過 Match LocalAddress + DenyUsers stu 禁止 stu SSH。
2. OJ temporary users taacl*/stuacl* 可以 SSH login。
3. taacl* 可以 sudo /usr/bin/id -u root。
4. stuacl* 可以 sudo /bin/ls /,但不能 sudo /usr/bin/id -u root。
5. sudoRole 已加 sudoOption: !authenticate。
6. LDAP ACL 已限制 user 只能 self write userPassword/loginShell/sshPublicKey;其他 attributes read-only。
7. shadowLastChange 已改成 read-only。
8. generalta/mailta 對 userPassword 是 write,不可 read。

但 OJ ACL 有時卡在:
- Checking ACLs for modifying protected attributes
或是
- Checking random users modify permissions

請問要如何解決問題?

另外,我想問timeout究竟是網路速度慢還是設定錯誤?

林俊良

unread,
May 2, 2026, 6:58:05 AMMay 2
to NYCU NASA 課程討論區
我剛剛換個網路,沒有改設定,又進行一次測試,OJ ACL log又變了(不是timeout)

OJ 顯示:
------ CHECK ACL -----

Creating temporary users for ta/stu groups.
adding new entry "uid=taacleksssh,ou=People,dc=70,dc=nasa"

Created user taacleksssh cannot be found by ldapsearch.


但我在 OJ 回報後確認,這個 user 是被 OJ 建立成功的:

prins@prins:~$ LDAPTLS_REQCERT=never ldapsearch -LLL -x \
  -D cn=admin,dc=70,dc=nasa -W \
  -H ldaps://ldap.70.nasa \
  -b uid=taacleksssh,ou=People,dc=70,dc=nasa \
  dn uid createTimestamp modifyTimestamp creatorsName modifiersName
Enter LDAP Password:
dn: uid=taacleksssh,ou=People,dc=70,dc=nasa
uid: taacleksssh
creatorsName: uid=mailta,ou=People,dc=70,dc=nasa
createTimestamp: 20260502104011Z
modifiersName: uid=mailta,ou=People,dc=70,dc=nasa
modifyTimestamp: 20260502104011Z


我也用 anonymous ldapsearch 查得到:

prins@prins:~$ LDAPTLS_REQCERT=never ldapsearch -LLL -x \
  -H ldaps://ldap.70.nasa \
  -b ou=People,dc=70,dc=nasa \
  '(uid=taacleksssh)' dn uid uidNumber gidNumber homeDirectory loginShell
dn: uid=taacleksssh,ou=People,dc=70,dc=nasa
uid: taacleksssh
uidNumber: 44537
gidNumber: 10000
homeDirectory: /u/ta/taacleksssh
loginShell: /bin/bash

在 workstation端也查得到:

dmz@dmz:~$ getent passwd taacleksssh
taacleksssh:*:44537:10000:taacleksssh:/u/ta/taacleksssh:/bin/bash

dmz@dmz:~$ LDAPTLS_REQCERT=never ldapsearch -LLL -x \
  -H ldaps://ldap.70.nasa \
  -b ou=People,dc=70,dc=nasa \
  '(uid=taacleksssh)' dn uid uidNumber gidNumber homeDirectory loginShell
dn: uid=taacleksssh,ou=People,dc=70,dc=nasa
uid: taacleksssh
uidNumber: 44537
gidNumber: 10000
homeDirectory: /u/ta/taacleksssh
loginShell: /bin/bash

所以目前看起來不是 LDAP entry 沒建立,也不是 anonymous read/search ACL 問題。

想請問助教解決辦法?

謝謝助教。

林俊良 在 2026年5月2日 星期六下午6:38:57 [UTC+8] 的信中寫道:

賴羿茗

unread,
May 2, 2026, 7:58:19 AMMay 2
to NYCU NASA 課程討論區

同學您好:

  1. 關於 OJ ACL 卡住的問題
    經檢查後,問題原因是 LDAP 測試帳號 (taacl*/stuacl*) 權限設定不正確。
    OJ 在評分過程中,會使用臨時 LDAP account 作為 bind user 執行 ldapsearch 測試,從你的 Submission history 來看,前幾次失敗皆為臨時帳號 ldapsearch failed,導致評分流程在前期即中止。
    請注意作業 Spec P10 中「all users」範圍也包含 OJ 建立的臨時帳號。

  2. 關於更換網路後 OJ ACL log 出現不同訊息
    依據 OJ log 顯示,問題來自網路連線不穩定,造成 SSH timeout,並非設定錯誤
    擷取自該 Submission: Connection to 192.168.4.102 port 22 timed out

建議先確認 LDAP 權限設定與網路環境穩定性後,再重新提交測試。


BR,
TA ymlai


lin710277...@nycu.edu.tw 在 2026年5月2日 星期六下午6:58:05 [UTC+8] 的信中寫道:

林俊良

unread,
May 2, 2026, 11:39:16 PMMay 2
to NYCU NASA 課程討論區
助教您好,

我依照您前面提到的方向,重新檢查了 HW1-3 ACL 的實作

我在 LDAP 中手動建立了兩個模擬 OJ 臨時帳號:

uid=taaclcheck,ou=People,dc=70,dc=nasa
uid=stuaclcheck,ou=People,dc=70,dc=nasa


接著分別使用這兩個臨時帳號作為 bind user 執行 ldapsearch,確認它們都可以查詢其他 user 的一般屬性。

例如使用 taaclcheck 查詢 generalta:

# generalta, People, 70.nasa
dn: uid=generalta,ou=People,dc=70,dc=nasa
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: ldapPublicKey
uid: generalta
cn: generalta
sn: generalta
uidNumber: 10000
gidNumber: 10000
homeDirectory: /u/ta/generalta
loginShell: /bin/bash
sshPublicKey: ssh-ed25519 ...
mail: gene...@70.nasa

# search result
result: 0 Success
# numEntries: 1


使用 stuaclcheck 查詢 generalta 也同樣成功。


另外我也確認臨時帳號無法讀取其他人的 userPassword。例如使用 taaclcheck 查詢 generalta 的 userPassword 時,只會看到 DN,不會看到 password hash:

# generalta, People, 70.nasa
dn: uid=generalta,ou=People,dc=70,dc=nasa

# search result
result: 0 Success
# numEntries: 1


同時也確認 generalta 可以寫 password 但不能讀 password。使用 generalta 查詢 stuaclcheck 的 userPassword 時,也只看到 DN,沒有 password hash。


接著我測試臨時帳號是否可以修改自己的可寫屬性。taaclcheck 修改自己的 loginShell 可以成功:

modifying entry "uid=taaclcheck,ou=People,dc=70,dc=nasa"


但 taaclcheck 嘗試修改別人的 loginShell 會被拒絕:

ldap_modify: Insufficient access (50)

另外,taaclcheck 嘗試修改自己的 read-only 屬性,例如 uidNumber,也會被拒絕:


不過我重新送 OJ 後,ACL 項目仍然 timeout。

想請教解決辦法,謝謝助教。

charli...@nycu.edu.tw 在 2026年5月2日 星期六晚上7:58:19 [UTC+8] 的信中寫道:

賴羿茗

unread,
May 3, 2026, 7:46:00 AMMay 3
to NYCU NASA 課程討論區
同學您好:

建議您可以檢查 LDAP server 的 log,裡面應該會有 ldapmodify 的相關紀錄,包含操作是否成功、失敗原因。

BR,
TA ymlai


lin710277...@nycu.edu.tw 在 2026年5月3日 星期日上午11:39:16 [UTC+8] 的信中寫道:
Reply all
Reply to author
Forward
0 new messages