Create new ssh user account to access specific folder only

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP








up vote
3
down vote

favorite
4












I have an apache2 server running on ubuntu 16.04, for now everytime i access my project files inside a specific folder i use root user for running php function and edit some files, after i finish i need to run chown -R www-data:www-data . inside a terminal, because after i run my php function the file owner will become user:user (root:root). what i need is:



  1. Create new user for my server

  2. When access my server using ssh this user will be inside a specific folder automatically

  3. Grant this user a permission to do anything inside this specific folder

For example, Create a user named tonya, when someone access server using user tonya ssh sonya@server.com, he will be redirected to /var/www/specific_folder, user tonya can do anything inside this folder and when tonya set the php file owner or folder to tonya:www-data it will work like when i set the file owner to www-data:www-data










share|improve this question























  • See also askubuntu.com/questions/46331/…
    – Panther
    Mar 9 at 5:02














up vote
3
down vote

favorite
4












I have an apache2 server running on ubuntu 16.04, for now everytime i access my project files inside a specific folder i use root user for running php function and edit some files, after i finish i need to run chown -R www-data:www-data . inside a terminal, because after i run my php function the file owner will become user:user (root:root). what i need is:



  1. Create new user for my server

  2. When access my server using ssh this user will be inside a specific folder automatically

  3. Grant this user a permission to do anything inside this specific folder

For example, Create a user named tonya, when someone access server using user tonya ssh sonya@server.com, he will be redirected to /var/www/specific_folder, user tonya can do anything inside this folder and when tonya set the php file owner or folder to tonya:www-data it will work like when i set the file owner to www-data:www-data










share|improve this question























  • See also askubuntu.com/questions/46331/…
    – Panther
    Mar 9 at 5:02












up vote
3
down vote

favorite
4









up vote
3
down vote

favorite
4






4





I have an apache2 server running on ubuntu 16.04, for now everytime i access my project files inside a specific folder i use root user for running php function and edit some files, after i finish i need to run chown -R www-data:www-data . inside a terminal, because after i run my php function the file owner will become user:user (root:root). what i need is:



  1. Create new user for my server

  2. When access my server using ssh this user will be inside a specific folder automatically

  3. Grant this user a permission to do anything inside this specific folder

For example, Create a user named tonya, when someone access server using user tonya ssh sonya@server.com, he will be redirected to /var/www/specific_folder, user tonya can do anything inside this folder and when tonya set the php file owner or folder to tonya:www-data it will work like when i set the file owner to www-data:www-data










share|improve this question















I have an apache2 server running on ubuntu 16.04, for now everytime i access my project files inside a specific folder i use root user for running php function and edit some files, after i finish i need to run chown -R www-data:www-data . inside a terminal, because after i run my php function the file owner will become user:user (root:root). what i need is:



  1. Create new user for my server

  2. When access my server using ssh this user will be inside a specific folder automatically

  3. Grant this user a permission to do anything inside this specific folder

For example, Create a user named tonya, when someone access server using user tonya ssh sonya@server.com, he will be redirected to /var/www/specific_folder, user tonya can do anything inside this folder and when tonya set the php file owner or folder to tonya:www-data it will work like when i set the file owner to www-data:www-data







server permissions ssh apache2 php






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 9 at 2:56

























asked Mar 9 at 2:42









simple guy

1215




1215











  • See also askubuntu.com/questions/46331/…
    – Panther
    Mar 9 at 5:02
















  • See also askubuntu.com/questions/46331/…
    – Panther
    Mar 9 at 5:02















See also askubuntu.com/questions/46331/…
– Panther
Mar 9 at 5:02




See also askubuntu.com/questions/46331/…
– Panther
Mar 9 at 5:02










1 Answer
1






active

oldest

votes

















up vote
3
down vote



accepted










You should be able to accomplish this with



adduser --home /var/www/specific_folder --shell /bin/bash --no-create-home --ingroup www-data --ingroup ssh tonya


  • adduser is used to add a user


  • --home specifies home directory which is where the user will be when they log in


  • --shell is to specify the shell, by default it is usually just /bin/sh which is not as user friendly as /bin/bash


  • --no-create-home will not create the home directory so you must use one that already exists


  • --ingroup adds the user to specified group


  • the last argument is the username


You could make the user jailed using this guide:



  • Restrict SSH User Access to Certain Directory Using Chrooted Jail

Please remember that even if you jail a user, it is very possible to escape a jail. If you're giving a user access to your system, you may as well be giving them root access because once they have shell access, it's almost always possible to gain root. Setting up a jail will most likely keep a basic user from doing anything too harmful but will do little to nothing to stop a malicious user from doing harmful stuff.






share|improve this answer






















  • why there's 2 ingroup? how can this user get my root access?
    – simple guy
    Mar 9 at 4:17










  • one ingroup for ssh and one for www-data, and I'm not saying that they will be able to get root access but you should never allow a user on your system if you don't trust them because once they have shell access on your system, they're 50% the way to root basically. New exploits are discovered daily and because of that, you can never consider a system to be secure.
    – Desultory
    Mar 9 at 15:48










  • @Desultroy when i change my php file owner from www-data:www-data to tonya:www-data it gives me a file permission error , when i try to access the php from browser
    – simple guy
    Mar 14 at 6:41










  • You should probably change the permissions of the file so that it is group based and not owner based. I don't know if php requires the execute permission but it definitely needs the read permission. Permissions can be explained here: help.ubuntu.com/community/FilePermissions
    – Desultory
    Mar 15 at 0:41










Your Answer







StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "89"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1013286%2fcreate-new-ssh-user-account-to-access-specific-folder-only%23new-answer', 'question_page');

);

Post as a guest






























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
3
down vote



accepted










You should be able to accomplish this with



adduser --home /var/www/specific_folder --shell /bin/bash --no-create-home --ingroup www-data --ingroup ssh tonya


  • adduser is used to add a user


  • --home specifies home directory which is where the user will be when they log in


  • --shell is to specify the shell, by default it is usually just /bin/sh which is not as user friendly as /bin/bash


  • --no-create-home will not create the home directory so you must use one that already exists


  • --ingroup adds the user to specified group


  • the last argument is the username


You could make the user jailed using this guide:



  • Restrict SSH User Access to Certain Directory Using Chrooted Jail

Please remember that even if you jail a user, it is very possible to escape a jail. If you're giving a user access to your system, you may as well be giving them root access because once they have shell access, it's almost always possible to gain root. Setting up a jail will most likely keep a basic user from doing anything too harmful but will do little to nothing to stop a malicious user from doing harmful stuff.






share|improve this answer






















  • why there's 2 ingroup? how can this user get my root access?
    – simple guy
    Mar 9 at 4:17










  • one ingroup for ssh and one for www-data, and I'm not saying that they will be able to get root access but you should never allow a user on your system if you don't trust them because once they have shell access on your system, they're 50% the way to root basically. New exploits are discovered daily and because of that, you can never consider a system to be secure.
    – Desultory
    Mar 9 at 15:48










  • @Desultroy when i change my php file owner from www-data:www-data to tonya:www-data it gives me a file permission error , when i try to access the php from browser
    – simple guy
    Mar 14 at 6:41










  • You should probably change the permissions of the file so that it is group based and not owner based. I don't know if php requires the execute permission but it definitely needs the read permission. Permissions can be explained here: help.ubuntu.com/community/FilePermissions
    – Desultory
    Mar 15 at 0:41














up vote
3
down vote



accepted










You should be able to accomplish this with



adduser --home /var/www/specific_folder --shell /bin/bash --no-create-home --ingroup www-data --ingroup ssh tonya


  • adduser is used to add a user


  • --home specifies home directory which is where the user will be when they log in


  • --shell is to specify the shell, by default it is usually just /bin/sh which is not as user friendly as /bin/bash


  • --no-create-home will not create the home directory so you must use one that already exists


  • --ingroup adds the user to specified group


  • the last argument is the username


You could make the user jailed using this guide:



  • Restrict SSH User Access to Certain Directory Using Chrooted Jail

Please remember that even if you jail a user, it is very possible to escape a jail. If you're giving a user access to your system, you may as well be giving them root access because once they have shell access, it's almost always possible to gain root. Setting up a jail will most likely keep a basic user from doing anything too harmful but will do little to nothing to stop a malicious user from doing harmful stuff.






share|improve this answer






















  • why there's 2 ingroup? how can this user get my root access?
    – simple guy
    Mar 9 at 4:17










  • one ingroup for ssh and one for www-data, and I'm not saying that they will be able to get root access but you should never allow a user on your system if you don't trust them because once they have shell access on your system, they're 50% the way to root basically. New exploits are discovered daily and because of that, you can never consider a system to be secure.
    – Desultory
    Mar 9 at 15:48










  • @Desultroy when i change my php file owner from www-data:www-data to tonya:www-data it gives me a file permission error , when i try to access the php from browser
    – simple guy
    Mar 14 at 6:41










  • You should probably change the permissions of the file so that it is group based and not owner based. I don't know if php requires the execute permission but it definitely needs the read permission. Permissions can be explained here: help.ubuntu.com/community/FilePermissions
    – Desultory
    Mar 15 at 0:41












up vote
3
down vote



accepted







up vote
3
down vote



accepted






You should be able to accomplish this with



adduser --home /var/www/specific_folder --shell /bin/bash --no-create-home --ingroup www-data --ingroup ssh tonya


  • adduser is used to add a user


  • --home specifies home directory which is where the user will be when they log in


  • --shell is to specify the shell, by default it is usually just /bin/sh which is not as user friendly as /bin/bash


  • --no-create-home will not create the home directory so you must use one that already exists


  • --ingroup adds the user to specified group


  • the last argument is the username


You could make the user jailed using this guide:



  • Restrict SSH User Access to Certain Directory Using Chrooted Jail

Please remember that even if you jail a user, it is very possible to escape a jail. If you're giving a user access to your system, you may as well be giving them root access because once they have shell access, it's almost always possible to gain root. Setting up a jail will most likely keep a basic user from doing anything too harmful but will do little to nothing to stop a malicious user from doing harmful stuff.






share|improve this answer














You should be able to accomplish this with



adduser --home /var/www/specific_folder --shell /bin/bash --no-create-home --ingroup www-data --ingroup ssh tonya


  • adduser is used to add a user


  • --home specifies home directory which is where the user will be when they log in


  • --shell is to specify the shell, by default it is usually just /bin/sh which is not as user friendly as /bin/bash


  • --no-create-home will not create the home directory so you must use one that already exists


  • --ingroup adds the user to specified group


  • the last argument is the username


You could make the user jailed using this guide:



  • Restrict SSH User Access to Certain Directory Using Chrooted Jail

Please remember that even if you jail a user, it is very possible to escape a jail. If you're giving a user access to your system, you may as well be giving them root access because once they have shell access, it's almost always possible to gain root. Setting up a jail will most likely keep a basic user from doing anything too harmful but will do little to nothing to stop a malicious user from doing harmful stuff.







share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 10 at 7:46









pa4080

12.3k52256




12.3k52256










answered Mar 9 at 2:47









Desultory

1113




1113











  • why there's 2 ingroup? how can this user get my root access?
    – simple guy
    Mar 9 at 4:17










  • one ingroup for ssh and one for www-data, and I'm not saying that they will be able to get root access but you should never allow a user on your system if you don't trust them because once they have shell access on your system, they're 50% the way to root basically. New exploits are discovered daily and because of that, you can never consider a system to be secure.
    – Desultory
    Mar 9 at 15:48










  • @Desultroy when i change my php file owner from www-data:www-data to tonya:www-data it gives me a file permission error , when i try to access the php from browser
    – simple guy
    Mar 14 at 6:41










  • You should probably change the permissions of the file so that it is group based and not owner based. I don't know if php requires the execute permission but it definitely needs the read permission. Permissions can be explained here: help.ubuntu.com/community/FilePermissions
    – Desultory
    Mar 15 at 0:41
















  • why there's 2 ingroup? how can this user get my root access?
    – simple guy
    Mar 9 at 4:17










  • one ingroup for ssh and one for www-data, and I'm not saying that they will be able to get root access but you should never allow a user on your system if you don't trust them because once they have shell access on your system, they're 50% the way to root basically. New exploits are discovered daily and because of that, you can never consider a system to be secure.
    – Desultory
    Mar 9 at 15:48










  • @Desultroy when i change my php file owner from www-data:www-data to tonya:www-data it gives me a file permission error , when i try to access the php from browser
    – simple guy
    Mar 14 at 6:41










  • You should probably change the permissions of the file so that it is group based and not owner based. I don't know if php requires the execute permission but it definitely needs the read permission. Permissions can be explained here: help.ubuntu.com/community/FilePermissions
    – Desultory
    Mar 15 at 0:41















why there's 2 ingroup? how can this user get my root access?
– simple guy
Mar 9 at 4:17




why there's 2 ingroup? how can this user get my root access?
– simple guy
Mar 9 at 4:17












one ingroup for ssh and one for www-data, and I'm not saying that they will be able to get root access but you should never allow a user on your system if you don't trust them because once they have shell access on your system, they're 50% the way to root basically. New exploits are discovered daily and because of that, you can never consider a system to be secure.
– Desultory
Mar 9 at 15:48




one ingroup for ssh and one for www-data, and I'm not saying that they will be able to get root access but you should never allow a user on your system if you don't trust them because once they have shell access on your system, they're 50% the way to root basically. New exploits are discovered daily and because of that, you can never consider a system to be secure.
– Desultory
Mar 9 at 15:48












@Desultroy when i change my php file owner from www-data:www-data to tonya:www-data it gives me a file permission error , when i try to access the php from browser
– simple guy
Mar 14 at 6:41




@Desultroy when i change my php file owner from www-data:www-data to tonya:www-data it gives me a file permission error , when i try to access the php from browser
– simple guy
Mar 14 at 6:41












You should probably change the permissions of the file so that it is group based and not owner based. I don't know if php requires the execute permission but it definitely needs the read permission. Permissions can be explained here: help.ubuntu.com/community/FilePermissions
– Desultory
Mar 15 at 0:41




You should probably change the permissions of the file so that it is group based and not owner based. I don't know if php requires the execute permission but it definitely needs the read permission. Permissions can be explained here: help.ubuntu.com/community/FilePermissions
– Desultory
Mar 15 at 0:41

















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1013286%2fcreate-new-ssh-user-account-to-access-specific-folder-only%23new-answer', 'question_page');

);

Post as a guest













































































Popular posts from this blog

Which professions warranted travel in Medieval times?

How do so many people here on Academia.SE, and in general, afford lavish higher education programs?

Trouble downloading packages list due to a “Hash sum mismatch” error