En breve voy a hacer una buena cantidad de trabajo PHP, y estoy interesado en aprender RoR, así que instalé Linux Mint 12 en mi VirtualBox.
El aspecto más frustrante del cambio, hasta ahora, ha sido tratar con los permisos de Linux. Parece que no puedo hacer nada útil (como, por ejemplo, copiar el tarball de Symfony2 desde mi directorio de Descargas a la raíz de mi documento y extraerlo) sin hacerme pasar por sudo.
¿Hay una manera fácil de decirle a Linux que me dé acceso sin restricciones a ciertos directorios sin simplemente abrir todos sus permisos?
linux
permissions
sudo
Producciones mayores
fuente
fuente
Respuestas:
Dos opciones me vienen a la mente:
Adquiera el directorio que desee utilizando
chown
:(reemplace your_username con su nombre de usuario y directorio con el directorio que desee).
La otra cosa que puede hacer es trabajar como root siempre que sepa lo que está haciendo . Para usar root hacer:
y luego puede hacer cualquier cosa sin tener que escribir
sudo
antes de cada comando.fuente
En términos generales, siempre trabaje como su propio usuario a menos que esté haciendo algo con un impacto en todo el sistema.
Si hay archivos que desea colocar en su servidor web, trabaje como su propio usuario y luego use
sudo
para colocar los archivos en su lugar en el área de servicio web de su sistema de archivos. Por lo general, eso se realizaría mediante un script de instalación, y ejecutaría algo comosudo -u webmaster install-webserver-files
, o mejorsudo -u webmaster git update
(o el sistema de control de versiones que elija).Si está trabajando en un servidor de desarrollo y desea que se pueda acceder a sus archivos al instante, cree un directorio en el área del servidor web y haga que sea de su propiedad o que al menos pueda escribirlo. Después de esa operación única (
sudo chown …
osudo -u webmaster setfacl …
), no necesitará privilegios elevados para las operaciones diarias.A veces es conveniente permitir que varios usuarios escriban en un directorio, o tener permisos diferentes para varios usuarios distintos del propietario o para múltiples grupos. Las listas de control de acceso le brindan esta capacidad. Consulte Problemas de permisos para el directorio compartido en un servidor o Problema de permisos de script de copia de seguridad .
fuente
Sí, inicie sesión como root, lo que le brinda un control de acceso de superusuario.
El mismo concepto en Windows, puede iniciar sesión en su terminal utilizando el administrador.
fuente
Siempre ha sido mi ideología que, como usuario, puedes hacer lo que quieras en Linux y para todo lo demás, siempre lo hay
sudo
.sudo
permite ejecutar pocas cosas como algunos otros usuarios, en la mayoría de los casos comoroot
para la administración del sistema.sudo
Ha sido un recurso de mayor ventaja para delegar algunas de mis tareas y privilegios de rutina como usuario (root) a otros y ayudar a administrar mi tiempo y el tiempo de otros mejor sin elevar los privilegios más allá de lo requerido. Al mismo tiempo, es mi confianza en ellos lo que mantiene sus entradas presentes en elsudoers
archivo de configuración. No estoy seguro de si podría estar relacionado, pero lo que puedo decir es que sudo le brinda una mejor perspectiva de seguridad de quién y qué pueden hacer con sus privilegios de confianza. Incluso si algo sale mal, son responsables. (Siempre puedo hacer un poco astuto con información de registro de sudoers para encontrar a los culpables también). Mis muchachos siempre me han expresado su preocupación de que tengan que escribir sudo para todo lo que querían hacer con privilegios elevados en el entorno Linux. Aquí encontré la misma pregunta también.Para ver las soluciones y mi búsqueda para encontrar las alternativas, me encontré con los controles de acceso basados en recursos
RBAC
pero en otra tierra de aventurasSolaris
con herramientas comopfexec
etc. Este enfoque es mejor porque esto mantendría los privilegios de los usuarios ya elevados y confiaría sobre la conciencia y el estado de alerta de lo que los administradores de sistemas querrían hacer con sus privilegios.Teniendo en cuenta las soluciones disponibles de RBAC y sus implementaciones en el mundo Linux, me encontré con
SELinux http://www.ibm.com/developerworks/linux/library/l-rbac-selinux/
grsecurity http://en.wikipedia.org/wiki/Grsecurity
y aunque hay algunas otras implementaciones, las consideraría en el orden superior de la lista. Implementar RBAC es mucho trabajo en una organización, especialmente cuando hay muchos usuarios. RBAC sería una mejor solución en entornos homogéneos. Sin embargo, cuando hay instalaciones heterogéneas de Unix en la red y la base de datos de usuarios es común, entonces esto podría fallar. Dado que SELinux no es escalable / implementado en Solaris y las herramientas RBAC / pfexec no están implementadas en Linux. Existen diferentes enfoques para hacer una sola cosa. Por ejemplo: http://blogs.oracle.com/darren/entry/opensolaris_rbac_vs_sudo_howto
Es posible que las diferentes instalaciones de la red no admitan este enfoque (sin embargo, openrbac podría considerarse como un enfoque de implementación común) como sudoers es un enfoque de host único o no es capaz de una configuración centralizada en la red / dominio.
/etc/sudoers
debe sincronizarse cada vez que hay un cambio. Además, existe un requisito de base de conocimiento al operar el archivo sudoers, es necesario comprender el lenguaje de política de la configuración de sudoers para no cometer errores y permitir subvenciones. RBAC puede ofrecer un enfoque centralizado en cierta medida, mientras que los perfiles de seguridad pueden ser comunes, agregar / eliminar un usuario del rol otorgado se puede hacer desde un solo lugar (ese es el lugar donde se almacena la información del usuario / contraseña / grupo para el dominio como LDAP, NIS o AD). Esto también requeriría implícitamente comprender los comandos requeridos para operar en la base de datos RBAC como smexec, smmultiuser, ser pocos.Sudo puede ofrecer un enfoque más multiplataforma aquí aún si funciona en todas las plataformas Unix / like que ofrecen las funciones setuid. Ambos
sudo
yRBAC
logran dar a los usuarios no root algunos privilegios que se pueden hacer sin dar laroot
contraseña en sí. Sudo puede proporcionar un enfoque más fino / granular basado en los argumentos de la línea de comandos que se pueden usar mientras se ejecutan los comandos y restringir únicamente a qué comando con argumentos se puede ejecutar con privilegios elevados. Si bien RBAC puede restringir el uso hasta los comandos o binarios instalados, pero no tiene ningún control sobre los argumentos de la línea de comandos. La auditoría es mucho mejor y está integrada en el entorno RBAC, mientras quesudo
, depende de la configuración y también de las restricciones de seguridad tomadas (como no otorgar el shell y, en particular, los hosts pueden iniciar sesión en los otros hosts sin ningún problema). Estas son solo algunas de las diferencias que podría citar y personalmente tengo una inclinación a usar sudo que RBAC, aunque con las limitaciones mencionadas podría superar la implementación de algunas soluciones. Hasta que RBAC aborde todos los problemas para mejorar la ventaja de sudo, no creo que sudo desaparezca porque es simple.fuente
Quisiera la raíz del documento donde está trabajando, para que tenga acceso completo a él.
Para evitar tener que escribir sudo cada vez que instale una Gema, siga este artículo aquí: http://forums.site5.com/showthread.php?t=11954
También recomiendo instalar RVM para administrar versiones de Ruby y Rails. http://beginrescueend.com/
Le hará la vida mucho más fácil cuando encuentre el host en el que desea implementar su aplicación para usar versiones diferentes de las que desarrolló.
fuente
Ejecute el comando
Ahora podrá ejecutar comandos como usuario root. ¡Ten cuidado! Cualquier comando que se ejecute será como usuario root. Puede estropear seriamente las cosas si no tiene cuidado.
O puede cambiar los permisos del directorio para permitir que su usuario guarde y edite archivos.
fuente
sudo -s
?sudo -i
como esto simula como shell de inicio de sesión. Puede estar un poco más cerca de un inicio de sesión raíz local nativo que ejecutar bash u otro shell a través de sudo.su
? ¿Qué es esta obsesión con el sudo? No necesitas sudo. Siempre.su
si se desconoce la contraseña de root. agregar un usuario a los sudoers y ejecutar lesudo su
permite al usuario hacer uso de su contraseña de usuario existente y conocida para escalarEdite el archivo / etc / passwd y otorgue permisos de root al usuario "yourUserName" cambiando las ID de usuario y grupo a UID 0 y GID 0:
yourUserName: 0: 0 :: / home / yourUserName: / bin / sh
fuente
Como se señala en otras respuestas, la solución más limpia es cambiar la propiedad de los archivos y directorios a los que necesita acceso. Alternativamente, podría crear un nuevo grupo dedicado, cambiar la propiedad del grupo de los archivos y directorios a este grupo y establecer el permiso de escritura grupal para estos archivos y directorios. Finalmente, establezca el bit SGID en los directorios de modo que si crea un nuevo archivo, herede la propiedad del grupo del directorio que lo contiene (es decir, el grupo dedicado).
fuente
usuario @ servidor: ~ $ sudo passwd root
[sudo] contraseña para usuario:
Ingrese la nueva contraseña UNIX:
Vuelva a escribir la nueva contraseña UNIX:
passwd: contraseña actualizada con éxito
user @ server: ~ $ su
Contraseña:
root @ server: / home / user #
¿Ese mensaje "#" no es algo bello?
Uso "sudo" una vez solo para lograr la habilidad de
usuario @ servidor: ~ $ su
Contraseña:
raíz @ servidor: / inicio / usuario #
para la vida del servidor.
Para que sea seguro nuevamente,
root @ server: / home / user # exit
exit
user @ server: ~ $
Los administradores de sistemas han estado haciendo esto durante años cuando el "sudo" no era parte de la tendencia del mollycoddling.
Cuando haces esto, es tu responsabilidad cuidar, no la mía.
Ian
fuente
sudo -s
. Trabajo realizado