RE:NODE

სახელმძღვანელოები10 წუთის საკითხავი

Project Zomboid-ის whitelist და ანგარიშები

როგორ მუშაობს Project Zomboid-ის სერვერის ანგარიშები: Open=false whitelist, მომხმარებლების დამატება, Steam ID-ზე მიბმა, დაკარგული პაროლის აღდგენა, permadeath და Discord-ით რეგისტრაცია.

0 მკითხველი

Project Zomboid-ის სერვერს ანგარიშები აქვს და არა მხოლოდ მოთამაშეები. ყოველი ადამიანი საკუთარი მომხმარებლის სახელითა და პაროლით შედის, სერვერი კი ამ ანგარიშებს SQLite მონაცემთა ბაზაში ინახავს, Zomboid/db/<servername>.db-ში. შეუძლიათ თუ არა უცნობებს ანგარიშის შექმნა, ini-ის ერთი ხაზი წყვეტს: Open=true ნებისმიერს აძლევს რეგისტრაციის საშუალებას პირველი შემოსვლისას; Open=false სერვერს მხოლოდ whitelist-ზე გადაიყვანს, ასე რომ შემოდის მხოლოდ ის ანგარიშები, რომლებიც შენ შექმენი - ან რომლებიც უკვე არსებობდა. სერვერის სუფთად დასახურად სთხოვე შენს მუდმივ მოთამაშეებს, ერთხელ შემოვიდნენ, გაუშვი /addalltowhitelist, დააყენე Open=false და გადატვირთე. ვინმეს შემდგომ დასამატებლად გაუშვი /adduser "name" "password" და პაროლი მიეცი.

ეს გზამკვლევი ხსნის, როგორ მუშაობს ანგარიშები და whitelist, ყველა შესაბამის პარამეტრს, ხალხის დამატებასა და მოშორებას, დავიწყებული პაროლის აღდგენას, Steam ID-ზე მიბმას, რომელიც ანგარიშების გაზიარებას აჩერებს, permadeath whitelist-ებს და რეგისტრაციის Discord-ით მართვას. ადმინის ანგარიში და ბრძანებების სია ზოგადად განხილულია Project Zomboid-ის ადმინის ბრძანებებში.

ორი პაროლი და რატომ არსებობს ორივე#

ახალი ადმინები Zomboid-ის სერვერზე ყველაზე ხშირად სწორედ ამ ორს ურევენ ერთმანეთში.

  • სერვერის პაროლი არის Password= <servername>.ini-ში. ყველა ერთსა და იმავეს კრეფს შეერთების ეკრანზე. ის აკავებს მათ, ვინც მხოლოდ შენი მისამართი იპოვა, და მეტს არაფერს.
  • ანგარიშის პაროლი ერთ ანგარიშს ეკუთვნის. ის ანგარიშის შექმნისას დგინდება - მოთამაშის მიერ პირველი შემოსვლისას, თუ სერვერი ღიაა, ან შენ მიერ /adduser-ით, თუ არ არის - და ამტკიცებს, რომ ადამიანი, რომელიც "Bob"-ად შედის, ნამდვილად Bob-ია.

სერვერს შეუძლია ერთის ან ორივეს გამოყენება. სერვერის პაროლი Open=true-სთან ერთად ნიშნავს, რომ ნებისმიერს, ვინც საერთო პაროლი იცის, ანგარიშის შექმნა შეუძლია. Open=false სერვერის პაროლის გარეშე ნიშნავს, რომ შემოსვლა მხოლოდ სიაში მყოფ ანგარიშებს შეუძლიათ, და სერვერის პაროლი არაფერს ამატებს. ორივე ერთად ორმაგი დაზღვევაა და ძირითადად სასარგებლოა, სანამ ერთი მოდელიდან მეორეზე გადადიხარ.

სად ცხოვრობს ანგარიშები#

code
Zomboid/  Server/servertest.ini              Open, Password and the other keys below  db/servertest.db                   accounts: usernames, password hashes, access levels, bans  Saves/Multiplayer/servertest/    players.db                       characters

მონაცემთა ბაზა ანგარიშს ინახავს; save - პერსონაჟს. ამ გაყოფას სამი სასარგებლო შედეგი აქვს:

  • სამყაროს გაწმენდა ანგარიშებს არ შლის. წაშალე save და ყველა იმავე სახელითა და პაროლით შევა ახალ სამყაროში. Project Zomboid-ის სერვერის რესეტი wipe-ის სახეებს გადის.
  • მონაცემთა ბაზის წაშლა ყველა ანგარიშს შლის, admin-ის, ყველა წვდომის დონისა და ყველა ბანის ჩათვლით. გააკეთე ეს მხოლოდ მაშინ, როცა მართლა გინდა სიის ნულიდან დაწყება.
  • მონაცემთა ბაზის დაკოპირება შენს სიას გადაიტანს. მეორე სერვერის გასამართად ან იმავე ხალხთან ერთად ახალ ჰოსტზე გადასასვლელად გადააკოპირე db/<servername>.db, ახალი სერვერის სახელით გადარქმეული. ხელახლა რეგისტრაცია არავის მოუწევს.

მონაცემთა ბაზის backup save-თან ერთად გააკეთე. მისი დაკარგვა სამყაროს არ კარგავს, მაგრამ ნიშნავს ანგარიშების ხელახლა შექმნას და ყველა ბანის მეხსიერებიდან ხელახლა დადებას.

ini-ის გასაღებები, რომლებიც წვდომას მართავს#

გასაღებინაგულისხმევირას აკეთებს
Opentruefalse სერვერს მხოლოდ whitelist-ზე გადაიყვანს
Passwordცარიელისაერთო სერვერის პაროლი შეერთებისას
AutoCreateUserInWhiteListfalseOpen=true-სთან ერთად ახალი ანგარიშები რეგისტრაციისთანავე ემატება whitelist-ს
DropOffWhiteListAfterDeathfalseანგარიშის whitelist-იდან მოშორება, როცა მისი პერსონაჟი კვდება
MaxAccountsPerUser0დაშვებული ანგარიშები თითო Steam ანგარიშზე. 0 შეუზღუდავია
MaxPlayers32სლოტები
ServerWelcomeMessageნაგულისხმევიჩანს შემოსვლისას; კარგი ადგილია წესებისა და Discord-ის ბმულისთვის
DisplayUserNametrueანგარიშების სახელების ჩვენება მოთამაშეების თავზე
ShowFirstAndLastNamefalseპერსონაჟების სახელების ჩვენება ნაცვლად ან დამატებით

ნაგულისხმევი მნიშვნელობები build-ის მიხედვით ოდნავ განსხვავდება, გენერირებული ini კი ყოველ გასაღებს კომენტარს უკეთებს. ამათგან რამდენიმე ერთ ხაზზე მეტს იმსახურებს.

AutoCreateUserInWhiteList ღიადან დახურულზე გადასვლისთვისაა. გაუშვი სერვერი ღიად გაშვების შაბათ-კვირას, ეს ჩართული, და ყველა, ვინც დარეგისტრირდა, უკვე whitelist-ზე იქნება, როცა Open-ს false-ზე გადართავ.

MaxAccountsPerUser Steam-ის სერვერებზე მნიშვნელოვანია. ანგარიშები იმ Steam ID-ზეა მიბმული, რომელმაც ისინი შექმნა, ამიტომ ლიმიტი 1 ან 2 ერთ ადამიანს უშლის ალტერნატიული ანგარიშების გროვის რეგისტრაციას ბანისთვის თავის ასარიდებლად ან მარაგების დასაგროვებლად. მეგობრების სერვერზე ამას მნიშვნელობა არ აქვს; საჯაროზე დააყენე.

DropOffWhiteListAfterDeath permadeath-ის გადამრთველია, განხილული ქვემოთ.

უკვე მომუშავე სერვერის დახურვა#

გავრცელებული სიტუაცია: სერვერი ერთხანს ღიად მუშაობდა, მუდმივი მოთამაშეების ჯგუფი გაჩნდა, და დროა უცნობები შეაჩერო.

  1. სთხოვე ყველას, ვისაც წვდომა უნდა დარჩეს, ერთხელ შემოვიდეს, რომ მათი ანგარიში არსებობდეს.
  2. როგორც ადმინმა, გაუშვი /addalltowhitelist. ის ამატებს ყველა ანგარიშს, რომელიც სერვერმა იცის.
  3. გააჩერე სერვერი.
  4. ini-ში დააყენე Open=false.
  5. გაუშვი სერვერი და სცადე ახალი სახელით შემოსვლა, რომ დარწმუნდე, რომ უარს გეუბნება.
servertest.ini
Open=falsePassword=AutoCreateUserInWhiteList=falseMaxAccountsPerUser=1

/addalltowhitelist ყველას ამატებს, იმ უცნობის ჩათვლით, რომელმაც წუხელ ანგარიში შექმნა. შემდეგ თამაშის ადმინის პანელში ანგარიშების სია გადახედე და მოაშორე ყველა, ვინც იქ არ უნდა იყოს.

Open ასევე ერთ-ერთი ოფციაა, რომლის დაყენებაც /changeoption-ს მომუშავე სერვერზე შეუძლია, რასაც /reloadoptions მოსდევს. ეს მოსახერხებელია, მაგრამ ini-შიც ჩაწერე, რომ გადატვირთვამ სერვერი ჩუმად ხელახლა არ გახსნას.

დამატება, მოშორება და ბანი#

ბრძანებები, რომლებიც კონსოლში ან ჩატში ადმინად ეშვება:

code
/adduser "Bob" "temporary-password-42"/addusertowhitelist "Bob"/removeuserfromwhitelist "Bob"/addalltowhitelist/banuser "Bob" -ip -r "griefing the Muldraugh bakery"/unbanuser "Bob"/banid "76561198012345678"/unbanid "76561198012345678"/setaccesslevel "Bob" "moderator"
ბრძანებარას აკეთებს
/adduserქმნის ანგარიშს შენ მიერ არჩეული პაროლით
/addusertowhitelistუკვე არსებულ ანგარიშს whitelist-ში ამატებს
/removeuserfromwhitelistანგარიშის whitelist-ის ჩანაწერს შლის
/addalltowhitelistყველა არსებულ ანგარიშს whitelist-ში ამატებს
/banuserანგარიშს ბანს ადებს; -ip მისამართსაც ბანავს
/banidSteam ID-ს ბანს ადებს, რაც იმავე Steam ანგარიშიდან ახალ ანგარიშებს აჩერებს
/setaccesslevelანგარიშს სტაფის დონეს აძლევს, ან none მის მოსაშორებლად

სახელები ანგარიშების სახელებია და არა პერსონაჟების, ხოლო ბრჭყალებს მნიშვნელობა აქვს, როცა სახელში ჰარია. whitelist სერვერზე /adduser არის გზა, რომლითაც ხალხი შემოდის: შექმენი ანგარიში, შემდეგ კი სახელი და პაროლი პირადად გაუგზავნე. უთხარი, პაროლი შეცვალონ, რისი გაკეთებაც მოთამაშეს ჩატში /changepwd "old" "new"-ით შეუძლია იმ build-ებზე, რომლებიც მას შეიცავს; /help ჩამოთვლის ბრძანებებს, რომლებიც შენს build-ს აქვს.

ღია სერვერზე ანგარიშის ბანისთვის თავის არიდება ადვილია - მოთამაშე ახალ სახელს არეგისტრირებს. Steam ID-ზე ბანი არის ის, რომელიც რჩება. Steam ID სერვერის შეერთების ლოგებშია ყოველი შემოსვლისთვის, და სწორედ ასე პოულობ მას მოგვიანებით. სერვერის წესები, მოდერაცია და სტაფი ფარავს ბანების ჩაწერასა და აპელაციების მართვას.

Steam ID-ზე მიბმა და გაზიარებული ანგარიშები#

Steam-ის სერვერზე ანგარიში იმ Steam ანგარიშზეა მიბმული, რომელმაც ის პირველად გამოიყენა. ვინც Bob-ის მომხმარებლის სახელი და პაროლი იცის, მაინც ვერ შევა Bob-ად სხვა Steam ანგარიშიდან. ეს ჩუმი, სასარგებლო დაცვაა: გაზიარებული პაროლები გაზიარებულ პერსონაჟებამდე არ მიდის, გაჟონილი პაროლი კი ნაკლები კატასტროფაა, ვიდრე ჟღერს.

ის ასევე ხსნის მხარდაჭერის ორ კითხვას. მოთამაშე, რომელიც თამაშს ახალ Steam ანგარიშზე ყიდულობს, ძველ Zomboid ანგარიშს ვერ გამოიყენებს, სანამ ადმინი მას არ მოაშორებს და ახალს არ შექმნის. და ძმებს, რომლებიც ერთ კომპიუტერს ორი Steam ანგარიშით იზიარებენ, ორი Zomboid ანგარიში სჭირდებათ.

-nosteam ოფციით გაშვებული სერვერები Steam-ის გარეშე მუშაობს, თამაშის არა-Steam ასლებზე მყოფი მოთამაშეებისთვის. მისაბმელი Steam ID არ არსებობს, ამიტომ ანგარიშის პაროლი ერთადერთი დაცვაა, /banid-ს კი საქმე არაფერი აქვს. ინტერნეტისკენ მიმართულ ნებისმიერ არა-Steam სერვერზე გამოიყენე სერვერის პაროლი და whitelist.

დავიწყებული პაროლის აღდგენა#

"დაგავიწყდა პაროლი?" ბმული არ არსებობს. გამოსწორების სამი გზა, ყველაზე მარტივიდან ყველაზე ხელით შესრულებადამდე.

  1. ადმინის პანელი. ადმინად შესულს, თამაშის პანელს აქვს მონაცემთა ბაზის ხედი ანგარიშების სიით, სადაც ადმინს ანგარიშის დეტალების შეცვლა შეუძლია. ეს ყველაზე სწრაფი გზაა იმ build-ებზე, რომლებიც მას გთავაზობენ.
  2. მოშორება და ხელახლა შექმნა. /removeuserfromwhitelist "Bob", შემდეგ /adduser "Bob" "new-password". თუ სერვერი უარს ამბობს, რადგან სახელი ჯერ კიდევ არსებობს, წაშალე ხაზი პირდაპირ, როგორც მესამე მეთოდშია. Build 41-ის მულტიპლეერზე პერსონაჟი save-ში ცალკე ინახება, ანგარიშის სახელით მიბმული, ამიტომ იმავე სახელის ხელახლა შექმნა Bob-ს თავის პერსონაჟთან აბრუნებს. თუ შენი სერვერი მოდებიანია, ჯერ სატესტო ანგარიშზე სცადე.
  3. პირდაპირ მონაცემთა ბაზა. გაჩერებული სერვერით ანგარიშების ცხრილის რედაქტირება ნებისმიერი SQLite ხელსაწყოთი შეიძლება. ჯერ ფაილის backup გააკეთე.
bash
$ cp Zomboid/db/servertest.db Zomboid/db/servertest.db.bak$ sqlite3 Zomboid/db/servertest.db ".schema whitelist"$ sqlite3 Zomboid/db/servertest.db "SELECT id, username FROM whitelist;"$ sqlite3 Zomboid/db/servertest.db "DELETE FROM whitelist WHERE username = 'Bob';"

ანგარიშების ცხრილს whitelist ჰქვია ღია სერვერებზეც კი, რაც ხალხს აკვირვებს. რამის შეცვლამდე სქემა წაიკითხე; სვეტების სახელები build-ებს შორის იცვლებოდა, პაროლები კი hash-ის სახით ინახება, ამიტომ ცხრილში ახალს უბრალოდ ვერ ჩაწერ. ხაზის წაშლა და ანგარიშის /adduser-ით ხელახლა შექმნა პირდაპირი წვდომის უსაფრთხო გამოყენებაა.

permadeath whitelist-ები#

DropOffWhiteListAfterDeath=true ანგარიშს whitelist-იდან აშორებს, როცა მისი პერსონაჟი კვდება. Open=false-თან ერთად სიკვდილი ნიშნავს, რომ მოთამაშე ჩაკეტილია, სანამ ადმინი უკან არ შემოუშვებს.

ზოგი roleplay და hardcore სერვერი ამას იყენებს, რომ სიკვდილს მნიშვნელობა ჰქონდეს: ყოველი დაბრუნება სტაფის წევრზე გადის, რომელმაც შეიძლება ახალი პერსონაჟის განაცხადი, ლოდინის პერიოდი ან უბრალოდ საუბარი მოითხოვოს იმაზე, როგორ მოხდა ეს. ის საუკეთესოდ მუშაობს მკაფიო წერილობით პოლიტიკასთან ერთად - რამდენ ხანს გრძელდება ლოდინი, რა სჭირდება ახალ განაცხადს - რადგან სხვა შემთხვევაში ყოველი სიკვდილი მოლაპარაკებად იქცევა. ის ასევე სტაფის ხელმისაწვდომობას თამაშის ნაწილად აქცევს: სიკვდილი ღამის 3 საათზე, როცა სტაფიდან არავინ ღვიძავს, დილამდე ჩაკეტილ მოთამაშეს ნიშნავს. ჩართვამდე გადაწყვიტე, მისაღებია თუ არა ეს.

რეგისტრაცია Discord-ით#

საზოგადოებების უმეტესობა, რომლებიც whitelist-ს იყენებენ, განაცხადებს Discord-ში იღებს. მომუშავე სქემა:

  1. განაცხადების არხი, კითხვებით მიმაგრებულ შეტყობინებაში: სახელი, ასაკი, თუ შენი წესები ამას მოითხოვს, დროის სარტყელი, როგორ იპოვეს სერვერი და წესებზე თანხმობა.
  2. სტაფის წევრი მას განიხილავს და, თუ დაამტკიცებს, /adduser-ს გენერირებული პაროლით უშვებს.
  3. პაროლი განმცხადებელს პირადი შეტყობინებით ეგზავნება, არასოდეს საჯარო არხში, მისი შეცვლის მითითებით.
  4. განმცხადებელი Discord-ის როლს იღებს, რომ სტაფმა ერთი შეხედვით დაინახოს, ვინ არის whitelist-ზე.

ეს whitelist-ს აზრს უნარჩუნებს დიდი ძალისხმევის გარეშე. სისუსტე ხელით შესასრულებელი ნაბიჯია: ვიღაცამ ბრძანება უნდა გაუშვას. მოდერატორებისთვის ამისთვის საჭირო წვდომის დონის მიცემა, ადმინის პაროლის გაზიარების ნაცვლად, სწორი გამოსავალია - ზოგადი მსჯელობისთვის იხილე subuser-ები და მინიმალური პრივილეგია.

Project Zomboid-ს ასევე აქვს ჩაშენებული Discord-ის ჩატის ხიდი, რომელიც ini-ში კონფიგურირდება:

გასაღებირას აკეთებს
DiscordEnableხიდს რთავს
DiscordTokenbot-ის token-ი, Discord-ის developer portal-იდან
DiscordChannelდასაკავშირებელი არხის სახელი
DiscordChannelIDარხის რიცხვითი ID

ის ჩატს თამაშსა და Discord-ის არხს შორის გადასცემს. whitelist-ს არ მართავს და ანგარიშებს არ ქმნის, token-ი კი მონაცემია, რომელიც დაცვას საჭიროებს: ini სქრინშოტებში ნუ მოხვდება, და თუ token-ი ოდესმე გაჟონავს, developer portal-ში ხელახლა დააგენერირე. bot-ები, რომლებიც განაცხადებს ავტომატურად ამუშავებენ, ცალკე პროექტებად არსებობს; Discord webhook-ები სერვერის სტატუსისთვის ფარავს სერვერისა და საზოგადოების დაკავშირების უფრო მსუბუქ გზებს.

პრობლემების მოგვარება#

სერვერის დახურვის შემდეგ ახალ მოთამაშეებს უარს ეუბნება. ეს whitelist მუშაობს. დაამატე ისინი /adduser-ით.

whitelist-ზე მყოფი მოთამაშე ვერ შემოდის. შეამოწმე ანგარიშის სახელი და არა პერსონაჟის სახელი. შემდეგ შეამოწმე, იყენებს თუ არა იმ Steam ანგარიშს, რომლითაც Zomboid ანგარიში შეიქმნა.

გადატვირთვის შემდეგ სერვერი ხელახლა გაიხსნა. Open /changeoption-ით შეიცვალა, მაგრამ არა ini ფაილში. ფაილში დააყენე.

ყველას ხელახლა რეგისტრაცია მოუწია. მონაცემთა ბაზა წაიშალა ან შეიცვალა, ან სერვერი სხვა -servername-ით და სხვა მონაცემთა ბაზით მუშაობს. აღადგინე ფაილი backup-იდან.

დაბანილი მოთამაშე სულ ბრუნდება. ის ახალ ანგარიშებს ქმნის. დაადე ბანი Steam ID-ს /banid-ით და დააყენე MaxAccountsPerUser.

მოთამაშე მოკვდა და ვეღარ შემოდის. DropOffWhiteListAfterDeath=true. თუ შენი წესები ამის ნებას იძლევა, ხელახლა დაამატე /addusertowhitelist-ით.

FAQ#

როგორ გადავიყვანო Project Zomboid-ის სერვერი მხოლოდ whitelist-ზე?

ini-ში დააყენე Open=false და გადატვირთე. შემოსვლა მხოლოდ უკვე არსებულ ანგარიშებს შეუძლიათ. ჯერ გაუშვი /addalltowhitelist, თუ ხალხი რეგისტრირდებოდა, სანამ ღია იყო, ახალი ხალხი კი /adduser-ით დაამატე.

სად ინახება Project Zomboid-ის ანგარიშები?

SQLite მონაცემთა ბაზაში Zomboid/db/<servername>.db-ში, ცხრილში სახელით whitelist. პერსონაჟები სამყაროს save-ში ცალკე ინახება, რის გამოც სამყაროს wipe ანგარიშებს არ შლის.

შეუძლია მოთამაშეს საკუთარი პაროლის აღდგენა?

იმ build-ებზე, რომლებიც მას შეიცავს, ჩატში /changepwd მოთამაშის საკუთარ პაროლს ცვლის, თუ მიმდინარე იცის. დავიწყებულ პაროლს ადმინი სჭირდება.

მჭირდება სერვერის პაროლი, თუ სერვერი whitelist-ზეა?

არა. Open=false უკვე ზღუდავს, ვის შეუძლია შემოსვლა. სერვერის პაროლი მეორე ბარიერს ამატებს, რაც სასარგებლოა ღია სერვერიდან დახურულზე გადასვლისას.

რატომ ვერ შედის ჩემი მეგობარი ჩემს ანგარიშზე თავისი კომპიუტერიდან?

Steam-ის სერვერებზე ანგარიშები იმ Steam ანგარიშზეა მიბმული, რომელმაც ისინი შექმნა. ეს დაცვაა გაზიარებული და მოპარული პაროლებისგან. შეუქმენი მეგობარს საკუთარი ანგარიში.

შემიძლია ჩემი მოთამაშეების სია ახალ სერვერზე გადავიტანო?

დიახ. დააკოპირე Zomboid/db/<servername>.db ახალ სერვერზე, მისი სერვერის სახელის შესაბამისად გადარქმეული, თუ ის განსხვავდება. ანგარიშები, წვდომის დონეები და ბანები მასთან ერთად გადმოვა.


კომენტარები

სრულიად ანონიმურად: ანგარიშის, ელფოსტის და cookie-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.

0/2000