مدیریت به اشتراک گذاری در ویندوز سرور
مدیریت به اشتراک گذاری در ویندوز سرور Folder Sharing
در این مقاله به مبحث مدیریت به اشتراک گذاری در ویندوز سرور که به آن foldear shearing میگویند میپردازیم.
برای Sharing روی یک فایل کلیک راست کرده و Properties میگیریم و از تب Sharing به Advance sharing میرویم.
نکته مهم: به غیر از یوزر Administrator هیچ user دیگری حق Share کردن را ندارد و هیچ کاری هم نمیتوان کرد که یک User دیگر بتواند Share کند. اگر کسی بخواهد data ای را share کند باید Admin شود. برای حل این مشکل برای دیگر کاربرها یک فولدر Share شده درست میکنیم و میگوییم هرچی میخواهند Share شود را آن جا قرار دهند.
تیک share this folder را که بزنیم فولدرshare میشود. کاربرانی که به این فولدر مراجعه میکنند تا منابع share شده را ببینند این فولدر را به اسم share name ای که بهش میدهیم خواهند دید. به صورت پیش فرض share name اسم همون فولدر است. در بخش بعدی میتوانیم ماکزیمم Concurrent، Session ای که میتواند وارد این فولدر شود را مشخص کنیم. این عدد روی ویندوز سرور 16777216 (این عدد اصلا حداکثر session ای است که میتوان به یک ویندوز سرور زد؛ یعنی بیشتر از این تعداد به هیچ سروری نمیتوان به صورت همزمان وصل شد) تا و روی ویندوز کلاینت 20 تا است.
سوال: چه دلیلی دارد که این عدد را کم بگذاریم؟ به دلایل مدیریتی از قبیل اینکه ممکن است در این پوشه ی share شده نرم افزاری وجود دارد که اگر از یک حدی بیشتر به آن وصل شوند دچار مشکل میشود پس ما روی sharing آن محدودیت ایجاد میکنیم. یا مثلا در یک پوشه فایل های حجیمی وجود دارد که همه هم آن ها را Network ای باز میکنند و ممکن است I/O سیستم کم بیاورد و … . ما این عدد را هیچوقت ست نمیکنیم و میگذاریم روی Max بماند مگر اینکه دلیلی داشته باشیم که کم شود.
چطور میتوانیم به یک فولدر Share شده دست پیدا کنیم؟ با آدرس UNC آن. ساختار آدرس UNC هم به صورت زیر است:
\\DestinationComputerName or \\Destination IP
حالا یک کلید دیگری داریم به نام Permissions که وقتی روی آن کلیک میکنیم:
اما همانطور که مشاهده میکنید permission ها خیلی کم هستند. Change معادل modify است. حالا سوال اینجاست که این Permission ها چی هستند؟ Permission هایی که قبلا خواندیم رو بهشون میگیم NTFS Permission و به این یکی Permission ها میگوییم Share Permission.این SharePermission ها کنترل میکنند افرادی که نتورکی وصل میشوند چه کسانیشون حق دارند به این فولدر دسترسی داشته باشند. اما NTFS Permission ها برای کسانی هستند که Intractively Logon میکنند. یعنی به هرکسی که نتورکی به این فولدر وصل شود این permission ها اعمال میشود. یعنی اگر پای یک سیستم بنشینید روی یک فولدری که روی درایو D هست و share شده یک permission ای دارید و اگر به همان فولدر به صورت نتورکی وصل شوید یک permission دیگر. سوالی که پیش می آید این است که چه دلیلی وجود دارد که دسترسی ها را اینجوری دو لایه کردند؟ تصور کنید علی قرار است به یک فولدری دسترسی داشته باشد اما زمانی که اومد تو شرکت و پشت سیستم نشست و قرار نیست از طریق نتورک به یک سری اسناد دسترسی داشته باشد (بعد امنیتی). یا مثلا علی روی این فولدر زمانی که پشت سیستم نشسته است دسترسی write دارد اما زمانی که نتورکی وصل میشود دسترسی read دارد زیرا ما نمیدانیم اینی که الان داره وصل میشه واقعا خوده علی است. شاید username و password لو رفته و مثلا امیر داره به جای علی وارد میشود. پس باید جلویش را بگیریم که مثلا delete نکند.
نکته ی مهمی که تا اینجا فهمیدیم این است که اگر یک User بخواهد به صورت Network Base به یک فولدر share شده دسترسی داشته باشد باید از دوتا سد بگذرد. سد Share Permission و NTFS Permission. یعنی اگر باز share permission را کامل داشته باشد اما NTFS Permission نداشته باشد نمیتواند به فولدر دسترسی داشته باشد.
دستور زیر شما را به پنجره ای میبرد که لیست کارت شبکه ها را میبینید:
تصور کنید دو تا سیستم وجود دارد یکی سیستم A با IP ی 192.168.1.1 و دیگری سیستم B که روی آن یک فولدر share شده وجود دارد و A میخواهد به آن دسترسی داشته باشد با IP ی 192.168.1.2 . وقتی A میخواهد به B وصل شود یک Connection ای میزند که به جنس این Connection گفته میشود SMB. این SMB پروتکلی است که وقتی میخواهید از پای یک سیستم به یک سیستم دیگر وصل شوید و منابع share شده ی آن را ببینید و حمل و نقل اطلاعاتی را انجام میدهد این کار را میکند.
پس A تا اینجا یک Connection، SMB به B میزند و B که نمیخواهد منابع Share شده اش را همه ببینند میگه تو کی هستی و باید احراز هویت بشی. این A باید کجا احراز هویت شود؟ باید در مقصد یعنی سیستم B احراز هویت شود. یک User اصطلاحا با Credential (ترکیب Username و Password)اش Authenticate میشود. حالا فکر کنید ما یوزرهای علی و محمد را روی A داریم و مثلا حسن و حسین هم روی B. ما که نمیتوانیم credential علی یا محمد رو بزنیم چون روی B نیستند که . حالا چه username و password ای را باید بزنیم؟ هر username و password ای که روی B باشد را داشته باشیم و بزنیم وارد میشویم. حالا ممکن است روی یک فولدر کلیک کنیم و بگه access is denied. در اینجا میگن طرف Authorize نشده. پس اینکه حق دسترسی رو داشته باشیم میشود Authorization و احراز هویت میشود Authentication. حق رو در اینجا با Permission مشخص کردیم.
به MMC میرویم و Snap in به نام Shared Folder را Add میکنیم. مشاهده میکنید که سه Section مهم دارد که بررسی میکنیم ببینیم چی هستند. Share شامل تمامی Data هایی که شما روی سیستمتان Share کردید است. برای اینکه بفهمیم چه فولدرهایی در کل سیستم share شده است باید به این قسمت نگاه کنیم. خب ممکن است این مطلب پیش بیاید که بگید با UNC به کامپیوتر مقصد میرویم و میبینیم که چه چیزهایی share شده است. اما ما یک share ای داریم به نام Hidden Share که فولدرهایی که به صورت Hidden ، Share میشوند را در آنجا نمایش نمیدهد و برای دیدن آنها باید حتما به اینجا مراجعه کنیم.
در این قسمت میتوانیم ضمن دیدن تمام فایل های Share شده آن را هم مدیریت بکنیم. برای مثال روی هرکدام میتوانیم کلیک راست کنیم و Stop Sharing کنیم. جالب است بدانید که با همین کنسول میتوانیم share کنیم. در صفحه کلیک راست میکنیم:
در اینجا فولدری را که میخواهیم Share کنیم را Browse میکنیم. در مرحله ی بعد برای آن Share name را انتخاب میکنیم و سپس در مرحله ی بعد برای آن Share Permission را مشخص میکنیم:
حالت Command ای به صورت زیر میشود:
برای رسیدن به کنسول Shared Folder داریم:
سوالی که پیش می آید این است که مثلا فولدر آخر را در شکل زیر ما share کردیم اما فولدر های بالا را ما share نکردیم و این ها چی هستند؟ اصلا علامت $ چیست؟ |
کمی قبل گفتیم که ما میتوانیم یک فولدر را Share کنیم اما hidden آن را share کنیم. فولدری که hidden ، share میشود برای افرادی که UNC Path میزنند به سیستم متصل میشوند قابل دیدن نخواهد بود.
- برای اینکه ما یک فولدر را Hidden Share کنیم کافی است آخر Share Name آن $ بگذاریم.
برای مثال ما میخواهیم یک فولدر به نام secret را به صورت hidden، share کنیم:
و میتوانیم به جای Everyone که Read داشته باشند فقط افرادی که میخواهیم را به طور خاص اجازه بدهیم تا دسترسی پیدا بکنند. حالا اگر خودمان را به صورت \\127.0.0.1 ، Browse کنیم این را نمیبینیم.
به این دلیل فولدر را به صورت Hidden Share میکنیم تا در چشم همه نباشد. چون شاید اگر در چشم بقیه باشد و نتوانند به آن دسترسی پیدا کنند کنجکاو شوند که این فایل چیه!
حالا سوال اینجاست که چه طوری به فولدری که Hidden Share شده دسترسی داشته باشیم؟ به این صورت کار میکنیم که انتهای UNC Path یک \ میگذاریم و نام آن فولدر را به همراه $ میگذاریم.
مزیت اش به این است که شما میتوانید یک سری فولدرهایی که به یک اسم خاص که فقط خودمان میدانیم به صورت Hidden Share روی یک سری سرور خاص داشته باشید.
یک سری فولدر و Data به صورت اتوماتیک روی سیستم Share هستند به نام Administrative Share. این Administrative Share ها فقط در دسترس Admin هستند و افراد دیگر به آنها دسترسی ندارند. مثل تمامی Drive ها. به صورت پیش فرض تمامی درایو های یک کامپیوتر Share است. اما Hidden Share است و جزء Administrative Share ها است. یعنی فقط ادمین به آنها دسترسی دارد. یعنی ادمین ها میتوانند به این شکل به تمامی درایو های User ها دسترسی داشته باشند.
این قضیه ریسک امنیتی خاصی ندارند ولی شاید شما به هر دلیلی بخواهید که درایو هاتون Shareئه ادمینی نباشند. برای اینکار این ها را از کنسول Shared Folder، آنها را Stop Sharing میکنیم. اما جالبه بدانید که وقتی سیستم را Restart کنید و دوباره بیاد بالا این درایو ها همه دوباره share میشوند. برای اینکه این اتفاق نیوفتد میتوانید به Registery بروید و از طریق Registery بگویید که دیگر این ها Share نشوند. Registery آن هم از google پیدا میکنید.
- Admin$ شما را وارد فولدر ویندوز میکند:
پس پوشه Admin$ را هم فهمیدیم چیه.
یک فولدر دیگر داشتیم به نام IPC$. یعنی Inter Protocol Comminucation. یعنی ما از پای کامپیوتر A دوتا بک اسلش میزنیم و میگیم کامپیوتر B. این میشود Inter Comminucation. این IPC است که امکان چنین ارتباطی را به وجود می آورد. جالب توجه است بدانید که IPC$ یک فولدر share شده نیست. یعنی ارتباط Share ای از طریق IPC کامپیوتر A و IPC کامپیوتر B ارتباط برقرار میکنند و امکان Stop کردن این هم اصلا وجود ندارد. در حقیقت IPC یک جزء سیستمی است و در حقیقت قبلا گفتیم برای اینکه دوتا سیستم به هم وصل شوند و منابع share شده را ببینند پروتکلش SMB است و پورت آن 445 است.
حال بخش های دیگر کنسول Shared Folder را بررسی میکنیم.
بخش دیگر آن Session است. در Session به شما نشان میدهد که چه کسانی الان به کامپیوتر شما Session ئه File Sharing ای زدند و دارن از منابع share شده ما استفاده میکنند.
در شکل مشاهده میکنید که به ما میگوید کاربر از پای چه کامپیوتری وصل شده است. در صورتی که میخواهید بفهمید IP ی آن ها چیه میتوانید اسمشون رو ping کنید. Idle Time داره میگه چند دقیقه است که بیکار است. Open File میگوید چندتا File را باز کرده است.
پوشه Open File به ما میگوید که چه فایل هایی توسط چه کسی باز شده است.
که ما میتوانیم Session افراد را از اینجا Close کنیم. با این کار هم پنجره های باز شده ی طرف بسته نخواهد شد و با یک بار کلیک کردن مجدد دوباره برایش session جدید ساخته میشود و وصل میشود. اما وقتی ما از طرف Permission را بگیریم و close Session اش کنیم وقتی میخواهد دوباره وصل شود سیستم اجازه نمیدهد.
یکی از قابلیت های کنسول این است که شما یک کنسول را میتوانید وصل بکنید به کنسول یک کامپیوتر دیگر. یعنی ما پای کامپیوتر A نشستیم ولی میگوییم fsmgmt.msc ئه کامپیوتر B را میخواهیم. برای این کار:
راه دیگر:
از MMC میرویم میگوییم Shared Folder را میخواهیم اما نه Shared Folder ئه Local رو:
اما یک نکته ای وجود دارد. در حال حاضر پسورد ادمین سیستم A با پسورد ادمین سیستم B متفاوت است و این یعنی امکان SSPI Logon وجود ندارد و باید احراز هویت انجام شود و اگر به این روش کار بکنیم با Error مواجه میشویم. بنابراین برای حل این مشکل دو راه داریم: یا SSPI Logon میکنیم. یا یک trick به کار میبریم. ابتدا میریم یکبار به سیستم مقصد وصل میشویم.
در اینجا وقتی میخواهیم وصل شویم Username و Password را باید بزنیم. اصطلاحا Trust Relationship بین کامپیوتر ما و کامپیوتر مقصد به وجود می آید. حالا وقتی این کار را کردیم میتوانیم به راحتی با دو روشی که قبل گفتیم به کنسول کامپیوتر مقصد وصل شویم.
بنابراین برای اینکه به کنسول یک کامپیوتر دیگر وصل شویم باید یکبار به آن وصل شویم و بعد از SSPI استفاده کند. پس به شرط اینک دسترسی ادمینی داشته باشیم میتوانیم کنسول یک طرف را به کنسول یک طرف دیگر وصل بکنیم.
ما این کار را میتوانیم با دیگر snap in ها نیز انجام دهیم. برای مثال برای Local Users and Groups:
حالا ممکن است بعضی از این snap in ها باز نشوند و error بدهند ولی راه داریم برای آنها. به google مراجعه کنید.
برای مثال یک فولدر را میخواهیم share کنیم. وقتی گزینه Apply را میزنیم یک دکمه Add زیر آن روشن میشود. این به این معنی است که شما میتوانید یک فولدر را چندبار Share کنید.
وقتی روی Add کلیک میکنیم:
که جداگانه برای این اسم هم میتوانیم Permission ست بکنیم. ما فولدر admin را سه بار share کردیم. حالا خودمان را browse میکنیم:
ما میدانیم که هر سه تایی که میبینید یکی هستند. سوالی که پیش می آید این است که چه دلیلی دارد که یک فولدر چندبار Share بشود؟ تصور کنید ما یک فولدری داریم به نام ACC که در آن یک فایل به نام Acc.exe هست و افرادی که میخواهند برنامه مالی را run کنند میان به سرور وصل میشوند و بعد این فایل را از توی فولدری که share شده run میکنند. بعد به این نتیجه رسیدند که 10 نفر بیشتر نباید همزمان این برنامه را اجرا کنند چون برنامه دچار اشکال میشود. پس در اینجا Maximum Cuncurrent Session را روی 10 گذاشتیم. دوتا گروه کاری وجود دارند که باید وارد این برنامه بشوند و آن را اجرا بکنند (مالی 1 و مالی 2). تعداد افراد مالی 1، 20 نفر است. افراد گروه 2 بعد از مدتی شاکی میشوند و میگویند محدودیت روی فایل 10 نفر است و مثلا 10 نفر آن از گروه مالی 1 وصل میشوند و وقتی افراد از مالی 2 میخواهند وصل شوند دیگر نمیتوانند. بعد میبینیم مثلا افراد مالی 2 ، 3 نفر است. در اینجا میایم ACC را دوبار share میکنیم. مثلا ACC1 و ACC2 . ACC1 را اینجوری برایش Permission ست میکنیم فقط افراد مالی 1 به آن وصل شوند و ماکزیمم افراد را روی 7 نفر میگذاریم و برای ACC2 هم به این شکل Permission میدهیم که فقط مالی 2 بتوانند وصل شوند و ماکزیمم افراد را روی مثلا 3 نفر میگذاریم. باز ماکزیمم session روی 10 نفر است ولی اینطوری گفتیم از هر گروه چند نفر بیان وصل شوند.
از کل مطالب Sharing فقط گزینه Caching میماند که این گزینه برای این است که میتوانید روی بعضی از فایل هایی که میخواهید Caching را فعال کنید و زمانی که ارتباطتان با شبکه قطع میشود چون آن فایل روی مثلا لپتاپ شما cache شده برایتان باز میشود و هر کاری میخواهید میکنید و بعدا که دوباره به شبکه متصل شوید تغییرات با مثلا File Server ، Sync میشود.
Mapped Drive:
شما میتوانید یک فولدری که share شده و معمولا خیلی با آن کار میکنید را مثل یک Drive مجازی در My Pc اضافه بکنید و هروقت روی آن کلیک کردید شما را به آن فولدر متصل بکند. این کار خیلی ساده است. به پوشه ی Share شده مورد نظر میرویم:
میگه با چه Drive Letter ای آن را Map میکنید؟
تیک اول میگوید هر دفعه که sign in کردم سریع بیا به اینجا (فولدر share شده) وصل شو. تیک دوم هم میگوید هروقت خواستی بری وصل شی با یک User دیگر برو. اگر تیک دوم را بزنیم و Finish کنیم میگه اون یکی Username و Password ای که باید باهاش وصل شم رو بده.
به صورت Command prompt هم میتوانیم به آن متصل شویم:
حالا وقتی با یک User دیگر میگوییم وصل شود و وقتی یکبار sign out کنید و دوباره sign in کنید مشاهده میکنید که دوباره باید Username و Password بزنید چون ارتباط قطع شده است. برای حل این مشکل:
به Control Panel میرویم و از آنجا به Credential Manager میرویم. به Windows Credential میرویم:
و به Add Windows Credential میرویم. در اینجا میگوییم هروقت خواستی به این آدرس وصل بشی Username و Password اش این است و بدین ترتیب دیگر هرفعه از ما سوال نخواهد پرسید.
در حقیقت عمل SSPI انجام نمیشود چون یکبار Username و Password را بهش دادیم.
حال میخواهیم عمل Mapped Drive را Command Prompt base انجام دهیم:
حالا به MyPC که برویم آن را مشاهده میکنیم:
روی آن که کلیک کنیم به درایو C کامپیوتر 192.168.58.101 میشویم. یا هر چیزی که میخواهیم میتوانیم به این صورت انجام دهیم.
- User عادی در Network نباید حق زدن دوتا بک اسلش و جلوش اسم یا IP یک کامپیوتر را داشته باشد تا بتواند به آن وصل شود. یعنی ما به عنوان ادمین نباید این اجازه را بهش بدهیم. ما به عنوان Administrator برای User ها اون فولدرهایی که کار دارند را (از هرجایی که هست) همیشه Mapped Drive شان را برایشان درست میکنیم.
الان که NTFS Permission بلدیم و Share Permission هم بلدیم میرویم برای User دوتا فولدر Sahre شده درست میکنیم. معمولا به یکیش میگویند Home Drive که Private خود User است. Home Drive یک فولدر Share شده روی File Server است که فقط خود User به آن دسترسی دارد. به کاربر میگوییم اطلاعات secret و چیزهایی که دیگران نباید ببینند رو در اینجا بگذار. یک فولدر Share شده دیگر هم برایش میگذاریم تا چیزهایی که دیگران هم میتوانند ببینند را در آنجا بگذارد. یک پوشه دیگه هم میتوانیم بگذاریم مثلا به نام File Server که میتواند تمام فایل های یک سرور را ببیند.
Search ای که در پنجره ی Network انجام میشود یک Search با پروتکل NetBIOS است. از آنجایی که دیگر NetBIOS را نداریم مایکروسافت یک فرآیند دیگری را انجام میدهد به نام NetBios Over TCP/IP که مثل همان است.
کاری که در اینجا انجام میشود برای Search که کامپیوترهای شبکه را پیدا کند توسط پکت های Broadcast انجام میشود. وقتی شما شبکه تون را VLAN بندی کرده باشید دیگر این شرایط کار نمیکند و فقط PC هایی که در Broadcast Domain هم باشند را نشان میدهد.
نکته ی بعدی که وجود دارد این است که تنظیمات Sharing باید از صفحه ی Change Advance Sharing Setting در Network and Sharing Center نیز تنظیم شود که از نوشتن این مطالب خودداری میکنیم.
pingback تفاوت بین ReFS و NTFS - گروه آموزشی AdminPro