Je vais bientôt faire pas mal de travail sur PHP, et je suis intéressé par l’apprentissage de RoR. J’ai donc installé Linux Mint 12 dans ma VirtualBox.
L’aspect le plus frustrant du commutateur, jusqu’à présent, a été de traiter avec les autorisations Linux. Il semble que je ne puisse rien faire d’utile (par exemple, copier l’archive Symfony2 de mon répertoire Téléchargements vers la racine de mon document et l’extraire) sans me faire passer pour la racine via sudo.
Existe-t-il un moyen facile de dire à Linux de me donner un accès sans entrave à certains répertoires sans simplement ouvrir toutes leurs autorisations?
linux
permissions
sudo
Productions Majeures
la source
la source
Réponses:
Deux options me viennent à l’esprit:
Possédez le répertoire que vous voulez en utilisant
chown
:(remplacez votre nom d'utilisateur par votre nom d'utilisateur et votre répertoire par le répertoire de votre choix.)
Vous pouvez également travailler en tant que root tant que vous SAVEZ CE QUE VOUS FAITES . Pour utiliser root faire:
et alors vous pouvez faire n'importe quoi sans avoir à taper
sudo
avant chaque commande.la source
De manière générale, travaillez toujours comme votre propre utilisateur, sauf si vous faites quelque chose qui a un impact sur l'ensemble du système.
Si vous souhaitez installer des fichiers sur votre serveur Web, utilisez-le comme votre propre utilisateur, puis
sudo
déposez-les dans la zone de service Web de votre système de fichiers. Habituellement, cela est effectué par un script d'installation et vous exécutez quelque chose commesudo -u webmaster install-webserver-files
, ou mieuxsudo -u webmaster git update
(ou le système de contrôle de version de votre choix).Si vous travaillez sur un serveur de développement et souhaitez que vos fichiers soient accessibles instantanément, créez un répertoire dans la zone du serveur Web et attribuez-lui la propriété ou au moins l'écriture. Après cette opération unique (
sudo chown …
ousudo -u webmaster setfacl …
), vous n'aurez plus besoin de privilèges élevés pour vos opérations quotidiennes.Il est parfois pratique de permettre à plusieurs utilisateurs d'écrire dans un répertoire ou d'avoir des autorisations différentes pour plusieurs utilisateurs autres que le propriétaire ou pour plusieurs groupes. Les listes de contrôle d'accès vous donnent cette possibilité. Reportez-vous à la section Problèmes d'autorisations pour le répertoire partagé sur un serveur ou le problème d'autorisation de script de sauvegarde .
la source
Oui, connectez-vous en tant que root, ce qui vous donne le contrôle d’accès super utilisateur.
Même concept dans Windows, vous pouvez vous connecter à votre terminal à l’aide d’administrateur.
la source
C'est depuis toujours mon idéologie qu'en tant qu'utilisateur, vous pouvez faire ce que vous voulez sous Linux et pour tout le reste, il y en a toujours
sudo
.sudo
permet d'exécuter peu de choses que d'autres utilisateurs, le plus souvent dans le cas de l'root
administration système.sudo
a été une ressource plus avantageuse pour déléguer certaines de mes tâches courantes et privilèges en tant qu’utilisateur (root) à d’autres et pour aider à mieux gérer mon temps et le temps des autres sans élever les privilèges au-delà de ce qui est requis. Dans le même temps, c’est ma confiance en eux qui garde leurs entrées présentes dans lesudoers
fichier de configuration. Je ne sais pas si cela pourrait être lié, mais que puis-je dire, c’est que sudo vous donne une meilleure perspective de sécurité pour savoir qui est tout et que peut-il faire avec ses privilèges de confiance. Même si quelque chose ne va pas, ils restent responsables. (Je peux toujours faire quelques pointes sournoises avec des informations de journal sudoers pour trouver les coupables également). Mes gars m'ont toujours dit qu'ils devaient taper sudo pour tout ce qu'ils voulaient faire avec des privilèges élevés dans un environnement Linux. Ici, j'ai trouvé la même question aussi.Pour voir les solutions et ma quête pour trouver des alternatives, je suis tombé sur les contrôles d’accès basés sur les ressources,
RBAC
mais dans une autre aventureSolaris
avec des outils tels quepfexec
etc. sur la conscience et la vigilance de ce que les administrateurs système voudraient faire de leurs privilèges.Considérant les solutions disponibles de RBAC et ses implémentations dans le monde Linux, je suis tombé par hasard sur
SELinux http://www.ibm.com/developerworks/linux/library/l-rbac-selinux/
grsecurity http://en.wikipedia.org/wiki/Grsecurity
et bien qu'il y ait d'autres implémentations, je les considérerais dans le haut de la liste. L'implémentation de RBAC représente un travail considérable dans une organisation, en particulier lorsque les utilisateurs sont nombreux. RBAC semblerait une meilleure solution dans des environnements homogènes. Cependant, lorsqu'il existe des installations Unix hétérogènes sur le réseau et que la base de données des utilisateurs est commune, cela pourrait peut-être échouer. SELinux n'étant pas évolutif / implémenté sous Solaris, les outils RBAC / pfexec ne sont pas implémentés sous Linux. Différentes approches existent pour faire une seule chose. Par exemple: http://blogs.oracle.com/darren/entry/opensolaris_rbac_vs_sudo_howto
Différentes installations à l'échelle du réseau peuvent ne pas prendre en charge cette approche (cependant, openrbac pourrait être considéré comme une approche d'implémentation commune), comme sudoers est une approche à hôte unique ou n'est pas capable de configuration centralisée dans le réseau / domaine.
/etc/sudoers
besoin d'être synchronisé à chaque changement. De plus, il existe une exigence de base de connaissances lors de l’exploitation du fichier sudoers: il est nécessaire de comprendre le langage de politique de la configuration de sudoers afin de ne commettre aucune erreur et d’autoriser les octrois. RBAC peut offrir une approche centralisée dans une certaine mesure, tandis que les profils de sécurité peuvent être communs, l’ajout / la suppression d’un utilisateur du rôle attribué peut être effectuée à partir d’un seul endroit (c’est-à-dire l’endroit où les informations utilisateur / mot de passe / groupe sont stockées domaine comme LDAP, NIS ou AD). Cela impliquerait également implicitement de comprendre les commandes nécessaires pour opérer sur la base de données RBAC, telles que smexec, smmultiuser, étant peu nombreuses.Sudo peut offrir une approche plus multiplateforme, même dans ce cas, il fonctionne sur toutes les plates-formes Unix / similaires qui offrent les fonctionnalités setuid.
sudo
Et tous deuxRBAC
réussissent à donner aux utilisateurs non-root des privilèges qui peuvent être obtenus sans donner leroot
mot de passe lui-même. Sudo peut donner une approche plus fine / granulaire sur les arguments de ligne de commande pouvant être utilisés lors de l'exécution des commandes et limiter uniquement les commandes avec arguments pouvant être exécutées avec des privilèges élevés. Bien que RBAC puisse restreindre l'utilisation des commandes ou des fichiers binaires installés sans avoir le moindre contrôle sur les arguments de ligne de commande. L’audit est bien meilleur et intégré à l’environnement RBAC alors quesudo
Cela dépend de la configuration et des contraintes de sécurité (par exemple, ne pas accorder le shell et en particulier, les hôtes sont autorisés à se connecter aux autres hôtes sans aucun problème). Ce ne sont là que quelques-unes des différences que je pourrais citer. Personnellement, j’ai tendance à utiliser le sudo plutôt que le RBAC, bien qu’avec ces limitations, je puisse surmonter certaines difficultés. Jusqu'à ce que tous les problèmes soient résolus par RBAC afin de mieux tirer parti de sudo, je ne pense pas que sudo disparaîtra, car c'est simple.la source
Je voudrais chown la racine du document où vous travaillez, de sorte que vous avez un accès complet à celui-ci.
Pour éviter de devoir taper sudo chaque fois que vous installez une gemme, suivez cet article ici: http://forums.site5.com/showthread.php?t=11954
Je recommande également fortement d’installer RVM pour gérer les versions de Ruby et Rails. http://beginrescueend.com/
Votre vie sera beaucoup plus facile lorsque vous trouverez l'hôte sur lequel vous souhaitez déployer votre application en utilisant des versions différentes de celles que vous avez développées.
la source
Exécutez la commande.
Vous pourrez maintenant exécuter des commandes en tant qu'utilisateur root. Faites attention! Toute commande exécutée sera en tant qu'utilisateur root. Vous pouvez sérieusement gâcher les choses si vous ne faites pas attention.
Ou vous modifiez les autorisations du répertoire pour permettre à votre utilisateur de sauvegarder et de modifier des fichiers.
la source
sudo -s
?sudo -i
comme cela simule comme shell de connexion. Cela pourrait être un peu plus proche d'une connexion racine locale que de lancer bash ou un autre shell via sudo.su
? Quelle est cette obsession de sudo? Tu n'as pas besoin de sudo. Déjà.su
si le mot de passe root est inconnu. l'ajout d'un utilisateur aux sudoers et l'exécutionsudo su
permettent à l'utilisateur d'utiliser son mot de passe utilisateur existant et connu pour remonterEditez le fichier / etc / passwd et accordez les droits root à l'utilisateur "yourUserName" en modifiant les ID d'utilisateur et de groupe en UID 0 et GID 0:
votreUserName: 0: 0 :: / home / votreUserName: / bin / sh
la source
Comme indiqué dans d'autres réponses, la solution la plus propre consiste à modifier la propriété des fichiers et des répertoires auxquels vous devez accéder. Vous pouvez également créer un nouveau groupe dédié, changer la propriété du groupe des fichiers et répertoires sur ce groupe et définir les droits en écriture du groupe pour ces fichiers et répertoires. Enfin, définissez le bit SGID sur les répertoires de sorte que, si vous créez un nouveau fichier, il hérite de la propriété du groupe du répertoire contenant (c'est-à-dire du groupe dédié).
la source
utilisateur @ serveur: ~ $ sudo passwd racine
[sudo] mot de passe de l'utilisateur:
entrez un nouveau mot de passe UNIX:
retapez le nouveau mot de passe UNIX:
passwd: mot de passe mis à jour avec succès
utilisateur @ serveur: ~ $ su
Mot de passe:
root @ serveur: / home / utilisateur #
Est-ce que "#" invite pas une chose de beauté?
J'utilise "sudo" une fois seulement pour obtenir la capacité de
utilisateur @ serveur: ~ $ su
Mot de passe:
racine @ serveur: / home / utilisateur #
pour la vie du serveur.
Pour le rendre à nouveau en sécurité,
root @ server: / home / user # exit
exit
utilisateur @ server: ~ $
Les administrateurs système le font depuis des années, alors que "sudo" ne faisait pas partie de la tendance du mollycoddling.
Lorsque vous faites cela, il est de votre responsabilité de prendre soin de vous, pas de la mienne.
Ian
la source
sudo -s
. Travail fait