Linux sftp — how to add new user to access exist directory with write permission?
I have built a website and I can access and edit the website'files on server via the root user. The current file and directory structures are not changeable. Now I am hiring a webpage designer to help me re-design some pages, I am going to let the designer edit the files directly on the server. So I need to add a new user and restrict the new user to access only three front-end related directory. And the three directories are not in the same directory, like below:
The first step adding new user has been accomplished. But the problems are:
1 how to let the new user access above directories with write permission?
2 how to bind above three directories to the new user? (It seems ChrootDirectory can only bind one directory.)
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
Quote:
Originally Posted by uwo-g-xw
Any suggestions will be appreciated. Thanks!
When working like you describe, you should copy your entire web document tree over to a new directory and give your developer access to that "development" instance.
Your "development instance" can be on the same server or another server.
Do not set things up where a web developer is working on your original files. Have them work and test based on a copy of your web filesystem and then when you are happy with it, deploy it.
This is roughly a very short description of how to do what you want to do and there are many different ways to do it.
In a nutshell,
Have the developer work on a copy, not the running code.
Test the planned upgrade and do not deploy until the code has been well tested.
Use a configuration management tool like git and github to manage version control do you can see what changes from version to version and restore any files which are buggy, etc.
When working like you describe, you should copy your entire web document tree over to a new directory and give your developer access to that "development" instance.
Your "development instance" can be on the same server or another server.
Do not set things up where a web developer is working on your original files. Have them work and test based on a copy of your web filesystem and then when you are happy with it, deploy it.
This is roughly a very short description of how to do what you want to do and there are many different ways to do it.
In a nutshell,
Have the developer work on a copy, not the running code.
Test the planned upgrade and do not deploy until the code has been well tested.
Use a configuration management tool like git and github to manage version control do you can see what changes from version to version and restore any files which are buggy, etc.
Thank you so much for your suggestion. Indeed, letting the developer test in a copy instance first is a reasonable way. However, in the copy instance, I still have the same problem: How to restrict the new user to access only that three front-end related directory? And the three directories are not in the same directory. For now, I've solved the first problem (accessing existing directory with write permission) with following codes:
cd /home/www/application/index/view
chmod -R a+w *
But the second problem (how to bind above three directories to the new user?) is still there. I added following codes to /etc/ssh/sshd_config:
But only one folder (/home/www/application/index/view) is accessible. How to let the other two folders also accessible for the added new user?
I am a beginner to Linux, your help will be greatly appreciated.
After many times of researches and tries, I have it worked. The approach may have many disadvantages, as a beginner, it has been the most satisfied result that I can get. My steps are as follows:
1 Add a new user test1.
2 Make a root folder for test1.
3 Make three sub-folders, each will map to the corresponding exist folder we are going to let test1 access.
4 Make the three exist folders writable.
5 mount --bind each exist folder to corresponding sub-folder.
6 Done.
After above steps, user test1 will be able to access above three exist folders and contained files, and then edit.
logMsg='Started by '${USER}
LOG_MESSAGE "${logMsg}"
resultCode=$?
if ]; then
return ${resultCode}
fi
touch ${FILELISTPATH}
resultCode=$?
if ]; then
logMsg='failed to create file list:'${FILELISTPATH}
LOG_ERROR "${logMsg}" CUSTOM_PREPROCESS ${FATAL}
... (2 Replies)
Hi All,
We have a scenario in production where we want only one user from a group to modify the file. The file is not set to write permission for application manager.
-r--r--r-- 1 amgr u00 15661716 Aug 30 00:06 DCI.dat
So here amgr will have permission to edit the file. We want a... (10 Replies)
Hi folks,
I am trying to grant the access like below items using the setfacl command, but i couldn't achieve as what I required. any other possibility.
username : testing
Readonly access in /form_dl/system/prd/logs
Write only access in /form_dl/system/prd/deploy
No access to other... (0 Replies)
Hi
I am trying to make a web program which is command line equivalent. i have done the coding in cgi program in perl and html for basic forms to take inputs. when i ran the program from web application i see permission denied messages. after analyzing i found apache is running as wwwrun which... (2 Replies)
Guys, i wanna get any user files with write permission (on user or group permission) for review but i confuse with -perm parameter.
any body can help me to explain what is that mean?
thank's (1 Reply)
Hi,
Im trying to add some validation into my shell script code that basically checks whether a directory exists before SFTP'ing a file to it. If the directory exists then it will add the file, if not then it should return some kind of message. This is the code I have written so far but with no... (1 Reply)
RHEL5.0
As we know, when root create a new user, a new home directory will be created : /home/user
I want to know what determine the access permission of /home/user .
Thanks! (1 Reply)
Hi,
The requirement is like,
the program needs 2 argument one is user_id and second one is directory path. My script will check if that user_id has write access to the directory path. The directory path may be in any file system like AFS or NFS.
Can any one please suggest some points to... (1 Reply)
I need to find all the files that have group Read or Write permission or files that have user write permission.
This is what I have so far:
find . -exec ls -l {} \; | awk '/-...rw..w./ {print $1 " " $3 " " $4 " " $9}'
It shows me all files where group read = true, group write = true... (5 Replies)