How to administer files on a remote ubuntu machine?

I do not have very much linux experience. Previously I administered a debian machine on a local network by logging in as root, and using ftp as root. Now I m working with an Ubuntu machine, and having to type sudo for everything is annoying but manageable. However, I am unable to manage files because I don't know how to set up an ftp client with the ability to manipulate files outside the /home directory. How should I be going about this?

More details: The system is a local development system for web development. The most common reasons I need file access are to modify apache and mysql config files. I connect to it from my windows XP system using putty for terminal and filezilla for ftp. Ideally I'd like to be able to use ftp to download a config file, edit it in a gui I understand, and then put it back on the server.


Install Webmin. You can then use your web browser to login as root and use Webmin's FileManager module to manage files anywhere in the entire filesystem. Note that FileManager requires Java support in your browser.

Webmin also has modules that provide the ability to administer Apache and MySQL configurations from within its web interface. There is no need to edit text files.

Finally, though not connected to Webmin in any way, phpMyAdmin is one of the best (if not the best) MySQL administration apps available. Like Webmin, it is a web app.


You can use winscp which is a free SFTP, FTP and SCP client for Windows. You can copy the files from the Linux system. Then, you can edit the files on Windows in the way you want. Finally, you can copy them back (overwrite) to the Linux system.

If you need to restart some service, you can use ssh.


First things first, you need to sort out your SSH, from which you can do any/all of the things suggested here as far as running x (think of this as "remote desktop"), managing files, etc.

I'd recommend setting up passwordless SSH using keys. They're more secure (wait till you start looking at all the brute force attempts in your auth logs from bots trying to guess your ssh password; mine was reduced to nil when I disabled password authentication and only permitted key authentication). There's a lot of tutorials on the subject, probably the easiest method if your workstation is Windows is using PuTTYGen from the makers of PuTTY to create a public key and a private key that'll be compatible with WinSCP, PuTTY, etc.

If you want to use something like WinSCP, you can then change the sudoer config on your server to allow the sudo command to be executed for only /bin/sftp-server without requiring a password. After that's done, you can modify WinSCP to execute sudo /bin/sftp-server to elevate the privileges of the sftp-server process that WinSCP uses to manage files with SSH File Transfer Protocol (SFTP, not to be confused with FTPS). This procedure is covered here.

I have mixed feelings about this; I think it's better to grant privileges for your user to the files and folders that said user needs to edit. i.e. if you're just managing some /var/www files, you can either change the site root to /home/user/www and grant the appropriate Apache user (www-data for Ubuntu) the right permissions to read and execute files in that directory or do vice-versa, and grant your user read and write privileges to /var/www. If you go the latter route, I find it easier to create a group called "webdev" and add your user (and any other users that may need to edit the website) to that directory.

That way you can automate the promotion process with scripts using tools like scp and rsync to reduce errors that can come with doing manual uploads and/or file changes.


First thing you need to do is work out a model for what the permissions should be (depending on the software using the files, users requiring access etc). I look after several Linux systems - I never use ftp, I block root access via ssh, and rarely use 'su' - OTOH I try to avoid Ubuntu due to the unusual approach it takes to various things, including root access.

Unfortunately without knowing a lot more about the files you modify outside of '/home' it's hard to give specific advice. I'd recommend looking hard at scp / sftp though - but since you've not provided any information about the client OS you are using to connect, its hard to give specific advice (WinSCP for MSWindows? the fish: wrappers in KDE?)