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

pylint3 and pip3 broken

Missing snmpget and snmpwalk

How to enroll fingerprints to Ubuntu 17.10 with VFS491