This is on Ubuntu 15.10  I'm trying to get a better understanding of visudo and how it works. The documentation explains that visudo will consult the VISUAL environment variable and compare it against a fixed list of editors. Where can I find this list and what does it consist of?  The man page mentions a list somewhere, but I can't tell if it's a compile-time configuration option or the contents of some file somewhere.  There is a hard-coded list of one or more editors that visudo will use set at compile-time that may  be overridden via the editor sudoers Default variable.  This list defaults to /usr/bin/editor.  Normally, visudo does not honor the VISUAL or EDITOR environment variables unless they contain an  editor in the aforementioned editors list.  However, if visudo is configured with the  --with-env-editor option or the env_editor Default variable is set in sudoers, visudo will use any  the editor defines by VISUAL or EDITOR.  Note that this can be a security hole since it allows the  user to execute any program they wish simply by setting VISUAL or EDITOR.   This is all fine, except that /usr/bin/vi seems not to be on this list although vi is.  $ sudo env VISUAL=/usr/bin/vi visudo   launches nano, the executable invoked by /usr/bin/editor through a series of symlinks.  $ sudo env VISUAL=vi visudo   launches vi and works fine.  This is confusing to me. The entire justification for having a fixed list of editors is to prevent an arbitrary command from being executed just by changing an environment variable. If visudo consults the PATH to determine where to find vi then I can effectively execute any command I want by changing the path and naming my executable vi.  So, why does visudo have a fixed list of editors that it will honor? Are there any security benefits to doing that? Assuming there is some advantage, why wouldn't the whitelist use absolute paths instead of names of commands?
Fedora 14 uses vi by default when one runs visudo. Is there a way to change this to something else?
Why does centering not work with calligra? Unable to install Ubuntu on Lenovo Y500 This is similar to , but I believe it's a bit different*.  Sites like GMail support a preference that pushes all traffic through the SSL edition of the site rather than the plain-text protocol.   For sites that don't offer such preferences (or ones that may, but I have been unable to find, like facebook), is there a way using only the browser (perhaps with a plugin or addon) to always try SSL first, and fall-back to plain-text iff SSL fails?  Is that solution available on Windows, Mac OS X, and Linux? Just one?     * The previous question was looking for external applications that would accomplish this goal. References in Chapter Titles How can I send mail from an iPhone application I want to send an email from my iPhone application. I have heard that the iOS SDK doesn't have an email API. I don't want to use the following code because it will exit my application:  NSString *url = [NSString stringWithString: @"mailto:foo@example.com?cc=bar@example.com&amp;subject=Greetings%20from%20Cupertino!&amp;body=Wish%20you%20were%20here!"]; [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];   So how can I send an email from my app? How to perform two-sample t-tests in R by inputting sample statistics rather than the raw data? Let's say we have the statistics given below  gender mean sd n f 1.666667 0.5773503 3 m 4.500000 0.5773503 4   How do you perform a two-sample t-test (to see if there is a significant difference between the means of men and women in some variable) using statistics like this rather than actual data?  I couldn't find anywhere on the internet how to do this. Most of the tutorials and even the manual deal with the test with the actual data set only. If I run history, I can see my latest executed commands.  But if I do tail -f $HISTFILE or tail -f ~/.bash_history, they do not get listed.  Does the file get locked, is there a temporary location or something similar? Number of genes required to sustain life Are there estimates of the minimum number of genes required to sustain life?   In what I mean by life here, I don't include viruses. Can a Spring form command be a Map? The "correct" way to write a set without a specific element is as follows: $S \setminus \{s\}$  But in some contexts this is cumbersome to write/type or read, and it detracts from the flow of the writing. Is it acceptable to just use $S \setminus s$?  Edit: By "cumbersome" i mean they look bad when you're trying to inline formulas in LaTeX. How can I prove that $$\displaystyle x-\frac {x^2} 2 &lt; \ln(1+x)$$ for any $x&gt;0$  I think it's somehow related to Taylor expansion of natural logarithm, when:  $$\displaystyle \ln(1+x)=\color{red}{x-\frac {x^2}2}+\frac {x^3}3 -\cdots$$  Can you please show me how? Thanks. How to capture a series of screenshots in Web Driver using Java How long does it take for DNS records to propagate? How disk space is used on Android device? I have critical low storage level and can't understand what takes much of it and how that's possible that the installed applications can use 7 GB? I only use a few social media clients without any games or soft like Photoshop. Also on the second screenshot it indicates that the apps are using just 1.13 GB and so I can't understand the situation. Also what is the "Other"? Can I bring a pack of razor blades on a plane? I have to take a flight soon and I want to know if I can take a pack of razors with me. They are in a pack that is designed to not let any out unlesss a person really wants to open it. I'm going to the USA so, can I?  I mean plain old razor blades: Map not loading when using getLegend and showing error for getView() I was able to run my application on using Legend earlier but now I want to update my Legend when scrolling on the map. So I tried to used this code  . And I got the gist of how he is able to do that but when I am trying the same I keeping getting the error var graphicUrl = wmsSource.getLegendUrl(currentResolution);  I think this is mainly due to the wmsSource not declare. But I tried to initialize  seems wmsSource in TileWMS but does not seems to work. var getExtent = function () {     return map.getView().calculateExtent(); } var getProjectionCode = function () {     return map.getView().getProjection().getCode(); }  var updateLegend = function() {     var currentResolution = map.getView().getResolution();     var graphicUrl = wmsSource.getLegendUrl(currentResolution);        const crs = `&amp;CRS=${getProjectionCode()}`;     const bbox = `&amp;BBOX=${getExtent().join(',')}`;     const height = getHeight(getExtent());     const width = getWidth(getExtent());     const heightAndWidth = `&amp;srcwidth=${height}&amp;srcheight=${width}` ;     const legenOptions = &quot;&amp;legend_options=countMatched:true;fontAntiAliasing:true;hideEmptyRules:true;forceLabels:on&quot; ;        var img = document.getElementById('legend');     img.src = `${graphicUrl}${crs}${bbox}${heightAndWidth}${legenOptions}`; }; //Updated Legend End   //View var myview = new ol.View({     center : [8717490.201868,2788422.791843],     zoom : 4 })  var firstSel = document.getElementById(&quot;City&quot;); var secSel = document.getElementById(&quot;Sector&quot;);  //var LayerArray = [baseLayer, firstLayer]  //Map var map = new ol.Map({       target : 'mymap',       view: myview,       layers: [         new ol.layer.Tile({             source : new ol.source.OSM({                 attributions: 'Surveyor Allpication'             })         }),         new ol.layer.Tile({             source : new ol.source.TileWMS({                url: 'http://localhost:8089/geoserver/India/wms',                params: {'LAYERS': 'India:India', 'TILED': true,'TRANSPARENT':true},                ratio: 1,                serverType: 'geoserver',                transition: 0,             })         })       ] }) updateLegend();   This here is my JS &lt;div class=&quot;innerMap&quot;&gt;     &lt;div class=&quot;map&quot; id=&quot;mymap&quot;&gt;&lt;/div&gt;         Legend:     &lt;div&gt;&lt;img id=&quot;legend&quot;/&gt;&lt;/div&gt;     &lt;!--    &lt;div&gt;&lt;img src=&quot;http://localhost:8089/geoserver/wms?REQUEST=GetLegendGraphic&amp;VERSION=1.0.0&amp;FORMAT=image/png&amp;WIDTH=20&amp;HEIGHT=20&amp;LAYER=India%3AIndia&amp;RULE=Agra&quot; /&gt;%Name&lt;/div&gt; --&gt; &lt;!--    &lt;div&gt;&lt;img src=&quot;http://localhost:8089/geoserver/India/wms?SERVICE=WMS&amp;VERSION=1.1.1&amp;REQUEST=GetLegendGraphic&amp;FORMAT=image/png&amp;WIDTH=20&amp;HEIGHT=20&amp;LAYER=India%3AIndia&amp;SRS=EPSG%3A4326&amp;STYLES=&amp;SRCWIDTH=742&amp;SRCHEIGHT=768&amp;BBOX=75.4541015625%2C14.21630859375%2C91.7578125%2C31.09130859375&amp;LEGEND_OPTIONS=countMatched:true;fontAntiAliasing:true;hideEmptyRules:true&quot; /&gt; &lt;/div&gt;  --&gt;     &lt;/div&gt;  This is my HTML. How do I make this work? How to pass anonymous types as parameters? In an electromagnetic theory class, my professor introduced the concept of "action at a distance in physics". He said that:     If two charges are at some very large distance, and if any one of the charge moves, then the force associated with the charges changes instantaneously.   But according to Einstein, no information can travel faster than the speed of light.   So photons (the information carriers in electromagnetic force) cannot instantaneously deliver information.   So that we associate a field with the two charges and if any charge moves, there is a deformation in that field and this deformation travels with the speed of light and conveys the information.   If the field deformation information cannot travel more than the speed of light, how does the force instantaneously change at very large distances? Modify a shape and have modifications apply to clones Is there any any "Symmetry Modifier" option in illustrator?   Let's say I want to create a head that is totally symmetric. I created one half then mirrored it to get another half. Flipped the other half, aligned them and joined them together with Pathfinder→Unite option.   Now I modified some portion of the right half outline. But how can I get that same modification to be updated on the left option? I thought it would happen automatically. Display lines in last 10 minutes with specific pattern in logs I need to display lines with Error occurred in last 10 minutes of a log file.   Aug 26 10:50:42 Normal line. Aug 26 10:51:23 Normal line. Aug 26 10:55:33 Error line. Aug 26 10:56:45 Normal line. Aug 26 10:58:12 Error line. Aug 26 11:02:31 Normal line. Aug 26 11:03:32 Normal line. Aug 26 11:04:11 Normal line.   Suppose above sample of log file. I want to display only following two lines  Aug 26 10:55:33 Error line. Aug 26 10:58:12 Error line.   I am using AIX.