UNIX Systems Control Politics?
pariahdecss asks: "I have just been hired as the webmaster for local college. The website for which I am responsible is hosted 'in-house' and controlled by the college. The server box does not have any other production systems on it besides my website. The website that I have inherited is driven by an amalgam of Embedded Perl and PostgreSQL. Now to the politics...the UNIX Administrator does not want to give me root access to this box. What have others done when faced with this type of systems politics? Is it even possible to function as a full scale webmaster without root access to the box you serve from?"
I don't think anyone would agree with you.
Which of Perl and Postgresql needs root? If webmasters need root access, then who else don't need?
It's entirely possible to function without root. Albeit to a limited extent. You have to ask your admin to install / upgrade software for you, but do it enough and maybe he'll get sick of it and give you root. Next?
Photos.
Please, let us know why you need root and we'll then tell you 1) how to attain it using politics or 2) that you're being a baby.
--Mike
So document exactly what you REALLY need sudo access for, and *if* there is a business case justification, then they should be able to grant this on a per command basis. There should be no reason for a webmaster to "need" the root password.
Hulk SMASH Celiac Disease
You're the one trying to do politics. Your domain as webmaster is html files, scripts, etc. You don't need to have root pass to upload files. Everyone who uses someone else's system for hosting is a webmaster w/o root access to the server. The two things are unrelated.
As your sysop to do things whenever you don't have access to do something (set up a db?) If this happens often enough he'll reconsider the policy, but most likely you will be just fine w. the privileges you have.
Ecce Europa - Web Design for Business
I'd just ask for sudo access to the resources I needed. Also, you never said why he denied access. Does the system have trust relationships with other systems he want's you out of?
For the first several years working for DSD there was no way in hell they were going to give me root access to anything, my data and home directories could be measured in the tens of gigabytes just to overcome these limitations. That was solaris, unfortunately (in my opinion) to get anywhere near the same functionality (as root access) you'll spend a huge amount of time recompiling applications, tweaking config files to do things that probably nobody ever intended, along with being on your supervisors shit list for blowing out disk space, audit trails, and... well... just because...
Not easy.
Diebold systems control politics.
Oh, you meant politics of UNIX system control? Never mind.
Make even shorter URLs - 8LN.org
Test, and Production. Build a linux box, give yourself root, do all your play work there. When its time to make real changes, in 1 shot, ask the SA to do whatever you need (upgrade PHP to version foo, edit config file bar, etc). They're more likely to do it if you don't nickel and dime them every day for little stuff. Plus, you have the added bonus of not fscking up your main, real, this-is-your-paycheck website doing test work.
I want to delete my account but Slashdot doesn't allow it.
You don't say anything about what else you inherited along with the website: Was the previous web admin a jerk? Was the server a pustulent boil on the face of the university's net?
One line blog. I hear that they're called Twitters now.
"But Wait!" you say, "What about software upgrades? New Perl modules?" --Sorry, bub, installing and upgrading software is exactly what the sysadmin is there for. These are her systems. Not yours.
It's likely your sysadmin is smarter than you, and has been doing this longer. And while I'm sure you have "teh lunix" at home and run X as root "all the time", that doesn't make you worthy of having root on the universitie's box. Quite frankly, having been through this from the sysadmin's side, No, you don't need root, and it's YOU who's playing the political game, not them. It's their box, their system, their software. The limousine company owns the cadillac, you just drive it around and make sure it has gas. Thank you. Move along!
You've not mentioned anything of your skills or previous experience. `Webmaster' could mean that you're a skilled systems administrator and/or programmer yourself ... or it could mean that you spent 15 minutes playing with Frontpage and Photoshop. Or anything in between.
It's a university, so things may be different, but in the business sector, one makes a business case for needing root access, and puts that, plus the pros and cons into a presentation and presents that to management and the systems administrator. If you have the needed skills, and can convince people that having root access would make for a better web site, the sysadmin may be happy to let you have access to your box (because it may mean less work for him.) At least in the business world, politics definately exist, but a good business case can often cut through it like a knife through butter. (It's unfortunate when skilled sysadmins and programmers have to spend their time making Powerpoint presentations, but it's often how you deal with the suits.)But if you're some `loose cannon' who doesn't know anything about *nix system administration beyond what you've read in some book, then root access is a disaster waiting to happen.
(As I said, I don't know which group you fit into.)
It sounds like you've already answered your own question, and want us to come up with the same answer. `full scale webmaster?' In any event, my answer is `yes', which is probably not the answer you want to hear.Not having root access is a blessing in disguise too. If something gets really messed up and root access is needed to fix it, you have the benefit of 1) not being blamed for it, because you couldn't have done it, and 2) not having to fix it.
One piece of advice -- what ever happens, don't try to `crack' root access. Getting caught, even if you think it helps you do your job, is likely to end in your being fired, and could even find you being arrested. (Yes, it has happened.) If you're a student, you could even be expelled. Not worth the risk.
"~ the UNIX Administrator does not want to give me root access ~. ~ Is it even possible to function as a full scale webmaster without root access to the box ~?"
.htaccess sucks
This article advocates a
( ) technical ( ) legislative ( ) market-based (x) vigilante
approach to website administration. Your idea will not work. Here is why it
won't work. (One or more of the following may apply to your particular idea,
and it may have other flaws which used to vary from organization to
organization before a poorly thought-out, ineffective approach is suggested.)
(x) Sudo will allow you to do what you need
( ) Installing extra software on a machine without the Admin's knowledge
is bad
(x) You don't know what you're doing
( ) Hosting w4r3z and hacks on company-owned equipment is bad
( ) You are not mature enough to manage a box in a production environment
( ) Your users will not put up with it
( ) SCO will not put up with it
( ) The police will not put up with it
( ) Requires too much cooperation from the Admin
(x) Requires immediate total cooperation from everybody at once
(x) Your employers cannot afford to lose services or alienate students
( ) Students don't care about your lack of web admin skills
(x) Anyone could anonymously destroy your entire site due to your
inept administration skills
Specifically, your plan fails to account for
( ) University rules expressly prohibiting it
(x) Lack of centrally controlling authority for servers
( ) 5kr!pt k!dd!35 installing open relays
( ) Backup and restore
( ) Asshats
( ) Jurisdictional problems
(x) Unpopularity of weird new configurations
( ) Students' reluctance to use an obviously hacked site
( ) Huge existing software investment current setup
( ) Susceptibility of poorly configured machines to attack
(x) Your willingness to install OS patches in a timely manner
( ) Armies of worm riddled broadband-connected Windows boxes
( ) Extreme fun of web h4xx0r5
( ) Joe jobs and/or identity theft
( ) Technically illiterate school administrators
(x) Extreme stupidity on the part of people who think they need root
in order to do their job
( ) Bandwidth costs that will increase once the b0xx3n are pwned
( ) IE
and the following philosophical objections may also apply:
( ) Ideas similar to yours are easy to come up with, yet none have ever been
shown practical
(x) Any scheme based on 'su' is unacceptable
( ) Lack of knowledge upon how to manage a web server should not be the
subject of politics
( )
( ) mysql sucks
( ) Countermeasures should not involve wire fraud or credit card fraud
( ) Countermeasures should not involve sabotage of campus networks
( ) Countermeasures must work if phased in gradually
( ) Surfing the web should be easy
(x) Why should we have to trust you and your servers?
( ) Incompatiblity with open source or open source licenses
(x) Feel-good measures do nothing to solve the problem
( ) Temporary/one-time root access is cumbersome
( ) I don't want the campus regents looking over my shoulder
( ) Web admins who have been coasting along with barely any knowledge
of what they're doing should be killed in a way is slow and painful
Furthermore, this is what I think about you:
( ) Sorry dude, but I don't think it would work.
(x) This is a stupid idea, and you're a stupid person for suggesting it.
Yeah, right.
Are you talking the modern Webmaster where their skill sets are limited to the design and content of the website or the Old-School Webmaster (like me) where you were responsible for everything like the OS, the software (Apache, mySQL, Perl, PHP), access (.htaccess, etc.), and the content (HTML, images, etc.)
If you're talking a Modern webmaster, then no, they don't need it. The Server Admin just has to make sure all the directories they are using are owned by the assigned user.
If you're talking Old-School, then yeah, it's pretty much a necessity; sudo at a minimum.
You can run Apache, perl and PostgeSQL without being root. Ask your admin for two things: port 80 mapping to 8080 and calling your startup.sh after boot (I do so in rc.local). And you're there.
Get a decent QA environment which is similar to production. Give the person an implementation plan for moving it to the other box. If it is a small environment in terms of people (which sounds like it is) and you want to put in many code changes - ensure they are scheduled for Friday or Saturday nights - no point in allowing him to still have a social life. In my experience in smaller environments eventually the sysadmin will capitulate and say - "OK - you do it yourself".
In larger systems (eg banks) typically this is the way it works. Generally you also need sign off from the sys admins and each change goes through a change committee where they validate the change. Another group often audits the code to ensure there will be no bad impact and the code is ok (no security concerns).
Seriously, the only thing I could imagine where you'd need root access is restarting the webserver if it's serving from port 80 directly. As others have pointed out, you could have the sysop do portforwarding from port 80 to 8080 and then be able to run Apache on port 8080 as normal user. Or you could have him give you sudo access to the Apache rc script.
:-)
Other than that I fail to see where any root access would be needed. You'll write and edit HTML and script files and you'll do some database stuff. There's absolutely no need to be root here.
I think a sysop who doesn't give you root right away is a good sysop. UNIX gives you all the tools and concepts to let you do your work without ever being root. But you have to get used to it. In the beginning you'll have to bug the sysop a lot but within a short timespan you'll finally get to a point where you won't need him anymore as you'll then be able to do your work... without being root
At a largish-university. There would be (and was) no way a webmaster would have root access to any boxen I controlled. For a number of reasons:
:)
a) You don't need it. Making sure apache is up and running and patched is my job, and I probably do it to 50 boxes at once and have nice automated scripts.
b) Every single webmaster I met (until I left a few months) ago swore they needed root access to install some apache module or other. No, you don't. You ask the sysadmin and, most times, if he can do it without a huge amount of effort (pointing him to the exact URL of the module's home page, and even better, pre-compiled packages for your OS, would tend to improve his/her mood) then I will, after carefully evaluating it, its security, its size, etc.
c) Politics sucks, and the poor sysadmin generally has to fight tooth and nail for every little bit he/she can get. Going the political route and over your sysadmin's head is a very good way whatever box you end up controlling has a number of... strange issues. Not saying I did this, but I know a LOT of sysadmins who have. A LOT. A lot of people you normally wouldn't expect. Especially in a university or state-run organization, politics and political image counts for a lot, and if you use politics to override your sysadmin, they're going to be very bitter about it. Not a good idea at all.
d) Working with the sysadmin, if you can provide a DAMN good case, and actually show you know what you're doing, what will usually happen is the sysadmin will hand over root and wash his or her hands of the matter. Box gets owned? Your problem. Box goes down? Your problem. Operating system barfs? Your problem. Too many people having root is a terminally bad idea, and most sysadmins will avoid it like the plague.
e) If all you need is the ability to restart/reload apache, there are a number of other ways to accomplish that, as has been mentioned. Personally, I would have gone the 80->8080 route, because I didn't hand out sudo either.
Every year I have to hear about this bullshit.
Listen kid, we're going to tell you this now, don't forget this lesson. You are not special. You are not the brightest little ray of knowledge to ever grace the halls of your university. In fact, the odds are very much that you are aren't even good enough to be the layer of slime the illumnai pond scum will float on. There are 10,000 other eager little faces just like you. And the odds are you aren't anywhere near the top end. If you were, the faculty would be putting you to better use than being the webmaster. Any idiot can be the webmaster, quite successfully, however, giving that idiot root would endanger the system the sysadmin is charged to maintain.
To summarize:
1) You are not special
2) You are should simply be happy you beat out those not smart enough to be webwanker
3) You should put your little ego at the door and realize the sysadmin is only doing his job, if he were stupid enough to hand you root, he should be fired.
4) Webwanking is not a technical task.
5) Webwankers *SHOULD* *NEVER* *EVER* have root. It *ALWAYS* ends badly, at my university we have a policy that says just that. And many defacements have been avoided because of it
6) Grow up! The sysadmin is getting sick of hearing this bullshit year after fucking year!
If you break the server by installing/misconfiguring/changing configs, who will fix it?
If the server goes down in the middle of the night/weekend due to configuration who will have to fix it?
If the first is not you, you don't get root.
If you don't at least share responsibility in the second (eitherwhoever's on duty or gets to it first, or it stays down once it's determined it's your problem until you fix it), you don't get root.
I also have a bitchy so-called web master that wants root access, but I finally figured out it is his ego getting in the way of his own work. Ultimatly I created a sandbox where he can have root. Finux useres can try User-Mode-Finux hack, or if you use FreeBSD you can use a jail/prison, in Solaris you have containers, everwhere else you have chroot. Certainly my developers see my policies at politics, but I see it as idiot control.
It isn't a lie if you belive it.
Almost every job I've ever had has featured at least one technically incompetent, obstructive co-worker. You can try to point this out to the higher ups, but your main options are to deal with the person via diplomacy or to find a new job.
I once suffered, without root, under an admin who gave everyone the same home directory path, where the actual directory on each machine was owned by the user on whose desk the machine sat. So, if I logged into joe's machine, I'd be running his .login/etc rather than mine. (The admin claimed that this scheme simplified backups.) There were lots of other problems of a similar scale with this project, and no one with both technical skill and power to correct them. In a case like this, all you can really do is leave.
If you're new, I'd give it at least six months. You may not even have figured out yet who the true problem people are on your job. Maybe this admin will turn out to be your best friend or mentor (or vice versa).
Mike
"Not an actor, but he plays one on TV."
Root access should almost never be used unless actively administering the machine. Other than that, control should not be used - or issolated to things that certain people can be proxied for (ie. restarting apache)
Having said that - I am not all to certain why you would need to restart apache either.
Now, lets get down to what you might need.
A change management system that will allow you to move your test environment to a production environment
Other than those things - what else do you need on the production machine ?
I have mod points and I am not afraid to use them
First, get politics for dummies. Also, you don't need root, as has been said ad nausium. The fact that you are asking if you need root to be a full fledged web master demonstrates that you don't know what you're in for politically or technically. Odds are your admin is reading this thread and will know its you.
.
However, I'll give you the loaded gun. Go ye therefore . .
1. Don't rock any boats for 90 days. You need this time to assess the political landscape and get to know who is really in control. You may find that the man in charge is not the man in control. If you start rocking your boat early, the man behind the curtain will be wise to you. IF that man is the sys admin you're trying to sweep the legs out from under, then clean up your resume.
2. Get to know the system you're wanting to control. You need to know why you need root to ask for it. Needing to install software is usually the best excuse since routine permissions will fix any routine need for root. This also requires some major server overall that you *need* to get the website to some grand plan you have. You do have a grand plan, right?
3. After the requisite time period (see 1), start making a lot of important installation requests staggared. Make sure you ask for it when he's swamped. That way he will seem unsupportive/inept. Don't forget to explain to man in control that you're not being supported.
4. Explain to the man in control that if sysadmin would only give you root, you could take care of this on your own. Don't forget to wave your hand in front of the man in control or the jedi mind trick will fail. Hope that man in control and sysadmin are not friends.
5. Hope that sysadmin is not politically savvy. If he is, prepare your resume. You have about a 25 percent chance of winning if you know what you're doing, and a 100 percent chance of pissing off your sysadmin.
If he's worth his salt, once you have effectively stolen root from him, the server will have mysterious problems arise that can *only* have been because he was forced to give you root. Root will be taken from you and you will have a) made a serious enemy and b) "proven" your incompetence.
The net result is that you will have weakened the organization as a whole.
Alternatively, you can work your ass off for several months to impress the hell out of all involved and show that you can be trusted with root. No politics required.
What those who want activist courts fear is rule by the people.
I have just been hired as the webmaster for local college.
This is your problem right here. If your predecessor did not have root access, you are going to have to prove to the admin that he should give it to you. Even if your predecessor did have root access, the sys admin may not be inclined to hand out root privileges to anyone with the title of webmaster.
Just to give you some background, I work in a small college department, and I've got about three times as much access now as when I started 18 months ago (sometimes I wish I didn't). The secret is to be patient, work with the admins, and prove yourself over time. Also, help them out whenever you can (but only if you can). It's not in your interests to get in a power struggle with them.
Consider pursuing projects that will benefit everyone in the value chain. For example, a lot of people use write only memory for their web logs. Perhaps you could implement some kind of log analysis tool, that could:
1) Help the admin/you monitor attacks and load.
2) Help you/content providers monitor page usage and user demographics.
Maybe you could use something like AWStats. A project like this will give you an opportunity to work closely with the admin, demonstrating both your expertise, and your ability to add value.
You don't need root (which they have said), because root can simply create a "web" or "www" group on the system (in the highly unlikely event one doesn't already exist), make you a member of the group, and give the group full privs on the stuff the webmaster needs privs on, e.g.:
That's the course I'd probably take, in your root's shoes.
Village idiot in some extremely smart villages.
There seems to be a lot of 'you don't need root access' replies. I'd go so far as to say 'avoid root access if you can,' especially in a politically volatile environment. You'll get less blame when something goes wrong, and you can relax while they take care of the system patching, managing its network connectivity, disk space, etc.
Working on a non-root server feels weird at first if you've run your own box for a long time, but other than the inability to listen on ports 1024 and a few minor resource restrictions, you should be better off. Coexisting on someone else's server can even make you very conscientious and more likely to keep a tidy server.
Also, if you have to ask the administrator to upload files every time you change them, and you find yourself making many changes, ask yourself if you are doing too many updates because you don't have a proper test/dev/stage environment (if not, shame on you!). If not, maybe a compromise could be made to script a bulk site transfer from stage to production that you could control.
_______
2B1ASK1
Have the admin look into using 'chroot.' Basicly, he can build a virtual computer inside the actual computer...or something like that. Anyway, I know that my hosting company has 10 people per server and everyone has root in their own virtual computer.
Anyway, the point is if you screw something up, his server remains mostly unaffected.
I'd rather you do it wrong, than for me to have to do it at all.
Apparently pariahdecss is in charge of/responsible for the webserver and it's the sole app there.
If the UPS/power supply/something makes funny noises or whatever, someone might want to go shut it down gracefully.
Might as well allow pariahdecss to do it.
I started here 5 months ago. One of the things that got me the job was being able to tell my boss that "I know Linux", I've been running my own and a previous employer's web and mail servers for five years, etc. But that's not in my job description; it's someone else's job. In today's downwardly-mobile economy, I'm a mere "Technician" here.
I didn't push it. When a problem with DNS cropped up, I used my knowledge of how DNS works to help troubleshoot it, passing useful information to my boss and to the guy responsible for fixing it. A couple months later when we started having problems with DHCP, I stayed late helping to troubleshoot. When it happened again the next week and I was the only other person around, my boss logged me in under an account with root privilege (she has it because she's the boss, not because she's qualified to use it) so I could restart dhcpd. The next time, she actually gave me root, and I figured out what the problem was... but let the official admin get it working. After that, I kept my privilege to maintain the DHCP system to make sure it stayed operational.
That sounds like the end of the story, but it continues: I determined that the real problem with DHCP was that we didn't have enough addresses to accommodate student laptop plug-ins. I suggested a solution, and the boss let me do it: set up an old P2 box running Coyote Linux as a router, putting 30+ machines on their own subnet, thereby alleviating the problem (at zero expense). And on that box I don't just have root... I am root.
http://alternatives.rzero.com/
The job role of Webmaster varies widely, from people whose responsibility it is to make sure that the links work and just about only that, to people who own the applications and content management, to people who build the server from bottom up including OS install and web apps and programming and HTML code and UI specification.
The latter person owns the box. Most of the people short of that level don't need root. If you're maintaining the applications environment and need to install new versions of Apache, PostgresSQL, Tomcat or whatever, then you and the sysadmin need to come to an agreement on how that gets done.
If you need to restart Apache, that's what Sudo is for.
In any case, your job, rather than escalating the situation, is understanding and communicating the situation. If you need root, you need to understand and articulate why you need root. If you can't justify why you need it, you shouldn't be trying to go over his or her head. If you can make the case clearly and they still won't let you have it, then you can escalate.
But understand first and explain second.
Be grateful.
Be grateful for the discipline that not having root access brings you.
Be grateful that you do not have root access because that way you cannot fsck things up as root. The day you fsck things up as root on an important machine is the day you will appreciate all those times you couldn't do it before.
Be grateful that all the shitty problems that are associated witht the things you want to be root for are someone elses problem. Think of it like a Service Level Agreement, you get to demand things of them without (so much) having to worry about how they have to accoplish them.
You never want to be root on a system if you can avoid it. Particularly a production system (and the web server in question ain't one of them unless it controls the campus reactor or cyclotron or something). The fear that being root in a mission critical place is a thing to behold and from which to run away at the earliest possible opportunity.
"The first thing to do when you find yourself in a hole is stop digging."
That actually brings up a really good point. What exactly is supposed to be doing on the site?
If the O.P. is just supposed to be managing content, then web pages, images, and database content are his domain. Period. Live with it, or ask the sysadmin to set up a test/staging server that he has access to, and maybe root on, then all content changes get rsynced accross.
If he is supposed to be managing the app servers (ie: mod_perl code, or something that would require apache to get the occasion kick in the crotch) then he does need a bit more access. But that can still be done with group memberships, sudo, and a bit of work on the SA's part to write some scripts to do some of the dirty work.
My advice, would be for him to just _ask_ his SA stright out, "I need to do X part of my job, which means I need access to Y* resource. In the past I have done it like Z, but how would you like me to do it?" (Where "Y" != "a root shell".)
BTW, I AM a sysadmin. Devlopers who whine at me continually that they need root access get told to go think about what they really need, then come back. If you approach your SA with a plan for what you want to do, and how you want it done, then work _with_ him to make it happen, (it _is_ a two way steet) you will find that you will have less crap work to do "managing" a system, and he will have less crap work to do cleaning up after a developer. (less crap == happy sysadmin == better work environment)
Cheers!
John
No developer should have root on PRODUCTION boxes.
The process should be:
development happens on development box (workstation, server whatever). Developers may have root on this- if they do, they manage it, OS hardware and all. Developers will use sudo if anyone else is responsible for the server hardware and OS. This should never be exposed to untrusted networks.
QA stage: if you are poor or small, do this against the development box. If not this should be a seperate QA box. This should be managed by QA team. If the sysadmin is the same, the sysadmin should hold root, qa team may sudo, developers should not be accessing this box directly (except in emergency, then they will be sheperded by QA). This should also not be exposed to untrusted networks unless you have and excellent (and obeyed) security policy and review.
Production: only the sysadmin has root, noone else should have access. The sysadmin publishes to production- using the release that QA approves. Highest security policy applies here.
If your QA and dev team are the same, collapse development and QA- but trust me keep production seperate.
-A
To perhaps ease your pain some, check out my stash project. It was designed with stubborn sysadmins in mind.... It eases the process of installing stuff into your home directory.