Mes amis continuent de supprimer mes fichiers à l'aide du terminal. Alors s'il vous plaît, aidez-moi en expliquant comment créer un mot de passe pour la rm
commande.
29
Mes amis continuent de supprimer mes fichiers à l'aide du terminal. Alors s'il vous plaît, aidez-moi en expliquant comment créer un mot de passe pour la rm
commande.
unlink
commande. Également à propos de lamv
commande, car vous pouvez remplacer efficacement les fichiers avec. Aussi ...Réponses:
Il n'y a pas de moyen facile de configurer un tel mot de passe sur la
rm
commande elle-même, non sans beaucoup de piratage de code qui va probablement casser des choses comme l'apt-get
installation de packages et la suppression de fichiers, et vous obliger à entrer le mot de passe mille fois, ou potentiellement perturber accès à la commande aux personnes qui en auraient besoin (comme vous, pour supprimer vos propres fichiers). Pour ce faire, vous pouvez avoir plusieurs comptes d'utilisateurs et plusieurs jeux d'autorisations d'accès et restreindre l'accès à différentes sections de données, telles que votre répertoire personnel, afin qu'ils ne puissent pas y accéder.(L'autre option est les comptes d'utilisateurs individuels pour chaque utilisateur, puis les listes de contrôle d'accès, comme cela est détaillé dans l' autre réponse publiée par Videonauth )
Voici le problème principal - vous laissez vos amis utiliser votre système. Cela a de nombreuses implications en matière de sécurité - le concept de «toute personne ayant un accès physique à la boîte va pouvoir contrôler le système et effectuer n'importe quelle tâche» est un mantra de sécurité informatique, c'est pourquoi vous ne «partagez» pas l'accès aux systèmes physiques sauf avec du personnel autorisé de confiance.
La seule façon vraiment sensée 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, sur lequel vous ne vous souciez pas vraiment des fichiers. C'est le moyen le plus «sécurisé» de protéger vos fichiers.
Bien sûr, si ce n'est pas une option, votre seule option vraiment sûre consiste à configurer plusieurs comptes d'utilisateurs, un pour chaque utilisateur, avec des dossiers de départ différents, et ne leur permettez pas d'accéder à votre propre répertoire de base ou à la maison de tout autre utilisateur répertoires. Et puis gardez tout ce que vous ne voulez pas qu'ils touchent dans votre répertoire personnel, et ne leur donnez pas
sudo
accès, leroot
mot de passe ou ne partagez pas votre mot de passe avec eux.Voici comment procéder:
Disons que mon nom est "Foo" et que je veux 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 à mon répertoire personnel à quiconque sauf moi. C'est pour permettre à d'autres utilisateurs de ne pas supprimer vos fichiers, mais aussi pour empêcher d'autres utilisateurs de fouiner dans votre répertoire personnel et de voir quels types de choses vous avez dans votre répertoire personnel:
La deuxième étape consiste à créer un compte utilisateur pour "Bar" (ne tapez PAS ce qui est entre parenthèses ci-dessous, c'est à titre informatif uniquement). De cette façon, nous pouvons nous assurer qu'il dispose de son propre ensemble distinct de droits d'accès:
La troisième étape consiste à restreindre ensuite leur répertoire personnel afin que personne ne puisse non plus faire levier sur leurs fichiers. C'est juste rendre les choses égales.
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 accordez pas de privilèges d'administrateur, ils ne peuvent pas supprimer vos fichiers sans tenter de
sudo
le faire - puisque vous ne le permettez pas, ils ne peuvent pas touchez vos affaires. Et ils ne pourront pas non plus voir vos fichiers, sans devenir superutilisateur, ce qui n'arrivera pas ici.RAPPELEZ-VOUS TOUJOURS: 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 se vérifier. Donner à vos amis l'accès à votre ordinateur mettra toujours vos données en péril, alors donnez-leur leur propre système pour s'amuser, ou tout simplement ne leur donnez pas accès à votre machine.
Juste une note sur le cryptage du disque
Bien que le chiffrement du disque fonctionne bien pour protéger vos données contre un tiers, il existe des limitations.
Bien que Disk Encryption ne résout pas ces problèmes, il crée des couches supplémentaires de maux de tête pour un acteur de menace. Quelqu'un qui est un méchant peut abandonner s'il est crypté, ou il peut vous torturer (faire la queue dans la bande dessinée XKCD Security obligatoire ).
Par conséquent, si votre système est crypté, mais que vous laissez d'autres utilisateurs l'utiliser, soit ils ont un mot de passe à décrypter, soit vous laissez votre ordinateur portable décrypté afin qu'ils puissent SSH ou avoir un accès physique. Dans les deux cas, c'est mauvais.
Cela dit, si votre système n'est pas chiffré, cette section n'a aucune pertinence pour vous.
la source
apt-get
s'exécutedpkg
, qui exécute des scripts qui utilisent souventrm
. Sur ma boîte Xenial, génèrecd /var/lib/dpkg/info; grep -P '\brm\b' *inst
344 lignes , dont 333 ressemblent à de véritables utilisations de larm
commande - uniquement dans les scripts d' installation .grep -P '\brm\b' *rm
montre encore plus dans les scripts de suppression (pour supprimer les fichiers de configuration, pas les fichiers de package).Il ne s'agit peut-être pas vraiment de la
rm
commande, car il existe des moyens faciles de supprimer des fichiers sans l'utiliser . Si le problème est que vos amisrm
utilisent involontairement la commande, des solutions qui restreignent spécifiquement l'utilisation de cette commande ou la font fonctionner d'une manière différente 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 voulez pas, alors vous devez mettre en œuvre des mesures de sécurité réelles , et aucune solution qui se concentre sur larm
commande elle-même (ou sur un ensemble discret de commandes) vous gardera en sécurité.Avez-vous besoin de contrôler l'accès ou simplement d'éviter les erreurs honnêtes?
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 répondre à vos souhaits sur la façon dont ils traitent vos données lorsqu'ils utilisent votre ordinateur. La seule solution à ce problème consiste à utiliser une véritable mesure de sécurité efficace , comme Thomas Ward l'a expliqué en détail . Souvent, la meilleure mesure est de les empêcher d'utiliser votre ordinateur. Mais les obliger à utiliser leurs propres comptes d'utilisateurs peut fournir une certaine protection.
Ils pourraient le faire par erreur. Dans ce scénario, vos amis sont extrêmement sujets aux accidents et continuent d'exécuter des
rm
commandes qu'ils auraient souhaité ne pas avoir. Ils veulent vous traiter vous et vos données avec respect, mais ils sont vraiment mauvais à le faire dans la pratique car ils continuent à exécuter la mauvaise commande, à supprimer le mauvais fichier ... ou quelque chose comme ça. Bien qu'il serait bon de croire que c'est ce qui se passe, je vous mets en garde contre l'hypothèse que les personnes qui continuent de supprimer vos données après que vous leur avez dit d'arrêter fonctionnent sans mauvaise volonté.De plus, même si leurs intentions sont bonnes, leur donner des comptes d'utilisateurs séparés est toujours le moyen le plus infaillible 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 pour ne pas les supprimer accidentellement , et la seule façon de les supprimer accidentellement est de mal utiliser par inadvertance un petit nombre de commandes (comme
rm
) qu'ils ont particulièrement du mal à utiliser correctement - alors les techniques dans la réponse de Videonauth peuvent être d'une certaine utilité. Mais vous devez comprendre qu'il ne s'agit pas de mesures de sécurité, car larm
commande n'est qu'un des nombreux moyens simples de supprimer des fichiers . Voir ci-dessous pour plus de détails.Je vous recommande de vous demander: "Ma situation est-elle essentiellement la même que si moi, plutôt que les autres personnes qui utilisent mon ordinateur, j'utilisais
rm
mal?"Si la réponse est non , c'est une question de sécurité de l'information et vous devez empêcher vos amis d'utiliser votre compte d'utilisateur. Si la réponse est oui , alors vous pouvez utiliser les mêmes approches que vous utiliseriez si vous étiez celui qui faisait un mauvais usage
rm
:rm file
file
Mais même si vos amis n'essaient pas de faire quoi que ce soit de mal, vous devriez toujours envisager de les faire utiliser leurs propres comptes d'utilisateurs distincts . Cela résoudra toujours le problème - les mêmes mesures de sécurité qui protègent les données de la destruction délibérée le protégeront également de la destruction involontaire. Même sans intention malveillante, si quelqu'un continue de faire quelque chose que vous ne voulez pas qu'il fasse, alors vous ne pouvez pas lui faire confiance pour s'abstenir de faire cette chose.
Faire une
rm
invite avant la suppression peut aider à éviter certaines erreurs.Pour aider les utilisateurs à éviter de supprimer accidentellement des fichiers avec
rm
, vous pouvez créerrm
un alias de shell qui s'exécute réellementrm -i
. Si vous passez l'-i
indicateur àrm
, il invite l'utilisateur à supprimer chaque fichier (voirman rm
).Vous pouvez le faire (pour votre compte d'utilisateur) en l'ajoutant
alias rm='rm -i'
à votre fichier.bash_aliases
ou.bashrc
. Voir cette question et celle-là pour plus de détails. Cela prendra effet pour vos coquilles bash récemment ouvertes.Cela n'offre aucune sécurité réelle et n'est pas à toute épreuve pour éviter les erreurs, car:
/bin/rm
ou en le désaliasant (unalias rm
).rm
, ne sera pas exécutée avec-i
.rm
(comme c'est le cas avec l'approche de Videonauth - voir ci-dessous).Mais si vous n'avez pas besoin d'une sécurité réelle (voir ci-dessus), c'est peut-être la voie à suivre. Par rapport à l'approche consistant à empêcher vos amis d'utiliser la
rm
commande fournie par le système :Le repliement
rm
versrm -i
est moins efficace pour prévenir les erreurs - jusqu'à ce qu'ils passent à l'utilisation d'une autre technique pour supprimer des fichiers. À ce stade, les empêcher d'utiliserrm
sera totalement inefficace, même s'ils n'essaient pas de faire quoi que ce soit de mal, car ils utiliseront vraisemblablementunlink
(ou l'une des innombrables autres commandes qui suppriment un fichier) avec une absence de réflexion égale.D'un autre côté, parce que l'expansion d'alias ne se produit que dans certaines situations - en gros, une utilisation interactive ordinaire du shell - vos amis peuvent penser qu'ils vont être invités lorsqu'ils ne le sont pas vraiment (car la commande est dans un script, par exemple, ou provenant d'un autre shell). La voie de Videonauth n'a pas ce problème, ce qui est un avantage objectif de cette méthode
alias rm='rm -i'
.Lorsqu'un script s'exécute, à moins qu'il ne soit délibérément écrit pour utiliser des alias, vos alias n'y sont pas développés. Cela signifie que l' aliasing
rm
àrm -i
est très peu susceptible de casser quoi que ce soit. C'est un avantage objectif dealias rm='rm -i'
.rm
ne peut rien faire qu'un autre programme parfaitement ordinaire ne puisse faire.Il n'y a vraiment rien de spécial
rm
. Il s'agit d'un moyen pratique et auto-documenté de supprimer des fichiers, donc restreindre l'accès à celui-ci risque de casser de nombreux scripts qui en dépendent. Mais c'est loin d'être le seul moyen de supprimer des fichiers - c'est juste un programme ordinaire.Quelques commandes exécutent une tâche qu'un utilisateur limité (non root ) ne peut pas exécuter sans les exécuter. Par exemple,
sudo
vous permet d'exécuter des programmes en tant qu'autre utilisateur, après avoir vérifié que vous êtes autorisé à le faire.passwd
modifie la base de données où les mots de passe des utilisateurs sont stockés, mais vous permet uniquement de changer votre propre mot de passe (sauf si vous êtes root, auquel cas vous pouvez changer le mot de passe de n'importe qui)./usr/bin/sudo
et/usr/bin/passwd
peut le faire car ils ont le bit setuid défini, comme le montre les
qui apparaît dans la colonne la plus à gauche lorsque vous exécutezls -l
:Notez que cela
/bin/rm
n'a pass
: ses autorisations sont-rwxr-xr-x
, while/usr/bin/passwd
et/usr/bin/so
have à la-rwsr-xr-x
place. Cela fait en sorte que, peu importe qui s'exécutepasswd
ousudo
, il s'exécute en tant qu'utilisateur root, car root est le propriétaire de l'exécutable. (Il existe également un bit setgid qui, une fois défini, fait exécuter les exécutables avec l'identité de groupe de leur propriétaire de groupe plutôt que celle de l'appelant.)À l'exception des vulnérabilités de sécurité qui n'ont pas encore été découvertes (ou qui ont été découvertes mais qui n'ont pas encore été corrigées)
sudo
et quipasswd
sont sûres car ces utilitaires sont très soigneusement écrits afin qu'ils ne puissent faire que des choses que l'appelant devrait être autorisé faire./bin/rm
ne fonctionne pas de cette façon. Ce n'est pas setuid parce que ce n'est pas nécessaire. Les autorisations de répertoire (et parfois les autorisations de fichier ) contrôlent les fichiers qu'un utilisateur peut supprimer, et ils n'ont pas besoin de devenir root pour le faire. Juste pour être parfaitement clair, veuillez ne jamais activer le bit setuidrm
. Les implications pour la sécurité seraient désastreuses, depuis lors, peu importe qui s'exécuterm
, c'est comme si root l'exécutait! (Les utilitaires aimentsudo
etpasswd
vérifient qui les exécute vraiment et vérifient que quelque chose est autorisé avant de le faire;rm
ne fait rien de tel.)Vérifier si le bit setuid (ou setgid) est défini sur un exécutable vous dira si restreindre qui peut 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 spécial, et n'importe qui peut simplement les copier et exécuter la copie, apporter leur propre copie à partir d'une autre machine, écrire un script ou un programme qui fait la même chose, ou utiliser un autre programme pour le faire.
Suppression de fichiers sans
rm
La manière évidente de supprimer un fichier sans
rm
dans Ubuntu est de naviguer vers son emplacement dans le navigateur de fichiers graphique (Nautilus, si vous utilisez Unity ou GNOME Shell) et de supprimer le fichier. Il existe également de nombreuses commandes qui peuvent être utilisées pour supprimer un fichier d'un terminal, sans jamais l'utiliserrm
.Par exemple, pour supprimer un fichier appelé
foo.txt
dans le répertoire courant, les commandes suivantes, qui fonctionnent immédiatement sur Ubuntu et ne nécessitent pas d'accès àrm
, y parviendront. (Juste pour être sûr, je les ai testés sur un système minimal 16.04 installé avec uniquement les utilitaires système standard, après la suppression/bin/rm
.)unlink foo.txt
busybox rm foo.txt
perl -e 'unlink("foo.txt")'
python3 -c 'import os; os.remove("foo.txt")'
(python
au lieu despython3
anciennes versions)Cette liste est, bien entendu, loin d'être complète. Aucune liste complète de ces commandes n'est possible. La prévention de la suppression de fichiers est l'une des choses que les comptes d'utilisateurs distincts et les autorisations de fichiers et de répertoires existent. Ils fonctionnent très bien pour l'empêcher. En revanche, changer la
rm
commande (pour qu'elle nécessite un mot de passe ou de toute autre manière) ou restreindre l'accèsrm
ne l'empêche pas du tout.la source
rm
l'-I
option GNU . Il vous invite uniquement à supprimer 4 fichiers ou plus, ou à supprimer récursivement. Vous n'avez donc pas l'habitude de toujours utiliser-f
,\rm
pour éviter l'expansion d'alias, ou de tapery
sans lire. Mais cela vous épargnera toujours de mauvaises fautes de frappe où vous appuyez sur Retour avant de le faire, ou votre glob correspond à de nombreux fichiers.mv foo.txt /tmp/.gone
puis redémarrez, en supprimant les tmpfs qui étaient en cours de sauvegarde/tmp
. Ou utilisez simplementmv
pour renommer plusieurs fichiers avec le même nom, de sorte qu'il ne reste que le dernier. Ou masquez simplement les fichiers en les renommant avec des noms obscurs. Comme le souligne la première partie de cette réponse, si vous essayez de vous défendre contre la malveillance plutôt que contre l'incompétence, vous devez simplement verrouiller les gens de votre compte.Vous pouvez modifier les autorisations sur la
/bin/rm
commande via la ligne suivante, ce qui empêchera son exécution sans accès sudo:Cela les empêche spécifiquement d'utiliser la
rm
commande fournie par le système. Vous devez savoir que cela ne les empêche pas de supprimer des fichiers par d'autres moyens.Pour les empêcher également d'utiliser la
rmdir
commande, qui est un moyen courant de supprimer des répertoires, vous pouvez définir les autorisations de la même manière sur son chemin exécutable:Rappelez-vous également que vous ne pouvez également utiliser ces commandes qu'avec des droits sudo.
Pour le modifier si vous ne l'aimez pas ou si d'autres problèmes surviennent, utilisez
755
pourchmod
Comme l'a souligné @muru, ce qui précède est une solution très grossière et peut même interrompre les services système qui ne s'exécutent pas sur le compte root . Par conséquent, j'ajoute ici une autre option utilisant ACL (listes de contrôle d'accès) pour faire la même chose et probablement beaucoup plus sûr ( bon à lire également et vous pouvez ignorer la partie 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 uniquement pour les utilisateurs que vous souhaitez bloquer serait
Remplacez simplement
<user-name>
par les noms d'utilisateur réels que vous souhaitez empêcher d'utiliser les fichiers.Comme avec
chmod
,setfacl -m
pour empêcher des utilisateurs spécifiques de s'exécuterrm
etrmdir
s'applique uniquement aux commandes fournies par le système. Il ne les empêche pas de supprimer vos fichiers et dossiers dans Nautilus ou en utilisant d'autres commandes de terminal.Explication:
-m
drapeau signifie modifier les fichiers ACL.u
stands pour l'utilisateur. Il peut avoir les valeurs suivantesu
pour l'utilisateur,g
pour le groupe eto
pour tous les autres<user-name>
peut saisir le nom d'utilisateur ou le nom de groupe réel en fonction de ce que vous souhaitez modifier. Pour définir les modifications globales, laissez-le vide.-
, il peut également contenir les lettres suivantesr
pour les autorisations de lecture,w
pour les autorisations d'écriture etx
pour l'exécution.la source
sudo setfacl -m u:<username>:- /bin/rm /bin/rmdir
, IIRC. Vous pouvez tester l'ACL avecgetfacl /bin/rm /bin/rmdir
rm
. La solution que Videonauth a donnée ici est un moyen possible d'aider les utilisateurs sujets aux accidents à cesser de supprimer des choses, mais elle n'offre aucune sécurité réelle (ce qui peut être correct si les amis du PO n'essaient pas délibérément de renverser les souhaits du PO) . Videonauth: Je suggère de modifier ce message afin qu'il clarifie bien qu'il n'empêche pas réellement les gens de supprimer des fichiers car ils n'ont pas besoin de larm
commande pour le faire. (Je m'abstiens de le modifier moi-même, au cas où vous ne voudriez pas dire cela.)rm
commande.Il s'agit d'une réponse très simple qui empêchera quelqu'un d'utiliser la commande rm sans donner de mot de passe. Ce n'est pas une solution sûre 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. Essayer:
alias rm="sudo -l >/dev/null && rm"
Ce que cela signifie, c'est que lorsque quelqu'un entre la commande rm, il exécute la commande sudo -l. Cette commande oblige l'utilisateur à saisir son mot de passe. S'ils le font correctement, il répertorie leurs privilèges (nous rejetons cette sortie) et se termine avec le statut 0, s'ils se trompent, il existe avec une erreur.
Nous suivons ensuite la commande sudo avec un "&&", 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 qu'ils ont obtenu le bon mot de passe.
Pour rendre cela permanent, incluez la commande alias dans
~/.bashrc
.Notez que ceci est très facilement vaincu (par exemple, ils pourraient simplement taper
/bin/rm
.la source
Parfois ce ne sont pas nos amis, nous sommes nos pires ennemis
J'ai écrit un script pour protéger par mot de passe
rm
comme l'OP demandé mais j'ai également mis en place des modifications pour vous empêcher de supprimer accidentellement:Edit: 5 mars 2017 - Changez la méthode de vérification si vous utilisez le terminal.
Créer le script
Utilisez
gksu gedit /usr/local/bin/rm
et copiez dans ces lignes:Changez le mot de passe "WE2U" en ce que vous voulez et enregistrez le fichier.
Marquer le nouveau
rm
script comme exécutableMarquer le nouveau
rm
script comme exécutable en utilisant:Comment ça marche
Sauf si le mot de passe est WE2U , la première fois que vous exécutez le script, vous obtiendrez un «mot de passe invalide» et la clé de cryptage pour le mot de passe que vous avez entré s'affiche. Copiez et collez cette clé de chiffrement du terminal dans le script. Puis commentez la ligne avec l'écho qui a affiché la clé de cryptage sur le terminal.
Parce que le chemin
/usr/local/bin
est plus haut sur la liste que/bin
notre commanderm
n'est appelée. Après avoir obtenu un mot de passe valide, il appelle/bin/rm
pour faire la vraie suppression.Comme l'a souligné Thomas Ward dans une autre réponse, si vous faisiez cela,
sudo apt-get install ...
on pourrait vous demander un mot de passe mille fois. Le script vérifie s'ilsudo
est utilisé et ne demande pas de mot de passe. De plus, sirm
est appelé depuis l'application GUI, aucun mot de passe n'est requis.Le script appelle
logger
à enregistrer à chaque fois arm
été appelé manuellement à l'aide du terminal. L'utilisation de la commande est enregistrée dans/var/log/syslog
.la source
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
ouunison
pour les synchroniser automatiquement, assurez-vous simplement qu'au moins un répertoire dans le chemin vers la destination de sauvegarde est détenu par root et en mode 700. Cela entraînerait cependant 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 leur donner l'ordinateur ou de le laisser sans surveillance.la source
Pas la réponse directe à la question que vous cherchez mais:
Si vos amis suppriment vos fichiers à l'aide de la
rm
commande, alors vos amis sont soit incompétents, des imbéciles, soit ce sont des aspirants BOFH 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 a l'avantage de ne pas avoir à se rappeler d'apporter des modifications spéciales au système chaque fois que vous mettez à niveau ou obtenez un nouveau système, et empêche également les scripts et autres choses que vous utilisez qui reposent sur des commandes se comportant comme prévu de ne pas échouer 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
mv
commande 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.la source
J'ai une possibilité similaire que je prévoyais. Sur le serveur de fichiers, si le stockage principal des photos est accessible en écriture, une personne de la famille (moins technique ou accidentelle) pourrait supprimer quelque chose, faire glisser accidentellement dans l'interface graphique qui déplace le répertoire ou écraser un original avec une version modifiée plutôt que de renommer .
J'ai réalisé que je pouvais me protéger contre cela sans rendre les autorisations inscriptibles pour tout le monde. ZFS crée des instantanés périodiques afin que toute suppression ou écrasement accidentel puisse être annulé. (Contrairement à une sauvegarde, un instantané est léger et copie sur écriture, il ne multiplie donc pas votre utilisation du stockage.)
ZFS est natif de FreeBSD. Linux a btrfs qui a également des instantanés.
la source
Une solution de contournement très stupide pour un problème très stupide.
Si vous ne voulez pas
chmod
rm
,rmdir
oumv
(pourmv filename /dev/null
) ou utiliser des ACL, vous pouvez créer un utilisateur factice avec un mot de passe personne mais vous connaissez et alias chaque commandesudo [user]
, puis créer des alias pour chaque commande que vos amis ne connaissent pas . De cette façon, lorsque vos amis tapent,rm
le système leur demandera un mot de passe (mais deviner le mauvais mot de passe enregistrera la tentative échouée), et vous pouvez toujours taperrmalias
ou tout ce que vous choisissez pour supprimer réellement les fichiers.Ou vous pouvez simplement créer un compte invité qui n'a pas accès à votre répertoire personnel.
la source
sudo [user]
dummy user
Si vous souhaitez protéger rm par mot de passe, une solution serait de créer un wrapper pour rm qui nécessiterait des privilèges root, et de demander un mot de passe dans le cas contraire. (REMARQUE: ce wrapper peut disparaître lorsque le package coreutils est mis à jour ou réinstallé.) De plus, veuillez noter que cela ne sécurise que rm, il existe encore de nombreuses autres façons 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 à un autre endroit.Maintenant, exécutez
sudo nano /bin/rm
pour créer un wrapper.Dans Nano, tapez ce qui suit:
Maintenez ensuite la
CTRL
touche enfoncée et appuyez surX
pour quitter. Appuyez surY
lorsque vous y êtes invité, puis appuyez surENTER
pour enregistrer le fichier.Enfin, nous devons lui donner les autorisations appropriées:
Et voilà.
la source
$@
=>"$@"
. Ici, ce que vous proposez est une version très dangereuse de l'original et sûrrm
: que faire s'il y a un fichier nomméfoo -i -r *
(-i
ajouté pour protéger les utilisateurs innocents)?"
citer$@
comme le dit @xhienne, je vous exhorte à avertir clairement les lecteurs que cela n'offre aucune sécurité car il existe de nombreuses façons de supprimer un fichier. La première consiste à appelerrmold
, mais il existe une multitude d'autres façons, comme indiqué dans d'autres réponses et commentaires à leur sujet. (Même alors, cela aura le problème quirm
donnera l' impression de supprimer des fichiers en tant qu'utilisateur actuel - il est appelé sanssudo
, etrm
s'exécute normalement en tant qu'appelant - mais le fait en tant que root! S'ils ont récemmentsudo
édité, ils ont gagné '' t remarquer qu'ils pourraient supprimer des fichiers système même s'ils sont au courant du changement.)