Mes amis continuent à supprimer mes fichiers en utilisant le terminal. Alors, aidez-moi en expliquant comment créer un mot de passe pour la commande rm
.
Il n’ya pas de moyen facile de définir un tel mot de passe sur la commande rm
elle-même, sans trop de piratage de code qui casserait probablement des choses comme apt-get
installer des paquets et supprimer des fichiers. le mot de passe mille fois, ou potentiellement perturber l'accès à la commande aux personnes qui en ont besoin (comme vous, pour supprimer vos propres fichiers). Vous pouvez en quelque sorte faire cela en ayant plusieurs comptes d'utilisateurs et plusieurs ensembles d'autorisations d'accès, et en limitant l'accès à différentes sections de données, telles que votre répertoire personnel, afin qu'elles ne puissent pas y accéder.
(L’autre option concerne les comptes utilisateurs individuels pour chaque utilisateur, puis les listes de contrôle d’accès, comme indiqué dans la autre réponse qui a été publié par Videonauth )
Voici le problème principal: vous laissez vos amis utiliser votre système. Cela a des conséquences sur la sécurité - le concept de "toute personne ayant un accès physique à la boîte sera capable de contrôler le système et d'effectuer des tâches". , c’est pourquoi vous ne partagez pas l’accès aux systèmes physiques, sauf avec le personnel autorisé de confiance.
Le seul moyen vraiment de le faire est de ne pas donner à vos amis l’accès à votre ordinateur et de leur donner un "système" invité "dédié" qu'ils peuvent utiliser, que vous ne vous souciez pas vraiment des fichiers sur autant. C'est le moyen le plus sûr de garder vos fichiers en sécurité.
Bien sûr, si ce n’est pas une option, votre seule option vraiment sûre consiste à configurer plusieurs comptes d’utilisateur, un pour chaque utilisateur, avec des dossiers d’accueil différents, et ne leur permet pas d’accéder à votre propre répertoire les répertoires personnels des autres utilisateurs. Et puis gardez tout ce que vous ne voulez pas qu'ils touchent dans votre répertoire personnel, et ne leur donnez pas sudo
access, le mot de passe root
ou partagez votre mot de passe avec eux.
Voici comment vous allez faire ça:
Disons que mon nom est "Foo" et que je souhaite que l’utilisateur "Bar", un ami, utilise mon système mais n’accède pas à mes fichiers. La première étape consiste à refuser l’accès à toute personne autre que moi à mon répertoire personnel. Ceci permet aux autres utilisateurs de ne pas supprimer vos fichiers, mais aussi d’empêcher les autres utilisateurs de fouiner dans votre répertoire personnel et de voir quels types d’informations vous avez dans votre répertoire personnel:
chmod 750 /home/Foo
La deuxième étape consiste à créer un compte utilisateur pour "Bar" (ne tapez PAS ce qui est indiqué entre parenthèses ci-dessous, mais uniquement à titre d’information). De cette façon, nous pouvons nous assurer qu’il dispose de ses propres droits d’accès:
sudo adduser --create-home --user-group --shell /bin/bash Bar
sudo passwd Bar
(set a temporary password - you will not see characters as you type though)
La troisième étape, third , consiste à restreindre également leur répertoire personnel, de sorte que personne ne puisse y accéder. Cela ne fait que rendre les choses égales.
sudo chmod 750 /home/Bar
Lavez-vous les mains, rincez-les bien, puis répétez ces étapes pour le nombre d'utilisateurs que vous avez sur le système. Ils ne pourront pas accéder à vos fichiers et, puisque vous ne leur accorderez pas de privilèges d’administrateur, ils ne pourront pas supprimer vos fichiers sans essayer de le faire à sudo
. ne peut pas toucher vos affaires. Et ils ne pourront pas non plus voir vos fichiers sans devenir superutilisateur, ce qui ne se produira pas ici.
Rappelez-vous toujours ceci: En donnant à quelqu'un un accès physique à la machine ou un accès en général, vous allez mettre vos fichiers et vos données en danger. C’est un fait largement accepté dans le monde de la sécurité informatique et qui continue de s’appliquer. Donner à vos amis l’accès à votre ordinateur mettra toujours vos données en péril, alors donnez-leur leur propre système, ou ne leur donnez simplement pas accès à votre machine .
Juste une note sur le chiffrement de disque
Bien que le cryptage sur disque fonctionne bien pour protéger vos données d'un tiers, il existe des limitations.
Bien que le chiffrement de disque ne résout pas ces problèmes, il met des couches supplémentaires de maux de tête pour un acteur de menace.Une personne mal intentionnée pourrait abandonner si elle est cryptée, ou bien elle pourrait vous torturer (file d'attente obligatoire BD de sécurité XKCD ).
Par conséquent, si votre système est crypté, mais que vous laissez les autres utilisateurs l’utiliser, soit ils ont un mot de passe à décrypter, soit vous laissez votre ordinateur portable déchiffré pour qu’ils puissent accéder à SSH ou avoir un accès physique. Dans ces deux cas, c'est mauvais.
Cela dit, si votre système n’est pas chiffré, cette section n’est pas pertinente pour vous.
Cela ne concerne peut-être pas la commande rm
, car il existe des moyens simples pour supprimer des fichiers sans l’utiliser . Si le problème est que vos amis utilisent involontairement la commande rm
, les solutions qui limitent l'utilisation de cette commande ou la font fonctionner différemment peuvent être utiles. En revanche, si le problème est que vos amis traitent délibérément vos données d'une manière que vous ne souhaitez pas, vous devez alors mettre en œuvre des des mesures de sécurité , et aucune solution centrée sur la commande rm
elle-même (ou tout autre ensemble de commandes discrètes) ne vous protégera.
En supposant que vos amis savent que vous ne voulez pas qu’ils suppriment vos fichiers, il y a deux possibilités:
Ils pourraient le faire exprès. Dans ce scénario, vos amis suppriment délibérément vos fichiers et vous ne pouvez même pas leur faire confiance pour essayer de vous conformer. avec vos souhaits sur la façon dont ils traitent vos données lorsqu'ils utilisent votre ordinateur. La seule solution à ce problème est d’utiliser une mesure de sécurité effective , comme Thomas Ward l’a expliqué en détail . Souvent, la meilleure mesure consiste à les empêcher d'utiliser votre ordinateur. Mais les faire utiliser leurs propres comptes utilisateurs peut fournir une certaine protection.
Ils peuvent le faire par erreur. Dans ce scénario, vos amis sont extrêmement enclins aux accidents, et ils continuent à exécuter les commandes de rm
qu'ils souhaitent ne pas avoir. Ils veulent vous traiter, vous et vos données, avec respect, mais en pratique, ils sont vraiment mal car ils continuent à exécuter la mauvaise commande, à supprimer le mauvais fichier ... ou quelque chose du genre. Bien qu'il soit bon de croire que c'est ce qui se passe, je vous déconseille de supposer que les personnes qui continuent à supprimer vos données après leur avoir dit d'arrêter opèrent sans mauvaise volonté.
En outre, même si leurs intentions sont bonnes, leur fournir des comptes d'utilisateurs distincts reste le moyen le plus sûr de les empêcher de supprimer vos fichiers, en plus de ne pas leur permettre d'utiliser votre ordinateur.
Si la situation est vraiment n ° 2 - vos amis n'essaient pas de supprimer vos fichiers mais ont simplement besoin d’aide, non pas accidentellement pour les supprimer, et de la seule façon possible les supprimer accidentellement est dû à une mauvaise utilisation par inadvertance d’un petit nombre de commandes (comme rm
) qu’ils ont des problèmes particuliers d’utilisation - puis Les techniques utilisées dans Videonauth peuvent être utiles. Mais vous devez comprendre que ce ne sont pas des mesures de sécurité, car la commande rm
n'est que l'un des nombreux moyens simples de supprimer des fichiers . Voir ci-dessous pour plus de détails.
Je vous recommande de vous poser la question suivante: "Ma situation est-elle fondamentalement la même que si, plutôt que les autres personnes qui utilisent mon ordinateur, celle qui utilise rm
est incorrecte?"
Si la réponse est no , il s’agit d’une question de sécurité des informations et vous devez empêcher vos amis d’utiliser votre compte utilisateur. Si la réponse est yes , vous pouvez utiliser les mêmes approches que si vous était celui qui utilisait de manière abusive rm
:
rm file
. La réponse de Videonauth vous donne une approche. Dans cette réponse, j'en présente une autre. Mais même si vos amis n’essaient pas de faire quelque chose de mal, vous devriez envisager d’utiliser leurs propres comptes d’utilisateur . Cela résoudra toujours le problème - les mêmes mesures de sécurité qui protègent les données contre la destruction délibérée le protégeront également de la destruction involontaire. Même sans intention malveillante, si quelqu'un continue à faire quelque chose que vous ne voulez pas qu'ils fassent, vous ne pouvez pas leur faire confiance.
file
avant la suppression peut aider à éviter certaines erreurs. Pour aider les utilisateurs à éviter accidentellement la suppression de fichiers avec rm
, vous pouvez définir rm
a alias de shell qui exécute réellement rm
. Passer l'indicateur rm -i
à -i
provoque l'invitation de l'utilisateur avant la suppression de chaque fichier (voir rm
).
Vous pouvez le faire (pour votre compte utilisateur) en ajoutant man rm
à votre fichier alias rm='rm -i'
ou .bash_aliases
. Voir cette question et celui-là pour plus de détails. Cela prendra effet pour vos coquilles de bash récemment ouvertes.
Cela fournit aucune sécurité réelle , et n’est pas infaillible pour prévenir les erreurs non plus, car:
.bashrc
ou en le désarchivant ( /bin/rm
). unalias rm
ne sera pas exécuté avec rm
. -i
(comme dans L'approche de Videonauth - voir ci-dessous). Mais si vous n'avez pas besoin de sécurité réelle (voir ci-dessus), cela pourrait être la solution. Par rapport à l'approche consistant à empêcher vos amis d'utiliser la commande rm
fournie par le système:
Aliaser rm
à rm
est moins efficace pour empêcher les erreurs - jusqu'à ce qu'ils utilisent une autre technique pour supprimer des fichiers. À ce stade, les empêcher d'utiliser rm -i
sera totalement inefficace, même s'ils n'essayent pas de faire quelque chose de mal, car ils utiliseront probablement rm
(ou l'une des innombrables autres commandes qui suppriment un fichier) avec la même discrétion.
D'un autre côté, l'expansion des alias ne se produisant que dans certaines situations - en gros, une utilisation interactive du shell - vos amis peuvent penser qu'ils vont être invités lorsqu'ils ne sont pas vraiment invités (parce que la commande est dans un script, par exemple, ou émise par un autre shell). Le moyen de Videonauth n’a pas ce problème, ce qui constitue un avantage objectif de cette méthode par rapport à unlink
.
Lorsqu'un script s'exécute, sauf s'il est écrit délibérément pour utiliser des alias, vos alias ne sont pas développés. Cela signifie qu'il est très improbable que l'aliasing alias rm='rm -i'
à rm
ne casse rien. Ceci est un avantage objectif de rm -i
.
alias rm='rm -i'
ne peut rien faire de tout programme parfaitement ordinaire ne pourrait pas faire. Il n'y a vraiment rien de spécial à propos de rm
. C'est un moyen pratique et auto-documenté de supprimer des fichiers, de sorte que limiter l'accès à celui-ci risque de briser de nombreux scripts qui en dépendent. Mais c'est loin d'être le seul moyen de supprimer des fichiers - ce n'est qu'un programme ordinaire.
Quelques commandes exécutent une tâche qu'un utilisateur limité (non root ) ne peut exécuter sans les exécuter. Par exemple, rm
vous permet d'exécuter des programmes en tant qu'autre utilisateur, après avoir vérifié que vous êtes autorisé à le faire. sudo
modifie la base de données contenant les mots de passe des utilisateurs, mais permet uniquement vous changez votre propre mot de passe (sauf si vous êtes root, auquel cas vous pouvez changer le mot de passe de n'importe qui).
passwd
et /usr/bin/sudo
peuvent le faire car ils ont le bit setuid défini, comme le montre le /usr/bin/passwd
qui apparaît dans la colonne la plus à gauche lorsque vous exécutez s
:
[email protected]:~$ type -a sudo passwd rm
sudo is /usr/bin/sudo
passwd is /usr/bin/passwd
rm is /bin/rm
[email protected]:~$ ls -l /usr/bin/sudo /usr/bin/passwd /bin/rm
-rwxr-xr-x 1 root root 60272 Feb 18 2016 /bin/rm
-rwsr-xr-x 1 root root 54256 Mar 29 2016 /usr/bin/passwd
-rwsr-xr-x 1 root root 136808 Aug 17 09:20 /usr/bin/sudo
Notez que ls -l
n'a pas /bin/rm
: ses autorisations sont s
, tandis que -rwxr-xr-x
et /usr/bin/passwd
ont /usr/bin/so
à la place. Cela fait en sorte que, peu importe qui exécute -rwsr-xr-x
ou passwd
, il s'exécute réellement en tant qu'utilisateur root, puisque root est le propriétaire de l'exécutable. (Il existe également un bit setgid, qui, une fois défini, provoque l'exécution des exécutables avec l'identité de groupe du propriétaire du groupe plutôt que celle de l'appelant.)
Sauf pour les vulnérabilités de sécurité qui n’ont pas encore été découvertes (ou qui ont été découvertes mais n’ont pas encore été corrigées), sudo
et sudo
sont sûrs car ces utilitaires sont rédigés avec beaucoup de soin pour faire des choses que l'appelant devrait être autorisé à faire.
passwd
ne fonctionne pas de cette façon. Ce n'est pas un setuid car il n'a pas besoin de l'être. Autorisations de répertoire (et occasionnellement des autorisations de fichier ) contrôlent les fichiers qu'un utilisateur peut supprimer et il n'est pas nécessaire qu'ils deviennent root pour le faire.Pour être parfaitement clair, veuillez ne jamais définir le bit setuid sur /bin/rm
. Les implications en matière de sécurité seraient désastreuses, car depuis peu, peu importe qui exécute rm
, c'est comme si root l'exécutait! (Les utilitaires comme rm
et sudo
vérifient qui les exécute réellement et vérifient que quelque chose est autorisé avant de le faire; passwd
ne fait rien de tel.)
Vérifier si le bit setuid (ou setgid) est défini sur un exécutable vous indiquera si la restriction de ceux qui peuvent l’exécuter a une chance d’améliorer la sécurité. Les exécutables qui ne sont pas setuid (ou setgid) n'ont pas de statut particulier et tout le monde peut simplement les copier et exécuter la copie, apporter leur propre copie depuis un autre ordinateur, écrire un script ou un programme qui fait la même chose ou utiliser un autre programme pour le faire.
rm
Le moyen évident de supprimer un fichier sans rm
dans Ubuntu est de naviguer jusqu’à son emplacement dans le navigateur de fichiers graphique (Nautilus, si vous utilisez Unity ou GNOME Shell) et de supprimer le fichier. De nombreuses commandes peuvent également être utilisées pour supprimer un fichier d’un terminal, sans jamais utiliser rm
.
Par exemple, pour supprimer un fichier appelé rm
dans le répertoire en cours, les commandes suivantes, qui fonctionnent directement sur Ubuntu et ne nécessitent pas d’accès à foo.txt
, y parviendront. (Pour être sûr, je les ai testés sur un système 16.04 minimal installé uniquement avec les utilitaires système standard, après la suppression rm
.)
/bin/rm
unlink foo.txt
busybox rm foo.txt
perl -e 'unlink("foo.txt")'
( python3 -c 'import os; os.remove("foo.txt")'
au lieu de python
dans les anciennes versions) Bien entendu, cette liste est loin d’être complète. Aucune liste complète de telles commandes n'est possible. Empêcher la suppression de fichiers est l'une des choses que les comptes utilisateurs distincts et les autorisations de fichiers et de répertoires permettent d'obtenir. Ils travaillent très bien pour l'empêcher. En revanche, la modification de la commande python3
(pour lui demander un mot de passe, ou de toute autre manière) ou la restriction de l'accès à rm
ne l'empêche pas du tout.
Vous pouvez modifier les autorisations sur la commande /bin/rm
via la ligne suivante, ce qui empêchera son exécution sans accès sudo:
sudo chmod 750 /bin/rm
Cela les empêche spécifiquement d'utiliser la commande rm
fournie par le système. Vous devez savoir que cela ne les empêche pas de supprimer des fichiers d’autres manières.
Pour les empêcher également d'utiliser la commande rmdir
, qui est un moyen courant de supprimer des répertoires, vous pouvez définir des autorisations de la même manière sur son chemin exécutable:
sudo chmod 750 /bin/rmdir
Rappelez-vous également que vous ne pouvez utiliser ces commandes qu'avec les droits sudo.
Pour le rétablir si vous ne l'aimez pas ou si d'autres problèmes surviennent, utilisez 755
pour chmod
Comme l'a fait remarquer @muru, ce qui précède est une solution très grossière et pourrait même casser les services système qui ne s'exécutent pas sur le compte root . Par conséquent, j'ajoute ici une autre option utilisant les listes de contrôle d'accès (ACL) pour faire la même chose et probablement beaucoup plus sûre ( bon à lire aussi et vous pouvez ignorer le composant d'activation car ACL est généralement installé sur les systèmes Ubuntu de nos jours):
Donc, faire la même chose que ci-dessus pour les utilisateurs que vous voulez bloquer serait
sudo setfacl -m u:<user-name>:- /bin/rm /bin/rmdir
Remplacez simplement <user-name>
par les noms d’utilisateur que vous souhaitez empêcher d’utiliser les fichiers.
Comme avec chmod
, l'utilisation de setfacl -m
pour empêcher des utilisateurs spécifiques d'exécuter rm
et rmdir
s'applique uniquement aux commandes fournies par le système. Cela ne les empêche pas de supprimer vos fichiers et dossiers dans Nautilus ou en utilisant d'autres commandes de terminal.
Explication:
-m
signifie modifier les fichiers ACL. u
représente l'utilisateur. Il peut avoir les valeurs suivantes: u
pour l'utilisateur, g
pour le groupe et o
pour tous les autres <user-name>
peut contenir le nom d'utilisateur ou le nom de groupe en fonction de ce que vous souhaitez modifier. Pour définir les modifications globales, laissez-le vide. -
, il peut également contenir les lettres suivantes: r
pour les autorisations de lecture, w
pour les autorisations d'écriture et x
pour l'exécution. Ceci est une réponse très simple et empêchera quelqu'un d'utiliser la commande rm sans donner de mot de passe. Ce n'est pas une solution sécurisée et vous devriez implémenter certaines des suggestions alternatives dans les autres réponses.
Cependant, vous pouvez utiliser un alias pour modifier le comportement de la commande rm. Essayez:
alias rm="sudo -l >/dev/null && rm"
Cela se produit lorsque quelqu'un entre la commande rm, il exécute la commande sudo -l. Cette commande oblige l'utilisateur à entrer son mot de passe. S'ils réussissent, il répertorie leurs privilèges (nous ignorons cette sortie) et quitte avec le statut 0, s'ils se trompent, cela existe avec une erreur.
Nous suivons ensuite la commande sudo avec un "& amp; & amp;", qui quitte la commande suivante - dans ce cas "rm" uniquement si la commande précédente se termine avec le statut 0 - c'est-à-dire que le mot de passe est correct. / p>
Pour rendre ce permanent permanent, incluez la commande alias dans ~/.bashrc
.
Notez que ceci est très facilement annulé (par exemple, ils peuvent simplement taper /bin/rm
.
J'ai écrit un script pour protéger le mot de passe rm
comme l'OP demandé mais aussi pour apporter des modifications afin de vous empêcher de supprimer accidentellement:
Edit: 5 mars 2017 - Modifiez la méthode de vérification si vous utilisez le terminal.
Utilisez gksu gedit /usr/local/bin/rm
et copiez dans ces lignes:
#!/bin/bash
tty -s;
if [ "0" == "$?" ]; then Terminal="Y"; else Terminal="N"; fi
if [ $Terminal == "Y" ] ; then
# Running from terminal don't allow delete of / or /toplevel directory even if sudo
for i in ${@:1}
do
# Skip options -i -r -v -d
if [[ ${i:0:1} != "-" ]] ; then
# if parameter doesn't begin with '-' it's file or directory, so get real path.
fullname=$(realpath "$i" 2>&1) # No error messages if file doens't exist
# We must have at least two '/' in the full path
levels=$(echo "$fullname" | tr -cd '/' | wc -c)
if (( $levels == 1 )); then # Test for 1, will be zero when file doesn't exist.
echo "Attempting to remove top level directory '$fullname'"
echo "Use 'sudo /bin/rm [email protected]' instead."
exit 1 # error
fi
fi
done
fi
if [[ $(id -u) != 0 ]]; then # Only non-root processes enter password (ie "sudo rm ..." is ok)
if [ $Terminal == "Y" ] ; then
# Only running from a terminal needs password (ie not cron)
# log rm usage to /var/log/syslog
PARENT_COMMAND="$(ps -o comm= $PPID)"
logger "$PARENT_COMMAND"" - rm command was used on file: ""$fullname"
# Get password
Password=$(zenity --password --title="Password for rm")
encryptPassword=$(echo -n "$Password" | md5sum)
echo "md5sum: $encryptPassword" # Comment out after viewing one time and updating line below.
if [[ "$encryptPassword" != "d2c30dc65e59558c852ea30b7338abbe -" ]]; then
echo "Invalid password!"
exit 1
fi
fi # non-terminals can't enter password.
fi # root doesn't need to enter password.
# Call REAL rm command with parameters passed to this wrapper sript
/bin/rm "[email protected]"
exit 0
Remplacez le mot de passe "WE2U" par tout ce que vous voulez et enregistrez le fichier.
rm
comme exécutable Marquer le nouveau script rm
comme exécutable en utilisant:
sudo chmod +x /usr/local/bin/rm
Sauf si le mot de passe est WE2U , la première fois que vous exécuterez le script, vous obtiendrez un "mot de passe invalide" et la clé de cryptage du mot de passe saisi. Copiez et collez cette clé de chiffrement du terminal dans le script. Ensuite, commentez la ligne avec l’écho qui affiche la clé de chiffrement sur le terminal.
Comme le chemin /usr/local/bin
est plus élevé sur la liste que /bin
notre commande rm
est appelée. Après avoir obtenu un mot de passe valide, il appelle /bin/rm
pour effectuer la suppression réelle.
Comme l’a souligné Thomas Ward dans une autre réponse, si vous deviez faire sudo apt-get install ...
, on vous demanderait mille fois le mot de passe. Le script vérifie si sudo
est utilisé et ne demande pas de mot de passe. De plus, si rm
est appelé depuis l'interface graphique, aucun mot de passe n'est requis.
Le script appelle logger
à enregistrer chaque fois que rm
a été appelé manuellement à l'aide du terminal. L'utilisation des commandes est enregistrée dans /var/log/syslog
.
Une autre alternative serait de créer des copies de sauvegarde de tous les fichiers importants dans un répertoire auquel les utilisateurs non-root n'ont pas accès. Vous pouvez utiliser rsync
ou unison
pour les synchroniser automatiquement. Assurez-vous qu'au moins un répertoire du chemin d'accès à la destination de sauvegarde appartient à root et au mode 700. Cela se traduirait par deux copies de tous les fichiers. Il serait plus sûr de simplement créer un utilisateur invité à utiliser, sauf que vous devez vous rappeler de toujours verrouiller ou vous déconnecter avant de lui donner l’ordinateur ou de le laisser sans surveillance.
Pas la réponse directe à la question que vous recherchez mais:
Si vos amis suppriment vos fichiers à l’aide de la commande rm
, vos amis sont soit incompétents, saccadés, soit ils BOFH wannabes qui essaient de vous apprendre à ne pas laisser vos sessions connectées et sans surveillance. Dans tous les cas, la solution est la même: ne laissez pas votre session connectée et sans surveillance .
Cela présente l'avantage de ne pas avoir à apporter de modifications spéciales au système chaque fois que vous mettez à niveau ou installez un nouveau système, et empêche également les scripts et autres éléments qui utilisent des commandes de se comporter de manière imprévisible.
Il a également l’avantage d’empêcher les "amis" de passer à l’étape suivante. Voulez-vous également "protéger par mot de passe" la commande mv
s'ils décident de déplacer vos fichiers vers / dev / null lorsqu'ils découvrent qu'une simple suppression ne fait pas ce qu'ils veulent? Lorsque vous êtes dans un jeu comme celui-ci, le seul coup gagnant est de ne pas jouer.
J'ai une possibilité similaire pour laquelle j'ai prévu. Sur le serveur de fichiers, si le stockage principal des photos est accessible en écriture, certains membres de la famille (moins techniques ou accidentels) pourraient effacer quelque chose, glisser accidentellement dans l'interface graphique déplaçant le répertoire ou remplacer l'original par .
J'ai réalisé que je pouvais me protéger contre cela sans rendre les autorisations non écrites pour tout le monde. ZFS effectue des snapshots périodiques de sorte que toute suppression ou écrasement accidentel peut être inversé. (Contrairement à une sauvegarde, un instantané est léger et permet la copie sur écriture, ce qui ne multiplie pas votre utilisation du stockage.)
ZFS est natif à FreeBSD. Linux a btrfs qui a aussi des instantanés.
Une solution de contournement très stupide pour un problème très stupide.
Si vous ne voulez pas chmod
rm
, rmdir
ou mv
(pour mv filename /dev/null
) ou utiliser des ACL, vous pouvez créer un utilisateur factice avec un mot de passe, mais vous connaissez et alias chaque commande à sudo [user]
, puis créez des alias pour chaque commande que vos amis ne connaissent pas. De cette façon, lorsque vos amis saisissent rm
, le système leur demandera un mot de passe (mais deviner le mot de passe incorrect enregistrera la tentative échouée) et vous pourrez toujours taper rmalias
ou ce que vous aurez choisi pour supprimer les fichiers. / p>
Vous pouvez également créer un compte invité n’ayant pas accès à votre répertoire personnel.
Si vous souhaitez protéger rm par mot de passe, une solution consisterait à créer un wrapper pour rm qui nécessiterait des privilèges root et à demander un mot de passe autrement. (REMARQUE: ce wrapper peut disparaître lorsque le package coreutils est mis à jour ou réinstallé.) Notez également que cela ne sécurise que rm, il existe encore de nombreuses autres manières de supprimer un fichier.
Ouvrez un terminal et devenez root. Ensuite, exécutez sudo mv /bin/rm /bin/rmold
pour déplacer l'ancien rm vers un autre endroit.
Exécutez maintenant sudo nano /bin/rm
pour créer un wrapper.
Dans Nano, tapez ce qui suit:
#!/bin/bash
/bin/rmold "[email protected]"
exit "$?"
Ensuite, maintenez CTRL
et appuyez sur X
pour quitter. Appuyez sur Y
lorsque vous y êtes invité, puis appuyez sur ENTER
pour enregistrer le fichier.
Enfin, nous devons accorder les autorisations appropriées:
sudo chmod a+x /bin/rm
Et voilà.
Lire d'autres questions sur les étiquettes command-line password permissions rm