création gestion des partage partie cmd
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
<h1 align="center">Gestion des droits d'accès sous Windows</h1>
|
<h1 align="center">Gestion des droits d'accès sous Windows</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
# **Gestion des disques via cmd <img src=https://cdn.iconscout.com/icon/premium/png-256-thumb/command-prompt-3477885-2910207.png height="50px" />**
|
# **Gestion des droits via cmd <img src=https://cdn.iconscout.com/icon/premium/png-256-thumb/command-prompt-3477885-2910207.png height="50px" />**
|
||||||
## afficher des droits d’un dossier / fichier
|
## afficher des droits d’un dossier / fichier
|
||||||
```cmd
|
```cmd
|
||||||
icacls <chemin du fishier/dossier>
|
icacls <chemin du fishier/dossier>
|
||||||
@@ -56,7 +56,7 @@ icacls F:\Téléchargement /deny Frederic:(D,RX)
|
|||||||
> D - delete access
|
> D - delete access
|
||||||
---
|
---
|
||||||
|
|
||||||
# **Gestion des Powershell via cmd <img src=https://upload.wikimedia.org/wikipedia/commons/a/af/PowerShell_Core_6.0_icon.png height="50px" />**
|
# **Gestion des droits via Powershell <img src=https://upload.wikimedia.org/wikipedia/commons/a/af/PowerShell_Core_6.0_icon.png height="50px" />**
|
||||||
|
|
||||||
## afficher des droits d’un dossier / fichier
|
## afficher des droits d’un dossier / fichier
|
||||||
```powershell
|
```powershell
|
||||||
|
|||||||
@@ -1,4 +1,243 @@
|
|||||||
<details>
|
<div align="center">
|
||||||
<summary>## Obtenir des informations</summary>
|
<p align="center">
|
||||||
Voici le contenu du menu déroulant.
|
<a href="#">
|
||||||
</details>
|
<img src="https://memos.nadus.fr/wp-content/uploads/2018/05/le-partage-de-fichiers-icone-psd_30-2568.jpg" height="100px" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="border: 2px solid #d1d5db; padding: 20px; border-radius: 8px; background-color: #f9fafb;">
|
||||||
|
<h1 align="center">Gestion des partages sous Windows</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
# Gestion des accès au partage
|
||||||
|
|
||||||
|
1. lors de la mise en place du partage il faut ne laisser que les “utilisateur authentifiés” (et les utilisateurs systèmes (admin + système)
|
||||||
|
2. Accorder le contrôle totale aux utilisateurs identifiés
|
||||||
|
3. Les autorisations d’ccès seront gérées par les droits NTFS
|
||||||
|
|
||||||
|
# **Gestion des partages via cmd <img src=https://cdn.iconscout.com/icon/premium/png-256-thumb/command-prompt-3477885-2910207.png height="50px" />**
|
||||||
|
## Définir un partage
|
||||||
|
```cmd
|
||||||
|
net share <Nom du partage>=<chemin/du/dossier/partagé>
|
||||||
|
```
|
||||||
|
- exemple:
|
||||||
|
```cmd
|
||||||
|
net share MonPartage=c:\share
|
||||||
|
```
|
||||||
|
> 💡 On peut ajouter un commentaire au partage avec l'option /Remark
|
||||||
|
---
|
||||||
|
## ajouter/modifier les droits d’un partage
|
||||||
|
- L’option /Grant permet d’indiquer les autorisations sur le partage
|
||||||
|
```cmd
|
||||||
|
net share <Nom du partage>=<chemin/du/dossier/partagé> /GRANT:<User>,<type de droit>
|
||||||
|
```
|
||||||
|
- exemple:
|
||||||
|
```cmd
|
||||||
|
net share MonPartage=c:\share /GRANT:Ichbine,Full
|
||||||
|
```
|
||||||
|
> 💡 les droits sont les suivants:
|
||||||
|
>READ : pour donner accès qu’en lecture sur le partage réseau
|
||||||
|
>CHANGE : pour donner les autorisations en modifications
|
||||||
|
>FULL : donne le contrôle total
|
||||||
|
---
|
||||||
|
|
||||||
|
# **Gestion des partage avec PowerShell <img src="https://upload.wikimedia.org/wikipedia/commons/a/af/PowerShell_Core_6.0_icon.png" height="50px" />**
|
||||||
|
|
||||||
|
- Déclarer un partage
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
New-SmbShare -Name "nom du partage" -Path "chemin vers le dossier de partage" -FullAccess "groupe d'utilisateur" -ReadAccess "groupe d'utilisateur"
|
||||||
|
#exemple
|
||||||
|
New-SmbShare -Name Partage -Path "C:\Partage\" -FullAccess "Administrateurs" -ReadAccess "Utilisateurs"
|
||||||
|
```
|
||||||
|
|
||||||
|
- consulter les droits d’un partage
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Get-SmbShareAccess -Name "nom du partage"
|
||||||
|
#exemple
|
||||||
|
Get-SmbShareAccess -Name "Partage"
|
||||||
|
```
|
||||||
|
|
||||||
|
- Gérer les droits NTFS sur le partage
|
||||||
|
|
||||||
|
<aside>
|
||||||
|
💡 on peut avoir besoin d’installer un module complémentaire
|
||||||
|
|
||||||
|
`Install-Module NTFSSecurity`
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
- consulter les droits NTFS du partage
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Get-NTFSAccess -Path "chemin vers le dossier de partage"
|
||||||
|
#exemple
|
||||||
|
Get-NTFSAccess -Path "C:\Partage"
|
||||||
|
```
|
||||||
|
|
||||||
|
<aside>
|
||||||
|
💡 types de droits:
|
||||||
|
|
||||||
|
- **FullControl**
|
||||||
|
- **ReadAndExecute**
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
- Ajouter des droits NTFS
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Add-NTFSAccess -Path "chemin vers le dossier de partage" -Account "compte dont on veut vérifier les droits" -AccessRights "type de droits"
|
||||||
|
#exemple
|
||||||
|
Add-NTFSAccess -Path "C:\Partage\" -Account "florian@it-connect.local" -AccessRights Modify
|
||||||
|
```
|
||||||
|
|
||||||
|
- Enlever des droits NTFS
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Remove-NTFSAccess -Path "chemin vers le dossier de partage" -Account "compte dont on veut vérifier les droits" -AccessRights "type de droits"
|
||||||
|
#exemple
|
||||||
|
Remove-NTFSAccess -Path "C:\Partage\" -Account "florian@it-connect.local" -AccessRights Modify
|
||||||
|
```
|
||||||
|
|
||||||
|
- Configurer le partage
|
||||||
|
|
||||||
|
<aside>
|
||||||
|
💡 types de droits avec le paramètre -Accessright
|
||||||
|
|
||||||
|
- **Full**
|
||||||
|
- **Read**
|
||||||
|
- **Change**
|
||||||
|
- **Custom**
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
- consulter les droits de Partage
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Get-SmbShareAccess -Name "chemin vers le dossier de partage" -AccountName "compte dont on veut vérifier les droits"
|
||||||
|
#exemple
|
||||||
|
Get-SmbShareAccess -Name "C:\Partage\" -AccountName "florian@it-connect.local"
|
||||||
|
```
|
||||||
|
|
||||||
|
- ajouter des droits sur le partage
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Grant-SmbShareAccess -Name "chemin vers le dossier de partage" -AccountName "compte dont on veut vérifier les droits" -AccessRight "type de droit" -Force #permet de ne pas demander de confirmation
|
||||||
|
#exemple
|
||||||
|
Grant-SmbShareAccess -Name "Partage" -AccountName "florian@it-connect.local" -AccessRight Read -Force
|
||||||
|
```
|
||||||
|
|
||||||
|
- supprimer des droits sur le partage
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Revoke-SmbShareAccess -Name "chemin vers le dossier de partage" -AccountName "compte dont on veut vérifier les droits" -Force #permet de ne pas demander de confirmation
|
||||||
|
#exemple
|
||||||
|
Revoke-SmbShareAccess -Name "Partage" -AccountName "florian@it-connect.local" -Force
|
||||||
|
```
|
||||||
|
|
||||||
|
- Bloquer l’accès à un partage
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Bloke-SmbShareAccess -Name "chemin vers le dossier de partage" -AccountName "compte dont on veut vérifier les droits" -Force #permet de ne pas demander de confirmation
|
||||||
|
#exemple
|
||||||
|
Bloke-SmbShareAccess -Name "Partage" -AccountName "florian@it-connect.local" -Force
|
||||||
|
|
||||||
|
#N.B: on peut débloquer en changeant Bloke par Unbloke
|
||||||
|
```
|
||||||
|
|
||||||
|
- Script complet
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
param (
|
||||||
|
[string]$FolderPath,
|
||||||
|
[string]$FolderName,
|
||||||
|
[string]$share
|
||||||
|
)
|
||||||
|
|
||||||
|
# Importer le module Active Directory
|
||||||
|
Import-Module ActiveDirectory
|
||||||
|
#Install-Module NTFSSecurity
|
||||||
|
Import-Module NTFSSecurity
|
||||||
|
|
||||||
|
# Définir les noms des groupes
|
||||||
|
$domain = (Get-ADDomain).DNSRoot
|
||||||
|
$groupPrefix = "DL-$FolderName"
|
||||||
|
|
||||||
|
$groups = @{
|
||||||
|
"Refus" = "$groupPrefix-R"
|
||||||
|
"ControleTotal" = "$groupPrefix-CT"
|
||||||
|
"Ecriture" = "$groupPrefix-E"
|
||||||
|
"Lecture" = "$groupPrefix-L"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Créer les groupes dans Active Directory
|
||||||
|
foreach ($key in $groups.Keys) {
|
||||||
|
$groupName = $groups[$key]
|
||||||
|
$PathDL = "OU=03-Ressources,OU=22-Services,OU=MT,DC=mt,DC=msprsx,DC=eni"
|
||||||
|
if (-Not (Get-ADGroup -Filter { Name -eq $groupName })) {
|
||||||
|
New-ADGroup -Name $groupName -SamAccountName $groupName -GroupScope DomainLocal -Path $PathDL
|
||||||
|
Write-Host "Created AD Group: $groupName"
|
||||||
|
} else {
|
||||||
|
Write-Host "AD Group already exists: $groupName"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction pour partager un dossier
|
||||||
|
function Share-Folder {
|
||||||
|
if (-Not (Get-SmbShare -Name $share -ErrorAction SilentlyContinue)) {
|
||||||
|
New-SmbShare -Name $share -Path $folderPath
|
||||||
|
$droits_partage = Get-SmbShareAccess -Name $share
|
||||||
|
foreach ($compte in $droits_partage){
|
||||||
|
$compte_list = $compte.AccountName
|
||||||
|
if($compte_list -notlike "Utilisateurs du domaine"){
|
||||||
|
Revoke-SmbShareAccess -AccountName $compte_list -Name $share -Force
|
||||||
|
Grant-SmbShareAccess -Name $share -AccountName "$domain\Utilisateurs du domaine" -AccessRight Full -Force
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Host "Created share: $share"
|
||||||
|
} else {
|
||||||
|
Write-Host "Share already exists: $share"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction gestion des droits NTFS dossier partagé
|
||||||
|
function Permission-Dossier {
|
||||||
|
# Ajout des groupes DL au permission du dossier
|
||||||
|
foreach ($key in $groups.Keys) {
|
||||||
|
$groupName = $groups[$key]
|
||||||
|
if ($groupName -like "*-CT"){
|
||||||
|
Add-NTFSAccess -Path $folderPath -Account "$groupName@$domain" -AccessRights FullControl
|
||||||
|
} elseif ($groupName -like "*-E"){
|
||||||
|
Add-NTFSAccess -Path $folderPath -Account "$groupName@$domain" -AccessRights ReadAndExecute
|
||||||
|
} elseif ($groupName -like "*-L"){
|
||||||
|
Add-NTFSAccess -Path $folderPath -Account "$groupName@$domain" -AccessRights Read
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Obtenir la liste des comptes autorisés et leurs permissions sur le chemin spécifié
|
||||||
|
$compt_autor = Get-NTFSAccess -Path $folderPath
|
||||||
|
|
||||||
|
# Itérer à travers chaque compte autorisé
|
||||||
|
foreach ($compt in $compt_autor) {
|
||||||
|
$Account = $compt.Account
|
||||||
|
$AccessRights = $compt.AccessRights
|
||||||
|
|
||||||
|
# Afficher le nom du compte
|
||||||
|
Write-Output "Traitement du compte : $Account"
|
||||||
|
|
||||||
|
# Condition pour vérifier si le compte ne contient pas "$share"
|
||||||
|
if ($Account -notlike "*$share*") {
|
||||||
|
# Retirer les permissions pour le compte
|
||||||
|
Write-Output "Retrait des permissions pour le compte : $Account"
|
||||||
|
Remove-NTFSAccess -Path $folderPath -Account $Account -AccessRights $AccessRights
|
||||||
|
} else {
|
||||||
|
Write-Output "Le compte $Account contient 'DATA' et ne sera pas modifié."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Share-Folder
|
||||||
|
Permission-Dossier
|
||||||
|
|
||||||
|
Write-Host "Script execution completed."
|
||||||
|
|
||||||
|
```
|
||||||
@@ -0,0 +1,161 @@
|
|||||||
|
# Syntaxe Markdown
|
||||||
|
|
||||||
|
## Titres
|
||||||
|
|
||||||
|
# Titre de niveau 1
|
||||||
|
## Titre de niveau 2
|
||||||
|
### Titre de niveau 3
|
||||||
|
#### Titre de niveau 4
|
||||||
|
##### Titre de niveau 5
|
||||||
|
###### Titre de niveau 6
|
||||||
|
|
||||||
|
## Texte en gras et en italique
|
||||||
|
|
||||||
|
**Texte en gras**
|
||||||
|
*Texte en italique*
|
||||||
|
***Texte en gras et en italique***
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>titre menu déroulant</summary>
|
||||||
|
Voici le contenu du menu déroulant.
|
||||||
|
</details>
|
||||||
|
|
||||||
|
## Listes
|
||||||
|
|
||||||
|
### Liste non ordonnée
|
||||||
|
|
||||||
|
- Élément 1
|
||||||
|
- Élément 2
|
||||||
|
- Sous-élément 2.1
|
||||||
|
- Sous-élément 2.2
|
||||||
|
|
||||||
|
### Liste ordonnée
|
||||||
|
|
||||||
|
1. Élément 1
|
||||||
|
2. Élément 2
|
||||||
|
1. Sous-élément 2.1
|
||||||
|
2. Sous-élément 2.2
|
||||||
|
|
||||||
|
## Liens et images
|
||||||
|
|
||||||
|
[Texte du lien](https://exemple.com)
|
||||||
|

|
||||||
|
|
||||||
|
## Blocs de code
|
||||||
|
|
||||||
|
```python
|
||||||
|
print("Hello, world!")
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo "Bonjour!"
|
||||||
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
console.log("Hello, world!");
|
||||||
|
```
|
||||||
|
|
||||||
|
```html
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Exemple</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Hello, world!</h1>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|
||||||
|
```css
|
||||||
|
body {
|
||||||
|
background-color: lightblue;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message": "Hello, world!"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<message>Hello, world!</message>
|
||||||
|
```
|
||||||
|
|
||||||
|
```sql
|
||||||
|
SELECT * FROM utilisateurs;
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
int main() {
|
||||||
|
printf("Hello, world!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
int main() {
|
||||||
|
cout << "Hello, world!" << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```java
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println("Hello, world!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
echo "Hello, world!";
|
||||||
|
?>
|
||||||
|
```
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
puts "Hello, world!"
|
||||||
|
```
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
import "fmt"
|
||||||
|
func main() {
|
||||||
|
fmt.Println("Hello, world!")
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```rust
|
||||||
|
fn main() {
|
||||||
|
println!("Hello, world!");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```perl
|
||||||
|
print "Hello, world!\n";
|
||||||
|
```
|
||||||
|
|
||||||
|
## Citations
|
||||||
|
|
||||||
|
> Ceci est une citation.
|
||||||
|
|
||||||
|
## Tableaux
|
||||||
|
|
||||||
|
| Colonne 1 | Colonne 2 | Colonne 3 |
|
||||||
|
|-----------|-----------|-----------|
|
||||||
|
| Valeur 1 | Valeur 2 | Valeur 3 |
|
||||||
|
| Valeur 4 | Valeur 5 | Valeur 6 |
|
||||||
|
|
||||||
|
## Séparateurs
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cases à cocher
|
||||||
|
|
||||||
|
- [ ] Tâche à faire
|
||||||
|
- [x] Tâche complétée
|
||||||
|
|||||||
Reference in New Issue
Block a user